2025-08-31 05:45:13 +00:00
import { _ as t , c as s , o as e , ah as a } from "./chunks/framework.Bhsyh9kO.js" ; const k = JSON . parse ( '{"title":"环境变量","description":"","frontmatter":{},"headers":[],"relativePath":"zh/guide/env-vars.md","filePath":"zh/guide/env-vars.md"}' ) , n = { name : "zh/guide/env-vars.md" } ; function l ( d , i , c , p , h , o ) { return e ( ) , s ( "div" , null , [ ... i [ 0 ] || ( i [ 0 ] = [ a ( ` <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"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki shiki-themes github-light github-dark" style="--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e;" tabindex="0" dir="ltr"><code><span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># export 方式</span></span>
2025-06-12 04:49:10 +00:00
< span class = "line" > < span style = "--shiki-light:#D73A49;--shiki-dark:#F97583;" > export < / s p a n > < s p a n s t y l e = " - - s h i k i - l i g h t : # 2 4 2 9 2 E ; - - s h i k i - d a r k : # E 1 E 4 E 8 ; " > S P C _ C O N C U R R E N C Y < / s p a n > < s p a n s t y l e = " - - s h i k i - l i g h t : # D 7 3 A 4 9 ; - - s h i k i - d a r k : # F 9 7 5 8 3 ; " > = < / s p a n > < s p a n s t y l e = " - - s h i k i - l i g h t : # 0 0 5 C C 5 ; - - s h i k i - d a r k : # 7 9 B 8 F F ; " > 4 < / s p a n > < / s p a n >
< span class = "line" > < span style = "--shiki-light:#6F42C1;--shiki-dark:#B392F0;" > bin / spc < / s p a n > < s p a n s t y l e = " - - s h i k i - l i g h t : # 0 3 2 F 6 2 ; - - s h i k i - d a r k : # 9 E C B F F ; " > b u i l d < / s p a n > < s p a n s t y l e = " - - s h i k i - l i g h t : # 0 3 2 F 6 2 ; - - s h i k i - d a r k : # 9 E C B F F ; " > m b s t r i n g , p c n t l < / s p a n > < s p a n s t y l e = " - - s h i k i - l i g h t : # 0 0 5 C C 5 ; - - s h i k i - d a r k : # 7 9 B 8 F F ; " > - - b u i l d - c l i < / s p a n > < / s p a n >
< span class = "line" > < / s p a n >
< span class = "line" > < span style = "--shiki-light:#6A737D;--shiki-dark:#6A737D;" > # 直接设置方式 < / s p a n > < / s p a n >
< span class = "line" > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > SPC _CONCURRENCY < / s p a n > < s p a n s t y l e = " - - s h i k i - l i g h t : # D 7 3 A 4 9 ; - - s h i k i - d a r k : # F 9 7 5 8 3 ; " > = < / s p a n > < s p a n s t y l e = " - - s h i k i - l i g h t : # 0 3 2 F 6 2 ; - - s h i k i - d a r k : # 9 E C B F F ; " > 4 < / s p a n > < s p a n s t y l e = " - - s h i k i - l i g h t : # 6 F 4 2 C 1 ; - - s h i k i - d a r k : # B 3 9 2 F 0 ; " > b i n / s p c < / s p a n > < s p a n s t y l e = " - - s h i k i - l i g h t : # 0 3 2 F 6 2 ; - - s h i k i - d a r k : # 9 E C B F F ; " > b u i l d < / s p a n > < s p a n s t y l e = " - - s h i k i - l i g h t : # 0 3 2 F 6 2 ; - - s h i k i - d a r k : # 9 E C B F F ; " > m b s t r i n g , p c n t l < / s p a n > < s p a n s t y l e = " - - s h i k i - l i g h t : # 0 0 5 C C 5 ; - - s h i k i - d a r k : # 7 9 B 8 F F ; " > - - b u i l d - c l i < / s p a n > < / s p a n > < / c o d e > < / p r e > < / d i v > < p > 或 者 , 如 果 你 需 要 长 期 修 改 某 个 环 境 变 量 , 你 可 以 通 过 修 改 < c o d e > c o n f i g / e n v . i n i < / c o d e > 文 件 来 实 现 。 < / p > < p > < c o d e > c o n f i g / e n v . i n i < / c o d e > 分 为 三 段 , 其 中 < c o d e > [ g l o b a l ] < / c o d e > 全 局 有 效 , < c o d e > [ w i n d o w s ] < / c o d e > 、 < c o d e > [ m a c o s ] < / c o d e > 、 < c o d e > [ l i n u x ] < / c o d e > 仅 对 应 的 操 作 系 统 有 效 。 < / p > < p > 例 如 , 你 需 要 修 改 编 译 P H P 的 < c o d e > . / c o n f i g u r e < / c o d e > 命 令 , 你 可 以 在 < c o d e > c o n f i g / e n v . i n i < / c o d e > 文 件 中 找 到 < c o d e > S P C _ C M D _ P R E F I X _ P H P _ C O N F I G U R E < / c o d e > 环 境 变 量 , 然 后 修 改 其 值 即 可 。 < / p > < p > 但 如 果 你 的 构 建 条 件 比 较 复 杂 , 需 要 多 种 e n v . i n i 进 行 切 换 , 我 们 推 荐 你 使 用 < c o d e > c o n f i g / e n v . c u s t o m . i n i < / c o d e > 文 件 , 这 样 你 可 以 在 不 修 改 默 认 的 < c o d e > c o n f i g / e n v . i n i < / c o d e > 文 件 的 情 况 下 , 通 过 写 入 额 外 的 重 载 项 目 指 定 你 的 环 境 变 量 。 < / p > < d i v c l a s s = " l a n g u a g e - i n i " > < b u t t o n t i t l e = " C o p y C o d e " c l a s s = " c o p y " > < / b u t t o n > < s p a n c l a s s = " l a n g " > i n i < / s p a n > < p r e c l a s s = " s h i k i s h i k i - t h e m e s g i t h u b - l i g h t g i t h u b - d a r k " s t y l e = " - - s h i k i - l i g h t : # 2 4 2 9 2 e ; - - s h i k i - d a r k : # e 1 e 4 e 8 ; - - s h i k i - l i g h t - b g : # f f f ; - - s h i k i - d a r k - b g : # 2 4 2 9 2 e ; " t a b i n d e x = " 0 " d i r = " l t r " > < c o d e > < s p a n c l a s s = " l i n e " > < s p a n s t y l e = " - - s h i k i - l i g h t : # 6 A 7 3 7 D ; - - s h i k i - d a r k : # 6 A 7 3 7 D ; " > ; T h i s i s a n e x a m p l e o f \ ` c o n f i g / e n v . c u s t o m . i n i \ ` f i l e , < / s p a n > < / s p a n >
< span class = "line" > < span style = "--shiki-light:#6A737D;--shiki-dark:#6A737D;" > ; we modify the \ ` SPC_CONCURRENCY \` and linux default CFLAGS passing to libs and PHP</span></span>
< span class = "line" > < span style = "--shiki-light:#6F42C1;--shiki-dark:#B392F0;" > [ global ] < / s p a n > < / s p a n >
< span class = "line" > < span style = "--shiki-light:#D73A49;--shiki-dark:#F97583;" > SPC _CONCURRENCY < / s p a n > < s p a n s t y l e = " - - s h i k i - l i g h t : # 2 4 2 9 2 E ; - - s h i k i - d a r k : # E 1 E 4 E 8 ; " > = 4 < / s p a n > < / s p a n >
< span class = "line" > < / s p a n >
< span class = "line" > < span style = "--shiki-light:#6F42C1;--shiki-dark:#B392F0;" > [ linux ] < / s p a n > < / s p a n >
2025-08-31 05:45:13 +00:00
< span class = "line" > < span style = "--shiki-light:#D73A49;--shiki-dark:#F97583;" > SPC _DEFAULT _C _FLAGS < / s p a n > < s p a n s t y l e = " - - s h i k i - l i g h t : # 2 4 2 9 2 E ; - - s h i k i - d a r k : # E 1 E 4 E 8 ; " > = < / s p a n > < s p a n s t y l e = " - - s h i k i - l i g h t : # 0 3 2 F 6 2 ; - - s h i k i - d a r k : # 9 E C B F F ; " > & q u o t ; - O 3 & q u o t ; < / s p a n > < / s p a n > < / c o d e > < / p r e > < / d i v > < h 2 i d = " 编 译 依 赖 库 的 环 境 变 量 - 仅 限 - u n i x - 系 统 " t a b i n d e x = " - 1 " > 编 译 依 赖 库 的 环 境 变 量 ( 仅 限 U n i x 系 统 ) < a c l a s s = " h e a d e r - a n c h o r " h r e f = " # 编 译 依 赖 库 的 环 境 变 量 - 仅 限 - u n i x - 系 统 " a r i a - l a b e l = " P e r m a l i n k t o “ 编 译 依 赖 库 的 环 境 变 量 ( 仅 限 U n i x 系 统 ) ” " > < / a > < / h 2 > < p > 从 2 . 2 . 0 开 始 , s t a t i c - p h p - c l i 对 所 有 m a c O S 、 L i n u x 、 F r e e B S D 等 U n i x 系 统 的 编 译 依 赖 库 的 命 令 均 支 持 自 定 义 环 境 变 量 。 < / p > < p > 这 样 你 就 可 以 随 时 通 过 环 境 变 量 来 调 整 编 译 依 赖 库 的 行 为 。 例 如 你 可 以 通 过 < c o d e > x x x _ C F L A G S = - O 0 < / c o d e > 来 设 置 编 译 x x x 库 的 优 化 参 数 。 < / p > < p > 当 然 , 不 是 每 个 依 赖 库 都 支 持 注 入 环 境 变 量 , 我 们 目 前 提 供 了 三 个 通 配 的 环 境 变 量 , 后 缀 分 别 为 : < / p > < u l > < l i > < c o d e > _ C F L A G S < / c o d e > : C 编 译 器 的 参 数 < / l i > < l i > < c o d e > _ L D F L A G S < / c o d e > : 链 接 器 的 参 数 < / l i > < l i > < c o d e > _ L I B S < / c o d e > : 额 外 的 链 接 库 < / l i > < / u l > < p > 前 缀 为 依 赖 库 的 名 称 , 具 体 依 赖 库 的 名 称 以 < c o d e > l i b . j s o n < / c o d e > 为 准 。 其 中 , 带 有 < c o d e > - < / c o d e > 的 依 赖 库 名 称 需 要 将 < c o d e > - < / c o d e > 替 换 为 < c o d e > _ < / c o d e > 。 < / p > < p > 下 面 是 一 个 替 换 o p e n s s l 库 编 译 的 优 化 选 项 示 例 : < / p > < d i v c l a s s = " l a n g u a g e - s h e l l " > < b u t t o n t i t l e = " C o p y C o d e " c l a s s = " c o p y " > < / b u t t o n > < s p a n c l a s s = " l a n g " > s h e l l < / s p a n > < p r e c l a s s = " s h i k i s h i k i - t h e m e s g i t h u b - l i g h t g i t h u b - d a r k " s t y l e = " - - s h i k i - l i g h t : # 2 4 2 9 2 e ; - - s h i k i - d a r k : # e 1 e 4 e 8 ; - - s h i k i - l i g h t - b g : # f f f ; - - s h i k i - d a r k - b g : # 2 4 2 9 2 e ; " t a b i n d e x = " 0 " d i r = " l t r " > < c o d e > < s p a n c l a s s = " l i n e " > < s p a n s t y l e = " - - s h i k i - l i g h t : # 2 4 2 9 2 E ; - - s h i k i - d a r k : # E 1 E 4 E 8 ; " > o p e n s s l _ C F L A G S < / s p a n > < s p a n s t y l e = " - - s h i k i - l i g h t : # D 7 3 A 4 9 ; - - s h i k i - d a r k : # F 9 7 5 8 3 ; " > = < / s p a n > < s p a n s t y l e = " - - s h i k i - l i g h t : # 0 3 2 F 6 2 ; - - s h i k i - d a r k : # 9 E C B F F ; " > & q u o t ; - O 0 & q u o t ; < / s p a n > < / s p a n > < / c o d e > < / p r e > < / d i v > < p > 库 名 称 使 用 同 < c o d e > l i b . j s o n < / c o d e > 中 列 举 的 名 称 , 区 分 大 小 写 。 < / p > < d i v c l a s s = " t i p c u s t o m - b l o c k " > < p c l a s s = " c u s t o m - b l o c k - t i t l e c u s t o m - b l o c k - t i t l e - d e f a u l t " > T I P < / p > < p > 当 未 指 定 相 关 环 境 变 量 时 , 除 以 下 变 量 外 , 其 余 值 均 默 认 为 空 : < / p > < t a b l e t a b i n d e x = " 0 " > < t h e a d > < t r > < t h > v a r n a m e < / t h > < t h > v a r d e f a u l t v a l u e < / t h > < / t r > < / t h e a d > < t b o d y > < t r > < t d > < c o d e > p k g _ c o n f i g _ C F L A G S < / c o d e > < / t d > < t d > m a c O S : < c o d e > $ S P C _ D E F A U L T _ C _ F L A G S - W i m p l i c i t - f u n c t i o n - d e c l a r a t i o n - W n o - i n t - c o n v e r s i o n < / c o d e > , O t h e r : e m p t y < / t d > < / t r > < t r > < t d > < c o d e > p k g _ c o n f i g _ L D F L A G S < / c o d e > < / t d > < t d > L i n u x : < c o d e > - - s t a t i c < / c o d e > , O t h e r : e m p t y < / t d > < / t r > < t r > < t d > < c o d e > i m a g e m a g i c k _ L D F L A G S < / c o d e > < / t d > < t d > L i n u x : < c o d e > - s t a t i c < / c o d e > , O t h e r : e m p t y < / t d > < / t r > < t r > < t d > < c o d e > i m a g e m a g i c k _ L I B S < / c o d e > < / t d > < t d > m a c O S : < c o d e > - l i c o n v < / c o d e > , O t h e r : e m p t y < / t d > < / t r > < t r > < t d > < c o d e > l d a p _ L D F L A G S < / c o d e > < / t d > < t d > < c o d e > - L $ B U I L D _ L I B _ P A T H < / c o d e > < / t d > < / t r > < t r > < t d > < c o d e > o p e n s s l _ C F L A G S < / c o d e > < / t d > < t d > L i n u x : < c o d e > $ S P C _ D E F A U L T _ C _ F L A G S < / c o d e > , O t h e r : e m p t y < / t d > < / t r > < t r > < t d > o t h e r s . . . < / t d > < t d > e m p t y < / t d > < / t r > < / t b o d y > < / t a b l e > < / d i v > < p > 下 表 是 支 持 自 定 义 以 上 三 种 变 量 的 依 赖 库 名 称 列 表 : < / p > < t a b l e t a b i n d e x = " 0 " > < t h e a d > < t r > < t h > l i b n a m e < / t h > < / t r > < / t h e a d > < t b o d y > < t r > < t d > b r o t l i < / t d > < / t r > < t r > < t d > b z i p < / t d > < / t r > < t r > < t d > c u r l < / t d > < / t r > < t r > < t d > f r e e t y p e < / t d > < / t r > < t r > < t d > g e t t e x t < / t d > < / t r > < t r > < t d > g m p < / t d > < / t r > < t r > < t d > i m a g e m a g i c k < / t d > < / t r > < t r > < t d > l d a p < / t d > < / t r > < t r > < t d > l i b a r g o n 2 < / t d > < / t r > < t r > < t d > l i b a v i f < / t d > < / t r > < t r > < t d > l i b c a r e s < / t d > < / t r > < t r > < t d > l i b e v e n t < / t d > < / t r > < t r > < t d > o p e n s s l < / t d > < / t r > < / t b o d y > < / t a b l e > < d i v c l a s s = " t i p c u s t o m - b l o c k " > < p c l a s s = " c u s t o m - b l o c k - t i t l e c u s t o m - b l o c k - t i t l e - d e f a u l t " > T I P < / p > < p > 因 为 给 每 个 库 适 配 自 定 义 环 境 变 量 是 一 项 特 别 繁 琐 的 工 作 , 且 大 部 分 情 况 下 你 都 不 需 要 这 些 库 的 自 定 义 环 境 变 量 , 所 以 我 们 目 前 只 支 持 了 部 分 库 的 自 定 义 环 境 变 量 。 < / p > < p > 如 果 你 需 要 自 定 义 环 境 变 量 的 库 不 在 上 方 列 表 , 可 以 通 过 < a h r e f = " h t t p s : / / g i t h u b . c o m / c r a z y w h a l e c c / s t a t i c - p h p - c l i / i s s u e s " t a r g e t = " _ b l a n k " r e l = " n o r e f e r r e r " > G i t H u b I s s u