mirror of
https://github.com/crazywhalecc/static-php-cli.git
synced 2026-03-18 21:04:52 +08:00
deploy: 3c802119ede202c4a8512ce90fa248e9b425f0a6
This commit is contained in:
parent
5e01fc3715
commit
3d48cf2189
6
assets/en_guide_env-vars.md.CO3ymjxn.js
Normal file
6
assets/en_guide_env-vars.md.CO3ymjxn.js
Normal file
File diff suppressed because one or more lines are too long
1
assets/en_guide_env-vars.md.CO3ymjxn.lean.js
Normal file
1
assets/en_guide_env-vars.md.CO3ymjxn.lean.js
Normal file
@ -0,0 +1 @@
|
|||||||
|
import{_ as e,c as t,o as i,a1 as a}from"./chunks/framework.CszIUXhs.js";const b=JSON.parse('{"title":"Environment variables","description":"","frontmatter":{},"headers":[],"relativePath":"en/guide/env-vars.md","filePath":"en/guide/env-vars.md"}'),n={name:"en/guide/env-vars.md"},s=a("",27),o=[s];function r(l,d,c,p,h,m){return i(),t("div",null,o)}const u=e(n,[["render",r]]);export{b as __pageData,u as default};
|
||||||
File diff suppressed because one or more lines are too long
@ -1 +0,0 @@
|
|||||||
import{_ as e,c as t,o as d,a1 as o}from"./chunks/framework.CszIUXhs.js";const b=JSON.parse('{"title":"Environment variables","description":"","frontmatter":{"aside":false},"headers":[],"relativePath":"en/guide/env-vars.md","filePath":"en/guide/env-vars.md"}'),a={name:"en/guide/env-vars.md"},r=o("",35),i=[r];function c(n,s,l,h,p,m){return d(),t("div",null,i)}const u=e(a,[["render",c]]);export{b as __pageData,u as default};
|
|
||||||
File diff suppressed because one or more lines are too long
1
assets/style.BCYp_Gb-.css
Normal file
1
assets/style.BCYp_Gb-.css
Normal file
File diff suppressed because one or more lines are too long
6
assets/zh_guide_env-vars.md.B2fVzlYf.js
Normal file
6
assets/zh_guide_env-vars.md.B2fVzlYf.js
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
import{_ as t,c as i,o as e,a1 as s}from"./chunks/framework.CszIUXhs.js";const b=JSON.parse('{"title":"环境变量","description":"","frontmatter":{},"headers":[],"relativePath":"zh/guide/env-vars.md","filePath":"zh/guide/env-vars.md"}'),a={name:"zh/guide/env-vars.md"},d=s(`<h1 id="环境变量" tabindex="-1">环境变量 <a class="header-anchor" href="#环境变量" aria-label="Permalink to "环境变量""></a></h1><p>本页面的环境变量列表中所提到的所有环境变量都具有默认值,除非另有说明。你可以通过设置这些环境变量来覆盖默认值。</p><h2 id="环境变量列表" tabindex="-1">环境变量列表 <a class="header-anchor" href="#环境变量列表" aria-label="Permalink to "环境变量列表""></a></h2><p>在 2.3.5 版本之后,我们将环境变量集中到了 <code>config/env.ini</code> 文件中,你可以通过修改这个文件来设置环境变量。</p><p>我们将 static-php-cli 支持的环境变量分为三种:</p><ul><li>全局内部环境变量:在 static-php-cli 启动后即声明,你可以在 static-php-cli 的内部使用 <code>getenv()</code> 来获取他们,也可以在启动 static-php-cli 前覆盖。</li><li>固定环境变量:在 static-php-cli 启动后声明,你仅可使用 <code>getenv()</code> 获取,但无法通过 shell 脚本对其覆盖。</li><li>配置文件环境变量:在 static-php-cli 构建前声明,你可以通过修改 <code>config/env.ini</code> 文件或通过 shell 脚本来设置这些环境变量。</li></ul><p>你可以阅读 <a href="https://github.com/crazywhalecc/static-php-cli/blob/main/config/env.ini" target="_blank" rel="noreferrer">config/env.ini</a> 中每项参数的注释来了解其作用(仅限英文版)。</p><h2 id="自定义环境变量" tabindex="-1">自定义环境变量 <a class="header-anchor" href="#自定义环境变量" aria-label="Permalink to "自定义环境变量""></a></h2><p>一般情况下,你不需要修改任何以下环境变量,因为它们已经被设置为最佳值。 但是,如果你有特殊需求,你可以通过设置这些环境变量来满足你的需求(比如你需要调试不同编译参数下的 PHP 性能表现)。</p><p>如需使用自定义环境变量,你可以在终端中使用 <code>export</code> 命令或者在命令前直接设置环境变量,例如:</p><div class="language-shell vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># export 方式</span></span>
|
||||||
|
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">export</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> SPC_CONCURRENCY</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">4</span></span>
|
||||||
|
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">bin/spc</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> build</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> mbstring,pcntl</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --build-cli</span></span>
|
||||||
|
<span class="line"></span>
|
||||||
|
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># 直接设置方式</span></span>
|
||||||
|
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">SPC_CONCURRENCY</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">4</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> bin/spc</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> build</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> mbstring,pcntl</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --build-cli</span></span></code></pre></div><p>或者,如果你需要长期修改某个环境变量,你可以通过修改 <code>config/env.ini</code> 文件来实现。</p><p><code>config/env.ini</code> 分为三段,其中 <code>[global]</code> 全局有效,<code>[windows]</code>、<code>[macos]</code>、<code>[linux]</code> 仅对应的操作系统有效。</p><p>例如,你需要修改编译 PHP 的 <code>./configure</code> 命令,你可以在 <code>config/env.ini</code> 文件中找到 <code>SPC_CMD_PREFIX_PHP_CONFIGURE</code> 环境变量,然后修改其值即可。</p><h2 id="编译依赖库的环境变量-仅限-unix-系统" tabindex="-1">编译依赖库的环境变量(仅限 Unix 系统) <a class="header-anchor" href="#编译依赖库的环境变量-仅限-unix-系统" aria-label="Permalink to "编译依赖库的环境变量(仅限 Unix 系统)""></a></h2><p>从 2.2.0 开始,static-php-cli 对所有 macOS、Linux、FreeBSD 等 Unix 系统的编译依赖库的命令均支持自定义环境变量。</p><p>这样你就可以随时通过环境变量来调整编译依赖库的行为。例如你可以通过 <code>xxx_CFLAGS=-O0</code> 来设置编译 xxx 库的优化参数。</p><p>当然,不是每个依赖库都支持注入环境变量,我们目前提供了三个通配的环境变量,后缀分别为:</p><ul><li><code>_CFLAGS</code>: C 编译器的参数</li><li><code>_LDFLAGS</code>: 链接器的参数</li><li><code>_LIBS</code>: 额外的链接库</li></ul><p>前缀为依赖库的名称,具体依赖库的名称以 <code>lib.json</code> 为准。其中,带有 <code>-</code> 的依赖库名称需要将 <code>-</code> 替换为 <code>_</code>。</p><p>下面是一个替换 openssl 库编译的优化选项示例:</p><div class="language-shell vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">openssl_CFLAGS</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"-O0"</span></span></code></pre></div><p>库名称使用同 <code>lib.json</code> 中列举的名称,区分大小写。</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>当未指定相关环境变量时,除以下变量外,其余值均默认为空:</p><table tabindex="0"><thead><tr><th>var name</th><th>var default value</th></tr></thead><tbody><tr><td><code>pkg_config_CFLAGS</code></td><td>macOS: <code>$SPC_DEFAULT_C_FLAGS -Wimplicit-function-declaration -Wno-int-conversion</code>, Other: empty</td></tr><tr><td><code>pkg_config_LDFLAGS</code></td><td>Linux: <code>--static</code>, Other: empty</td></tr><tr><td><code>imagemagick_LDFLAGS</code></td><td>Linux: <code>-static</code>, Other: empty</td></tr><tr><td><code>imagemagick_LIBS</code></td><td>macOS: <code>-liconv</code>, Other: empty</td></tr><tr><td><code>ldap_LDFLAGS</code></td><td><code>-L$BUILD_LIB_PATH</code></td></tr><tr><td><code>openssl_CFLAGS</code></td><td>Linux: <code>$SPC_DEFAULT_C_FLAGS</code>, Other: empty</td></tr><tr><td>others...</td><td>empty</td></tr></tbody></table></div><p>下表是支持自定义以上三种变量的依赖库名称列表:</p><table tabindex="0"><thead><tr><th>lib name</th></tr></thead><tbody><tr><td>brotli</td></tr><tr><td>bzip</td></tr><tr><td>curl</td></tr><tr><td>freetype</td></tr><tr><td>gettext</td></tr><tr><td>gmp</td></tr><tr><td>imagemagick</td></tr><tr><td>ldap</td></tr><tr><td>libargon2</td></tr><tr><td>libavif</td></tr><tr><td>libcares</td></tr><tr><td>libevent</td></tr><tr><td>openssl</td></tr></tbody></table><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>因为给每个库适配自定义环境变量是一项特别繁琐的工作,且大部分情况下你都不需要这些库的自定义环境变量,所以我们目前只支持了部分库的自定义环境变量。</p><p>如果你需要自定义环境变量的库不在上方列表,可以通过 <a href="https://github.com/crazywhalecc/static-php-cli/issues" target="_blank" rel="noreferrer">GitHub Issue</a> 来提出需求。</p></div>`,27),c=[d];function l(n,o,p,r,h,k){return e(),i("div",null,c)}const u=t(a,[["render",l]]);export{b as __pageData,u as default};
|
||||||
1
assets/zh_guide_env-vars.md.B2fVzlYf.lean.js
Normal file
1
assets/zh_guide_env-vars.md.B2fVzlYf.lean.js
Normal file
@ -0,0 +1 @@
|
|||||||
|
import{_ as t,c as i,o as e,a1 as s}from"./chunks/framework.CszIUXhs.js";const b=JSON.parse('{"title":"环境变量","description":"","frontmatter":{},"headers":[],"relativePath":"zh/guide/env-vars.md","filePath":"zh/guide/env-vars.md"}'),a={name:"zh/guide/env-vars.md"},d=s("",27),c=[d];function l(n,o,p,r,h,k){return e(),i("div",null,c)}const u=t(a,[["render",l]]);export{b as __pageData,u as default};
|
||||||
File diff suppressed because one or more lines are too long
@ -1 +0,0 @@
|
|||||||
import{_ as d,c as t,o as e,a1 as o}from"./chunks/framework.CszIUXhs.js";const C=JSON.parse('{"title":"环境变量列表","description":"","frontmatter":{"aside":false},"headers":[],"relativePath":"zh/guide/env-vars.md","filePath":"zh/guide/env-vars.md"}'),c={name:"zh/guide/env-vars.md"},a=o("",35),i=[a];function r(s,l,n,_,h,p){return e(),t("div",null,i)}const b=d(c,[["render",r]]);export{C as __pageData,b as default};
|
|
||||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1 +1 @@
|
|||||||
{"zh_guide_troubleshooting.md":"CSXAWaMN","extensions.md":"CNUX1EC5","en_guide_extensions.md":"D-TFlTtG","zh_guide_env-vars.md":"CsRQyiY-","zh_guide_extension-notes.md":"SlBCrb5I","zh_guide_index.md":"D0Jfo4Dz","en_guide_env-vars.md":"Cfljs3Iy","zh_develop_structure.md":"DDUlE6Vc","en_contributing_index.md":"0xRtVBv6","deps-map-ext.md":"B4w-dCl4","zh_guide_deps-map.md":"ColAg-h6","en_develop_index.md":"BqNiKnHj","en_guide_cli-generator.md":"DF5chjWI","zh_index.md":"Bu-me8xZ","zh_develop_php-src-changes.md":"C7L9rEms","zh_develop_system-build-tools.md":"DvA9SnOG","en_develop_php-src-changes.md":"Dw_q8s3t","en_guide_index.md":"DzPC1rL-","en_guide_manual-build.md":"DBARuEeg","zh_guide_cli-generator.md":"DpeJXLi8","index.md":"DDaDbFm-","extension-notes.md":"CYTuu5Xm","zh_guide_action-build.md":"BQOsJgGT","en_faq_index.md":"DM_hczmb","en_develop_doctor-module.md":"M_P38WuA","en_guide_deps-map.md":"CSalbdja","zh_guide_extensions.md":"C86HPl5E","zh_faq_index.md":"Bs3v_2I2","en_guide_troubleshooting.md":"BZNNttUZ","zh_develop_index.md":"CISWAEXj","en_develop_system-build-tools.md":"Ds5Kgdf6","deps-map-lib.md":"B6iE3n36","zh_develop_source-module.md":"3BVNxzfq","en_develop_structure.md":"Bam0WW0K","en_index.md":"B7rqxnyF","en_guide_build-on-windows.md":"Bw1buXoR","zh_contributing_index.md":"BgLPhRbJ","en_guide_action-build.md":"DqfXKtKF","en_develop_source-module.md":"CWrA_rEy","zh_develop_doctor-module.md":"CPRdzud3","zh_guide_manual-build.md":"Br54dIKC","zh_guide_build-on-windows.md":"C1RFP4Q6","en_guide_extension-notes.md":"C-SzmSnl"}
|
{"deps-map-lib.md":"B6iE3n36","en_guide_env-vars.md":"CO3ymjxn","zh_guide_extension-notes.md":"SlBCrb5I","extensions.md":"CNUX1EC5","en_guide_extension-notes.md":"C-SzmSnl","deps-map-ext.md":"B4w-dCl4","en_develop_index.md":"BqNiKnHj","en_guide_index.md":"DzPC1rL-","en_guide_troubleshooting.md":"BZNNttUZ","en_index.md":"B7rqxnyF","index.md":"DDaDbFm-","en_contributing_index.md":"0xRtVBv6","zh_guide_index.md":"D0Jfo4Dz","zh_guide_extensions.md":"C86HPl5E","en_guide_extensions.md":"D-TFlTtG","zh_index.md":"Bu-me8xZ","zh_guide_troubleshooting.md":"CSXAWaMN","en_guide_action-build.md":"DqfXKtKF","en_guide_build-on-windows.md":"Bw1buXoR","en_guide_cli-generator.md":"DF5chjWI","en_guide_deps-map.md":"CSalbdja","zh_develop_doctor-module.md":"CPRdzud3","zh_develop_index.md":"CISWAEXj","zh_develop_php-src-changes.md":"C7L9rEms","zh_develop_structure.md":"DDUlE6Vc","zh_faq_index.md":"Bs3v_2I2","en_develop_php-src-changes.md":"Dw_q8s3t","zh_develop_system-build-tools.md":"DvA9SnOG","zh_guide_cli-generator.md":"DpeJXLi8","zh_guide_build-on-windows.md":"C1RFP4Q6","en_develop_source-module.md":"CWrA_rEy","en_faq_index.md":"DM_hczmb","zh_guide_deps-map.md":"ColAg-h6","en_develop_system-build-tools.md":"Ds5Kgdf6","zh_guide_action-build.md":"BQOsJgGT","extension-notes.md":"CYTuu5Xm","en_develop_structure.md":"Bam0WW0K","zh_develop_source-module.md":"3BVNxzfq","en_develop_doctor-module.md":"M_P38WuA","zh_contributing_index.md":"BgLPhRbJ","zh_guide_env-vars.md":"B2fVzlYf","en_guide_manual-build.md":"DBARuEeg","zh_guide_manual-build.md":"Br54dIKC"}
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Loading…
x
Reference in New Issue
Block a user