static-php-cli/zh/guide/env-vars.html
2024-09-20 04:33:09 +00:00

29 lines
34 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="zh" dir="ltr">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>环境变量列表 | static-php-cli</title>
<meta name="description" content="Build single static PHP binary, with PHP project together, with popular extensions included.">
<meta name="generator" content="VitePress v1.2.3">
<link rel="preload stylesheet" href="/assets/style.B7QwpTn2.css" as="style">
<script type="module" src="/assets/app.DAnd8ZqT.js"></script>
<link rel="preload" href="/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
<link rel="modulepreload" href="/assets/chunks/framework.CszIUXhs.js">
<link rel="modulepreload" href="/assets/chunks/theme.Yd2LEGgK.js">
<link rel="modulepreload" href="/assets/zh_guide_env-vars.md.CsRQyiY-.lean.js">
<script id="check-dark-mode">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"auto",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
<script id="check-mac-os">document.documentElement.classList.toggle("mac",/Mac|iPhone|iPod|iPad/i.test(navigator.platform));</script>
</head>
<body>
<div id="app"><div class="Layout" data-v-5d98c3a5><!--[--><!--]--><!--[--><span tabindex="-1" data-v-0f60ec36></span><a href="#VPContent" class="VPSkipLink visually-hidden" data-v-0f60ec36> Skip to content </a><!--]--><!----><header class="VPNav" data-v-5d98c3a5 data-v-ae24b3ad><div class="VPNavBar has-sidebar top" data-v-ae24b3ad data-v-ccf7ddec><div class="wrapper" data-v-ccf7ddec><div class="container" data-v-ccf7ddec><div class="title" data-v-ccf7ddec><div class="VPNavBarTitle has-sidebar" data-v-ccf7ddec data-v-ab179fa1><a class="title" href="/zh/" data-v-ab179fa1><!--[--><!--]--><!----><span data-v-ab179fa1>static-php-cli</span><!--[--><!--]--></a></div></div><div class="content" data-v-ccf7ddec><div class="content-body" data-v-ccf7ddec><!--[--><!--]--><div class="VPNavBarSearch search" data-v-ccf7ddec><!----></div><nav aria-labelledby="main-nav-aria-label" class="VPNavBarMenu menu" data-v-ccf7ddec data-v-7f418b0f><span id="main-nav-aria-label" class="visually-hidden" data-v-7f418b0f>Main Navigation</span><!--[--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/zh/guide/" tabindex="0" data-v-7f418b0f data-v-9c663999><!--[--><span data-v-9c663999>构建指南</span><!--]--></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/zh/develop/" tabindex="0" data-v-7f418b0f data-v-9c663999><!--[--><span data-v-9c663999>进阶</span><!--]--></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/zh/contributing/" tabindex="0" data-v-7f418b0f data-v-9c663999><!--[--><span data-v-9c663999>贡献</span><!--]--></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/zh/faq/" tabindex="0" data-v-7f418b0f data-v-9c663999><!--[--><span data-v-9c663999>FAQ</span><!--]--></a><!--]--><!--]--></nav><div class="VPFlyout VPNavBarTranslations translations" data-v-ccf7ddec data-v-88af2de4 data-v-b6c34ac9><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="Change language" data-v-b6c34ac9><span class="text" data-v-b6c34ac9><span class="vpi-languages option-icon" data-v-b6c34ac9></span><!----><span class="vpi-chevron-down text-icon" data-v-b6c34ac9></span></span></button><div class="menu" data-v-b6c34ac9><div class="VPMenu" data-v-b6c34ac9 data-v-e7ea1737><!----><!--[--><!--[--><div class="items" data-v-88af2de4><p class="title" data-v-88af2de4>简体中文</p><!--[--><div class="VPMenuLink" data-v-88af2de4 data-v-43f1e123><a class="VPLink link" href="/en/guide/env-vars.html" data-v-43f1e123><!--[-->English<!--]--></a></div><!--]--></div><!--]--><!--]--></div></div></div><div class="VPNavBarAppearance appearance" data-v-ccf7ddec data-v-e6aabb21><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title="Switch to dark theme" aria-checked="false" data-v-e6aabb21 data-v-d1f28634 data-v-1d5665e3><span class="check" data-v-1d5665e3><span class="icon" data-v-1d5665e3><!--[--><span class="vpi-sun sun" data-v-d1f28634></span><span class="vpi-moon moon" data-v-d1f28634></span><!--]--></span></span></button></div><div class="VPSocialLinks VPNavBarSocialLinks social-links" data-v-ccf7ddec data-v-0394ad82 data-v-7bc22406><!--[--><a class="VPSocialLink no-icon" href="https://github.com/crazywhalecc/static-php-cli" aria-label="github" target="_blank" rel="noopener" data-v-7bc22406 data-v-eee4e7cb><span class="vpi-social-github" /></a><!--]--></div><div class="VPFlyout VPNavBarExtra extra" data-v-ccf7ddec data-v-d0bd9dde data-v-b6c34ac9><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="extra navigation" data-v-b6c34ac9><span class="vpi-more-horizontal icon" data-v-b6c34ac9></span></button><div class="menu" data-v-b6c34ac9><div class="VPMenu" data-v-b6c34ac9 data-v-e7ea1737><!----><!--[--><!--[--><div class="group translations" data-v-d0bd9dde><p class="trans-title" data-v-d0bd9dde>简体中文</p><!--[--><div class="VPMenuLink" data-v-d0bd9dde data-v-43f1e123><a class="VPLink link" href="/en/guide/env-vars.html" data-v-43f1e123><!--[-->English<!--]--></a></div><!--]--></div><div class="group" data-v-d0bd9dde><div class="item appearance" data-v-d0bd9dde><p class="label" data-v-d0bd9dde>Appearance</p><div class="appearance-action" data-v-d0bd9dde><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title="Switch to dark theme" aria-checked="false" data-v-d0bd9dde data-v-d1f28634 data-v-1d5665e3><span class="check" data-v-1d5665e3><span class="icon" data-v-1d5665e3><!--[--><span class="vpi-sun sun" data-v-d1f28634></span><span class="vpi-moon moon" data-v-d1f28634></span><!--]--></span></span></button></div></div></div><div class="group" data-v-d0bd9dde><div class="item social-links" data-v-d0bd9dde><div class="VPSocialLinks social-links-list" data-v-d0bd9dde data-v-7bc22406><!--[--><a class="VPSocialLink no-icon" href="https://github.com/crazywhalecc/static-php-cli" aria-label="github" target="_blank" rel="noopener" data-v-7bc22406 data-v-eee4e7cb><span class="vpi-social-github" /></a><!--]--></div></div></div><!--]--><!--]--></div></div></div><!--[--><!--]--><button type="button" class="VPNavBarHamburger hamburger" aria-label="mobile navigation" aria-expanded="false" aria-controls="VPNavScreen" data-v-ccf7ddec data-v-e5dd9c1c><span class="container" data-v-e5dd9c1c><span class="top" data-v-e5dd9c1c></span><span class="middle" data-v-e5dd9c1c></span><span class="bottom" data-v-e5dd9c1c></span></span></button></div></div></div></div><div class="divider" data-v-ccf7ddec><div class="divider-line" data-v-ccf7ddec></div></div></div><!----></header><div class="VPLocalNav has-sidebar empty" data-v-5d98c3a5 data-v-a6f0e41e><div class="container" data-v-a6f0e41e><button class="menu" aria-expanded="false" aria-controls="VPSidebarNav" data-v-a6f0e41e><span class="vpi-align-left menu-icon" data-v-a6f0e41e></span><span class="menu-text" data-v-a6f0e41e>Menu</span></button><div class="VPLocalNavOutlineDropdown" style="--vp-vh:0px;" data-v-a6f0e41e data-v-17a5e62e><button data-v-17a5e62e>Return to top</button><!----></div></div></div><aside class="VPSidebar" data-v-5d98c3a5 data-v-575e6a36><div class="curtain" data-v-575e6a36></div><nav class="nav" id="VPSidebarNav" aria-labelledby="sidebar-aria-label" tabindex="-1" data-v-575e6a36><span class="visually-hidden" id="sidebar-aria-label" data-v-575e6a36> Sidebar Navigation </span><!--[--><!--]--><!--[--><div class="group" data-v-575e6a36><section class="VPSidebarItem level-0 has-active" data-v-575e6a36 data-v-b8d55f3b><div class="item" role="button" tabindex="0" data-v-b8d55f3b><div class="indicator" data-v-b8d55f3b></div><h2 class="text" data-v-b8d55f3b>构建指南</h2><!----></div><div class="items" data-v-b8d55f3b><!--[--><div class="VPSidebarItem level-1 is-link" data-v-b8d55f3b data-v-b8d55f3b><div class="item" data-v-b8d55f3b><div class="indicator" data-v-b8d55f3b></div><a class="VPLink link link" href="/zh/guide/" data-v-b8d55f3b><!--[--><p class="text" data-v-b8d55f3b>指南</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b8d55f3b data-v-b8d55f3b><div class="item" data-v-b8d55f3b><div class="indicator" data-v-b8d55f3b></div><a class="VPLink link link" href="/zh/guide/action-build.html" data-v-b8d55f3b><!--[--><p class="text" data-v-b8d55f3b>Actions 构建</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b8d55f3b data-v-b8d55f3b><div class="item" data-v-b8d55f3b><div class="indicator" data-v-b8d55f3b></div><a class="VPLink link link" href="/zh/guide/manual-build.html" data-v-b8d55f3b><!--[--><p class="text" data-v-b8d55f3b>本地构建</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b8d55f3b data-v-b8d55f3b><div class="item" data-v-b8d55f3b><div class="indicator" data-v-b8d55f3b></div><a class="VPLink link link" href="/zh/guide/extensions.html" data-v-b8d55f3b><!--[--><p class="text" data-v-b8d55f3b>扩展列表</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b8d55f3b data-v-b8d55f3b><div class="item" data-v-b8d55f3b><div class="indicator" data-v-b8d55f3b></div><a class="VPLink link link" href="/zh/guide/extension-notes.html" data-v-b8d55f3b><!--[--><p class="text" data-v-b8d55f3b>扩展注意事项</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b8d55f3b data-v-b8d55f3b><div class="item" data-v-b8d55f3b><div class="indicator" data-v-b8d55f3b></div><a class="VPLink link link" href="/zh/guide/cli-generator.html" data-v-b8d55f3b><!--[--><p class="text" data-v-b8d55f3b>编译命令生成器</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b8d55f3b data-v-b8d55f3b><div class="item" data-v-b8d55f3b><div class="indicator" data-v-b8d55f3b></div><a class="VPLink link link" href="/zh/guide/env-vars.html" data-v-b8d55f3b><!--[--><p class="text" data-v-b8d55f3b>环境变量列表</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b8d55f3b data-v-b8d55f3b><div class="item" data-v-b8d55f3b><div class="indicator" data-v-b8d55f3b></div><a class="VPLink link link" href="/zh/guide/deps-map.html" data-v-b8d55f3b><!--[--><p class="text" data-v-b8d55f3b>依赖关系图表</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="group" data-v-575e6a36><section class="VPSidebarItem level-0" data-v-575e6a36 data-v-b8d55f3b><!----><div class="items" data-v-b8d55f3b><!--[--><div class="VPSidebarItem level-1 is-link" data-v-b8d55f3b data-v-b8d55f3b><div class="item" data-v-b8d55f3b><div class="indicator" data-v-b8d55f3b></div><a class="VPLink link link" href="/zh/guide/troubleshooting.html" data-v-b8d55f3b><!--[--><p class="text" data-v-b8d55f3b>故障排除</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b8d55f3b data-v-b8d55f3b><div class="item" data-v-b8d55f3b><div class="indicator" data-v-b8d55f3b></div><a class="VPLink link link" href="/zh/guide/build-on-windows.html" data-v-b8d55f3b><!--[--><p class="text" data-v-b8d55f3b>在 Windows 上构建</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><!--]--><!--[--><!--]--></nav></aside><div class="VPContent has-sidebar" id="VPContent" data-v-5d98c3a5 data-v-1428d186><div class="VPDoc has-sidebar" data-v-1428d186 data-v-39a288b8><!--[--><!--]--><div class="container" data-v-39a288b8><!----><div class="content" data-v-39a288b8><div class="content-container" data-v-39a288b8><!--[--><!--]--><main class="main" data-v-39a288b8><div style="position:relative;" class="vp-doc _zh_guide_env-vars" data-v-39a288b8><div><h1 id="环境变量列表" tabindex="-1">环境变量列表 <a class="header-anchor" href="#环境变量列表" aria-label="Permalink to &quot;环境变量列表&quot;"></a></h1><p>本页面的环境变量列表中所提到的所有环境变量都具有默认值,除非另有说明。你可以通过设置这些环境变量来覆盖默认值。</p><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><h2 id="通用环境变量" tabindex="-1">通用环境变量 <a class="header-anchor" href="#通用环境变量" aria-label="Permalink to &quot;通用环境变量&quot;"></a></h2><p>通用环境变量是所有构建目标都可以使用的环境变量。</p><table tabindex="0"><thead><tr><th>var name</th><th>default value</th><th>comment</th></tr></thead><tbody><tr><td><code>BUILD_ROOT_PATH</code></td><td><code>{pwd}/buildroot</code></td><td>编译目标的根目录</td></tr><tr><td><code>BUILD_LIB_PATH</code></td><td><code>{pwd}/buildroot/lib</code></td><td>编译依赖库的根目录</td></tr><tr><td><code>BUILD_INCLUDE_PATH</code></td><td><code>{pwd}/buildroot/include</code></td><td>编译依赖库的头文件目录</td></tr><tr><td><code>BUILD_BIN_PATH</code></td><td><code>{pwd}/buildroot/bin</code></td><td>编译依赖库的二进制文件目录</td></tr><tr><td><code>PKG_ROOT_PATH</code></td><td><code>{pwd}/pkgroot</code></td><td>闭源或预编译工具下载后安装的目录</td></tr><tr><td><code>SOURCE_PATH</code></td><td><code>{pwd}/source</code></td><td>编译项目的源码解压缩目录</td></tr><tr><td><code>DOWNLOAD_PATH</code></td><td><code>{pwd}/downloads</code></td><td>下载的文件存放目录</td></tr><tr><td><code>SPC_CONCURRENCY</code></td><td>取决于当前 CPU 核心数量</td><td>并行编译的数量</td></tr><tr><td><code>SPC_SKIP_PHP_VERSION_CHECK</code></td><td></td><td>设置为 <code>yes</code> 时,跳过扩展对 PHP 版本的检查</td></tr></tbody></table><h2 id="系统特定变量" tabindex="-1">系统特定变量 <a class="header-anchor" href="#系统特定变量" aria-label="Permalink to &quot;系统特定变量&quot;"></a></h2><p>这些环境变量是特定于系统的,它们只在特定的系统上才会生效。</p><h3 id="windows" tabindex="-1">Windows <a class="header-anchor" href="#windows" aria-label="Permalink to &quot;Windows&quot;"></a></h3><table tabindex="0"><thead><tr><th>var name</th><th>default value</th><th>comment</th></tr></thead><tbody><tr><td><code>PHP_SDK_PATH</code></td><td><code>{pwd}\php-sdk-binary-tools</code></td><td>PHP SDK 工具的安装目录</td></tr><tr><td><code>UPX_EXEC</code></td><td><code>$PKG_ROOT_PATH\bin\upx.exe</code></td><td>UPX 压缩工具的路径</td></tr><tr><td><code>SPC_MICRO_PATCHES</code></td><td><code>static_extensions_win32,cli_checks,disable_huge_page,vcruntime140,win32,zend_stream,cli_static</code></td><td>使用的 phpmicro <a href="https://github.com/easysoft/phpmicro/blob/master/patches/Readme.md" target="_blank" rel="noreferrer">patches</a></td></tr></tbody></table><h3 id="macos" tabindex="-1">macOS <a class="header-anchor" href="#macos" aria-label="Permalink to &quot;macOS&quot;"></a></h3><table tabindex="0"><thead><tr><th>var name</th><th>default value</th><th>comment</th></tr></thead><tbody><tr><td><code>CC</code></td><td><code>clang</code></td><td>C 编译器</td></tr><tr><td><code>CXX</code></td><td><code>clang++</code></td><td>C++ 编译器</td></tr><tr><td><code>SPC_DEFAULT_C_FLAGS</code></td><td><code>--target=arm64-apple-darwin</code><code>--target=x86_64-apple-darwin</code></td><td>默认 C 编译标志(与 <code>CFLAGS</code> 不同)</td></tr><tr><td><code>SPC_DEFAULT_CXX_FLAGS</code></td><td><code>--target=arm64-apple-darwin</code><code>--target=x86_64-apple-darwin</code></td><td>默认 C++ 编译标志(与 <code>CXXFLAGS</code> 不同)</td></tr><tr><td><code>SPC_CMD_PREFIX_PHP_BUILDCONF</code></td><td><code>./buildconf --force</code></td><td>编译 PHP <code>buildconf</code> 命令前缀</td></tr><tr><td><code>SPC_CMD_PREFIX_PHP_CONFIGURE</code></td><td><code>./configure --prefix= --with-valgrind=no --enable-shared=no --enable-static=yes --disable-all --disable-cgi --disable-phpdbg</code></td><td>编译 PHP <code>configure</code> 命令前缀</td></tr><tr><td><code>SPC_CMD_PREFIX_PHP_MAKE</code></td><td><code>make -j$SPC_CONCURRENCY</code></td><td>编译 PHP <code>make</code> 命令前缀</td></tr><tr><td><code>SPC_CMD_VAR_PHP_CONFIGURE_CFLAGS</code></td><td><code>$SPC_DEFAULT_C_FLAGS -Werror=unknown-warning-option</code></td><td>PHP <code>configure</code> 命令的 <code>CFLAGS</code> 变量</td></tr><tr><td><code>SPC_CMD_VAR_PHP_CONFIGURE_CPPFLAGS</code></td><td><code>-I$BUILD_INCLUDE_PATH</code></td><td>PHP <code>configure</code> 命令的 <code>CPPFLAGS</code> 变量</td></tr><tr><td><code>SPC_CMD_VAR_PHP_CONFIGURE_LDFLAGS</code></td><td><code>-L$BUILD_LIB_PATH</code></td><td>PHP <code>configure</code> 命令的 <code>LDFLAGS</code> 变量</td></tr><tr><td><code>SPC_CMD_VAR_PHP_MAKE_EXTRA_CFLAGS</code></td><td><code>-g0 -Os</code><code>-g -O0</code>(当使用 <code>--no-strip</code> 时为后者)</td><td>PHP <code>make</code> 命令的 <code>EXTRA_CFLAGS</code> 变量</td></tr><tr><td><code>SPC_CMD_VAR_PHP_MAKE_EXTRA_LIBS</code></td><td><code>-lresolv</code></td><td>PHP <code>make</code> 命令的额外 <code>EXTRA_LIBS</code> 变量</td></tr><tr><td><code>SPC_MICRO_PATCHES</code></td><td><code>static_extensions_win32,cli_checks,disable_huge_page,vcruntime140,win32,zend_stream,macos_iconv</code></td><td>使用的 phpmicro <a href="https://github.com/easysoft/phpmicro/blob/master/patches/Readme.md" target="_blank" rel="noreferrer">patches</a></td></tr></tbody></table><h3 id="linux" tabindex="-1">Linux <a class="header-anchor" href="#linux" aria-label="Permalink to &quot;Linux&quot;"></a></h3><table tabindex="0"><thead><tr><th>var name</th><th>default value</th><th>comment</th></tr></thead><tbody><tr><td><code>UPX_EXEC</code></td><td><code>$PKG_ROOT_PATH/bin/upx</code></td><td>UPX 压缩工具的路径</td></tr><tr><td><code>GNU_ARCH</code></td><td><code>x86_64</code><code>aarch64</code></td><td>当前环境的 CPU 架构</td></tr><tr><td><code>CC</code></td><td>Alpine: <code>gcc</code>, Other: <code>$GNU_ARCH-linux-musl-gcc</code></td><td>C 编译器</td></tr><tr><td><code>CXX</code></td><td>Alpine: <code>g++</code>, Other: <code>$GNU_ARCH-linux-musl-g++</code></td><td>C++ 编译器</td></tr><tr><td><code>AR</code></td><td>Alpine: <code>ar</code>, Other: <code>$GNU_ARCH-linux-musl-ar</code></td><td>静态库工具</td></tr><tr><td><code>LD</code></td><td><code>ld.gold</code></td><td>链接器</td></tr><tr><td><code>PATH</code></td><td><code>/usr/local/musl/bin:/usr/local/musl/$GNU_ARCH-linux-musl/bin:$PATH</code></td><td>系统 PATH</td></tr><tr><td><code>SPC_DEFAULT_C_FLAGS</code></td><td>empty</td><td>默认 C 编译标志</td></tr><tr><td><code>SPC_DEFAULT_CXX_FLAGS</code></td><td>empty</td><td>默认 C++ 编译标志</td></tr><tr><td><code>SPC_CMD_PREFIX_PHP_BUILDCONF</code></td><td><code>./buildconf --force</code></td><td>编译 PHP <code>buildconf</code> 命令前缀</td></tr><tr><td><code>SPC_CMD_PREFIX_PHP_CONFIGURE</code></td><td><code>LD_LIBRARY_PATH={ld_lib_path} ./configure --prefix= --with-valgrind=no --enable-shared=no --enable-static=yes --disable-all --disable-cgi --disable-phpdbg</code></td><td>编译 PHP <code>configure</code> 命令前缀</td></tr><tr><td><code>SPC_CMD_PREFIX_PHP_MAKE</code></td><td><code>make -j$SPC_CONCURRENCY</code></td><td>编译 PHP <code>make</code> 命令前缀</td></tr><tr><td><code>SPC_CMD_VAR_PHP_CONFIGURE_CFLAGS</code></td><td><code>$SPC_DEFAULT_C_FLAGS</code></td><td>PHP <code>configure</code> 命令的 <code>CFLAGS</code> 变量</td></tr><tr><td><code>SPC_CMD_VAR_PHP_CONFIGURE_CPPFLAGS</code></td><td><code>-I$BUILD_INCLUDE_PATH</code></td><td>PHP <code>configure</code> 命令的 <code>CPPFLAGS</code> 变量</td></tr><tr><td><code>SPC_CMD_VAR_PHP_CONFIGURE_LDFLAGS</code></td><td><code>-L$BUILD_LIB_PATH</code></td><td>PHP <code>configure</code> 命令的 <code>LDFLAGS</code> 变量</td></tr><tr><td><code>SPC_CMD_VAR_PHP_CONFIGURE_LIBS</code></td><td><code>-ldl -lpthread</code></td><td>PHP <code>configure</code> 命令的 <code>LIBS</code> 变量</td></tr><tr><td><code>SPC_CMD_VAR_PHP_MAKE_EXTRA_CFLAGS</code></td><td><code>-g0 -Os -fno-ident -fPIE</code><code>-g -O0 -fno-ident -fPIE</code>(当使用 <code>--no-strip</code> 时为后者)</td><td>PHP <code>make</code> 命令的 <code>EXTRA_CFLAGS</code> 变量</td></tr><tr><td><code>SPC_CMD_VAR_PHP_MAKE_EXTRA_LIBS</code></td><td>empty</td><td>PHP <code>make</code> 命令的额外 <code>EXTRA_LIBS</code> 变量</td></tr><tr><td><code>SPC_CMD_VAR_PHP_MAKE_EXTRA_LDFLAGS_PROGRAM</code></td><td><code>-all-static</code>(当使用 <code>clang</code> 时:<code>-Xcompiler -fuse-ld=lld -all-static</code></td><td><code>make</code> 命令的额外 <code>LDFLAGS</code> 变量(用于编译程序)</td></tr><tr><td><code>SPC_NO_MUSL_PATH</code></td><td>empty</td><td>是否不插入 musl 工具链的 PATH值为 <code>yes</code> 时不插入)</td></tr><tr><td><code>SPC_MICRO_PATCHES</code></td><td><code>static_extensions_win32,cli_checks,disable_huge_page,vcruntime140,win32,zend_stream</code></td><td>使用的 phpmicro <a href="https://github.com/easysoft/phpmicro/blob/master/patches/Readme.md" target="_blank" rel="noreferrer">patches</a></td></tr></tbody></table><blockquote><p><code>{ld_lib_path}</code> 值为 <code>/usr/local/musl/$GNU_ARCH-linux-musl/lib</code></p></blockquote><h3 id="freebsd" tabindex="-1">FreeBSD <a class="header-anchor" href="#freebsd" aria-label="Permalink to &quot;FreeBSD&quot;"></a></h3><p>因 FreeBSD 系统的用户较少,我们暂时不提供 FreeBSD 系统的环境变量。</p><h3 id="unix" tabindex="-1">Unix <a class="header-anchor" href="#unix" aria-label="Permalink to &quot;Unix&quot;"></a></h3><p>对于 macOS、Linux、FreeBSD 等 Unix 系统,以下环境变量是通用的。</p><table tabindex="0"><thead><tr><th>var name</th><th>default value</th><th>comment</th></tr></thead><tbody><tr><td><code>PATH</code></td><td><code>$BUILD_BIN_PATH:$PATH</code></td><td>系统 PATH</td></tr><tr><td><code>PKG_CONFIG_PATH</code></td><td><code>$BUILD_LIB_PATH/pkgconfig</code></td><td>pkg-config 的搜索路径</td></tr><tr><td><code>PKG_CONFIG</code></td><td><code>$BUILD_BIN_PATH/pkg-config</code></td><td>pkg-config 命令路径</td></tr></tbody></table><h2 id="编译依赖库的环境变量-仅限-unix-系统" tabindex="-1">编译依赖库的环境变量(仅限 Unix 系统) <a class="header-anchor" href="#编译依赖库的环境变量-仅限-unix-系统" aria-label="Permalink to &quot;编译依赖库的环境变量(仅限 Unix 系统)&quot;"></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;">&quot;-O0&quot;</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></div></div></main><footer class="VPDocFooter" data-v-39a288b8 data-v-d4a0bba5><!--[--><!--]--><!----><nav class="prev-next" aria-labelledby="doc-footer-aria-label" data-v-d4a0bba5><span class="visually-hidden" id="doc-footer-aria-label" data-v-d4a0bba5>Pager</span><div class="pager" data-v-d4a0bba5><a class="VPLink link pager-link prev" href="/zh/guide/cli-generator.html" data-v-d4a0bba5><!--[--><span class="desc" data-v-d4a0bba5>Previous page</span><span class="title" data-v-d4a0bba5>编译命令生成器</span><!--]--></a></div><div class="pager" data-v-d4a0bba5><a class="VPLink link pager-link next" href="/zh/guide/deps-map.html" data-v-d4a0bba5><!--[--><span class="desc" data-v-d4a0bba5>Next page</span><span class="title" data-v-d4a0bba5>依赖关系图表</span><!--]--></a></div></nav></footer><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><footer class="VPFooter has-sidebar" data-v-5d98c3a5 data-v-e315a0ad><div class="container" data-v-e315a0ad><p class="message" data-v-e315a0ad>Released under the MIT License.</p><p class="copyright" data-v-e315a0ad>Copyright © 2023-present crazywhalecc</p></div></footer><!--[--><!--]--></div></div>
<script>window.__VP_HASH_MAP__=JSON.parse("{\"en_index.md\":\"B7rqxnyF\",\"index.md\":\"DDaDbFm-\",\"deps-map-ext.md\":\"B4w-dCl4\",\"en_guide_extensions.md\":\"D-TFlTtG\",\"en_develop_structure.md\":\"Bam0WW0K\",\"en_develop_php-src-changes.md\":\"Dw_q8s3t\",\"zh_develop_doctor-module.md\":\"CPRdzud3\",\"deps-map-lib.md\":\"B6iE3n36\",\"en_contributing_index.md\":\"0xRtVBv6\",\"zh_develop_index.md\":\"CISWAEXj\",\"extension-notes.md\":\"CYTuu5Xm\",\"en_guide_deps-map.md\":\"CSalbdja\",\"en_faq_index.md\":\"DM_hczmb\",\"zh_develop_structure.md\":\"DDUlE6Vc\",\"zh_develop_php-src-changes.md\":\"C7L9rEms\",\"en_develop_system-build-tools.md\":\"Ds5Kgdf6\",\"en_guide_troubleshooting.md\":\"BZNNttUZ\",\"zh_faq_index.md\":\"Bs3v_2I2\",\"en_develop_index.md\":\"BqNiKnHj\",\"zh_guide_action-build.md\":\"BQOsJgGT\",\"zh_develop_source-module.md\":\"3BVNxzfq\",\"extensions.md\":\"CNUX1EC5\",\"zh_contributing_index.md\":\"BgLPhRbJ\",\"en_develop_doctor-module.md\":\"M_P38WuA\",\"en_guide_index.md\":\"DzPC1rL-\",\"en_guide_action-build.md\":\"DqfXKtKF\",\"zh_guide_extension-notes.md\":\"SlBCrb5I\",\"zh_guide_extensions.md\":\"C86HPl5E\",\"en_guide_cli-generator.md\":\"DJO67vFz\",\"en_guide_extension-notes.md\":\"C-SzmSnl\",\"zh_develop_system-build-tools.md\":\"DvA9SnOG\",\"en_guide_env-vars.md\":\"Cfljs3Iy\",\"en_guide_build-on-windows.md\":\"Bw1buXoR\",\"en_develop_source-module.md\":\"CWrA_rEy\",\"zh_guide_build-on-windows.md\":\"C1RFP4Q6\",\"zh_guide_index.md\":\"D0Jfo4Dz\",\"zh_guide_env-vars.md\":\"CsRQyiY-\",\"zh_guide_cli-generator.md\":\"CbarhKxu\",\"zh_guide_deps-map.md\":\"ColAg-h6\",\"zh_guide_manual-build.md\":\"Br54dIKC\",\"zh_guide_troubleshooting.md\":\"CSXAWaMN\",\"zh_index.md\":\"Bu-me8xZ\",\"en_guide_manual-build.md\":\"DBARuEeg\"}");window.__VP_SITE_DATA__=JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"static-php-cli\",\"description\":\"Build single static PHP binary, with PHP project together, with popular extensions included.\",\"base\":\"/\",\"head\":[],\"router\":{\"prefetchLinks\":true},\"appearance\":true,\"themeConfig\":{\"nav\":[],\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/crazywhalecc/static-php-cli\"}]},\"locales\":{\"en\":{\"label\":\"English\",\"lang\":\"en\",\"themeConfig\":{\"nav\":[{\"text\":\"Guide\",\"link\":\"/en/guide/\"},{\"text\":\"Advanced\",\"link\":\"/en/develop/\"},{\"text\":\"Contributing\",\"link\":\"/en/contributing/\"},{\"text\":\"FAQ\",\"link\":\"/en/faq/\"}],\"sidebar\":{\"/en/guide/\":[{\"text\":\"Guide\",\"items\":[{\"text\":\"Guide\",\"link\":\"/en/guide/\"},{\"text\":\"Actions Build\",\"link\":\"/en/guide/action-build\"},{\"text\":\"Manual Build\",\"link\":\"/en/guide/manual-build\"},{\"text\":\"Extension List\",\"link\":\"/en/guide/extensions\"},{\"text\":\"Extension Notes\",\"link\":\"/en/guide/extension-notes\"},{\"text\":\"Command Generator\",\"link\":\"/en/guide/cli-generator\"},{\"text\":\"Environment Variables\",\"link\":\"/en/guide/env-vars\",\"collapsed\":true},{\"text\":\"Dependency Table\",\"link\":\"/en/guide/deps-map\"}]},{\"items\":[{\"text\":\"Troubleshooting\",\"link\":\"/en/guide/troubleshooting\"},{\"text\":\"Build on Windows\",\"link\":\"/en/guide/build-on-windows\"}]}],\"/en/develop/\":[{\"text\":\"Development\",\"items\":[{\"text\":\"Get Started\",\"link\":\"/en/develop/\"},{\"text\":\"Project Structure\",\"link\":\"/en/develop/structure\"},{\"text\":\"PHP Source Modification\",\"link\":\"/en/develop/php-src-changes\"}]},{\"text\":\"Module\",\"items\":[{\"text\":\"Doctor \",\"link\":\"/en/develop/doctor-module\"},{\"text\":\"Source\",\"link\":\"/en/develop/source-module\"}]},{\"text\":\"Extra\",\"items\":[{\"text\":\"Compilation Tools\",\"link\":\"/en/develop/system-build-tools\"}]}],\"/en/contributing/\":[{\"text\":\"Contributing\",\"items\":[{\"text\":\"Contributing\",\"link\":\"/en/contributing/\"}]}]},\"footer\":{\"message\":\"Released under the MIT License.\",\"copyright\":\"Copyright © 2023-present crazywhalecc\"}}},\"zh\":{\"label\":\"简体中文\",\"lang\":\"zh\",\"themeConfig\":{\"nav\":[{\"text\":\"构建指南\",\"link\":\"/zh/guide/\"},{\"text\":\"进阶\",\"link\":\"/zh/develop/\"},{\"text\":\"贡献\",\"link\":\"/zh/contributing/\"},{\"text\":\"FAQ\",\"link\":\"/zh/faq/\"}],\"sidebar\":{\"/zh/guide/\":[{\"text\":\"构建指南\",\"items\":[{\"text\":\"指南\",\"link\":\"/zh/guide/\"},{\"text\":\"Actions 构建\",\"link\":\"/zh/guide/action-build\"},{\"text\":\"本地构建\",\"link\":\"/zh/guide/manual-build\"},{\"text\":\"扩展列表\",\"link\":\"/zh/guide/extensions\"},{\"text\":\"扩展注意事项\",\"link\":\"/zh/guide/extension-notes\"},{\"text\":\"编译命令生成器\",\"link\":\"/zh/guide/cli-generator\"},{\"text\":\"环境变量列表\",\"link\":\"/zh/guide/env-vars\"},{\"text\":\"依赖关系图表\",\"link\":\"/zh/guide/deps-map\"}]},{\"items\":[{\"text\":\"故障排除\",\"link\":\"/zh/guide/troubleshooting\"},{\"text\":\"在 Windows 上构建\",\"link\":\"/zh/guide/build-on-windows\"}]}],\"/zh/develop/\":[{\"text\":\"开发指南\",\"items\":[{\"text\":\"开发简介\",\"link\":\"/zh/develop/\"},{\"text\":\"项目结构简介\",\"link\":\"/zh/develop/structure\"},{\"text\":\"对 PHP 源码的修改\",\"link\":\"/zh/develop/php-src-changes\"}]},{\"text\":\"模块\",\"items\":[{\"text\":\"Doctor 环境检查工具\",\"link\":\"/zh/develop/doctor-module\"},{\"text\":\"资源模块\",\"link\":\"/zh/develop/source-module\"}]},{\"text\":\"其他\",\"items\":[{\"text\":\"系统编译工具\",\"link\":\"/zh/develop/system-build-tools\"}]}],\"/zh/contributing/\":[{\"text\":\"贡献指南\",\"items\":[{\"text\":\"贡献指南\",\"link\":\"/zh/contributing/\"}]}]},\"footer\":{\"message\":\"Released under the MIT License.\",\"copyright\":\"Copyright © 2023-present crazywhalecc\"}}}},\"scrollOffset\":134,\"cleanUrls\":false}");</script>
</body>
</html>