Files
static-php-cli/assets/zh_guide_cli-reference.md.DMttieGz.js
2026-05-11 05:18:54 +00:00

113 lines
58 KiB
JavaScript
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.
import{_ as i,c as t,o as a,aj as e}from"./chunks/framework.C2AwuPrQ.js";const r=JSON.parse('{"title":"命令行参考","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"zh/guide/cli-reference.md","filePath":"zh/guide/cli-reference.md"}'),d={name:"zh/guide/cli-reference.md"};function l(h,s,n,p,k,o){return a(),t("div",null,[...s[0]||(s[0]=[e(`<h1 id="命令行参考" tabindex="-1">命令行参考 <a class="header-anchor" href="#命令行参考" aria-label="Permalink to “命令行参考”"></a></h1><div class="tip custom-block"><p class="custom-block-title custom-block-title-default">TIP</p><p>如果你采用的是 spc 二进制方式安装,请将本章节中的所有 <code>spc</code> 替换为 <code>./spc</code> 或 <code>.\\spc.exe</code>。</p><p>如果你采用的是源码安装,请将 <code>spc</code> 替换为 <code>bin/spc</code>。</p></div><h2 id="download" tabindex="-1">download <a class="header-anchor" href="#download" aria-label="Permalink to “download”"></a></h2><p>下载构建所需的源码包和预编译二进制。</p><div class="language-bash"><button title="Copy Code" class="copy"></button><span class="lang">bash</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:#6F42C1;--shiki-dark:#B392F0;">spc</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> download</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> [artifacts] [options]</span></span></code></pre></div><p><code>artifacts</code>(可选):指定要下载的制品名称,逗号分隔(如 <code>&quot;php-src,openssl,curl&quot;</code>)。</p><h3 id="选项" tabindex="-1">选项 <a class="header-anchor" href="#选项" aria-label="Permalink to “选项”"></a></h3><table tabindex="0"><thead><tr><th>选项</th><th>缩写</th><th>说明</th></tr></thead><tbody><tr><td><code>--for-extensions=&lt;list&gt;</code></td><td><code>-e</code></td><td>按扩展名下载其所需的制品</td></tr><tr><td><code>--for-libs=&lt;list&gt;</code></td><td><code>-l</code></td><td>按库名下载其所需的制品</td></tr><tr><td><code>--for-packages=&lt;list&gt;</code></td><td></td><td>按包名下载其所需的制品</td></tr><tr><td><code>--without-suggests</code></td><td></td><td>使用 <code>--for-extensions</code> 时跳过建议包</td></tr><tr><td><code>--clean</code></td><td></td><td>下载前删除旧的下载缓存</td></tr><tr><td><code>--with-php=&lt;ver&gt;</code></td><td></td><td>PHP 版本,格式为 <code>major.minor</code>(默认 <code>8.5</code></td></tr><tr><td><code>--prefer-binary</code></td><td><code>-p</code></td><td>优先使用预编译二进制</td></tr><tr><td><code>--prefer-source</code></td><td></td><td>优先使用源码包</td></tr><tr><td><code>--source-only</code></td><td></td><td>仅下载源码制品</td></tr><tr><td><code>--binary-only</code></td><td></td><td>仅下载二进制制品</td></tr><tr><td><code>--parallel=&lt;n&gt;</code></td><td><code>-P</code></td><td>并行下载数(默认 <code>1</code></td></tr><tr><td><code>--retry=&lt;n&gt;</code></td><td><code>-R</code></td><td>失败重试次数(默认 <code>0</code></td></tr><tr><td><code>--ignore-cache=&lt;list&gt;</code></td><td><code>-i</code></td><td>强制重新下载指定制品</td></tr><tr><td><code>--no-alt</code></td><td></td><td>不使用镜像站</td></tr><tr><td><code>--no-shallow-clone</code></td><td></td><td>不使用浅层克隆</td></tr><tr><td><code>--custom-url=&lt;src:url&gt;</code></td><td><code>-U</code></td><td>覆盖指定源的下载地址</td></tr><tr><td><code>--custom-git=&lt;src:branch:url&gt;</code></td><td><code>-G</code></td><td>覆盖为自定义 git 仓库</td></tr><tr><td><code>--custom-local=&lt;src:path&gt;</code></td><td><code>-L</code></td><td>使用本地路径作为制品来源</td></tr></tbody></table><h3 id="示例" tabindex="-1">示例 <a class="header-anchor" href="#示例" aria-label="Permalink to “示例”"></a></h3><div class="language-bash"><button title="Copy Code" class="copy"></button><span class="lang">bash</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;"># 按扩展名下载(推荐)</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">spc</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> download</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --for-extensions=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;bcmath,openssl,curl&quot;</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --with-php=8.5</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:#6F42C1;--shiki-dark:#B392F0;">spc</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> download</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &quot;php-src,openssl&quot;</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:#6F42C1;--shiki-dark:#B392F0;">spc</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> download</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --for-extensions=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;bcmath,openssl,curl&quot;</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --parallel</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> 8</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --retry=3</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:#6F42C1;--shiki-dark:#B392F0;">spc</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> download</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --for-extensions=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;bcmath,openssl,curl&quot;</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --prefer-binary</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># 强制重新下载 PHP 源码(如切换版本)</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">spc</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> download</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --for-extensions=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;bcmath,curl&quot;</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --ignore-cache=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;php-src&quot;</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --with-php=8.3</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:#6F42C1;--shiki-dark:#B392F0;">spc</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> download</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --for-extensions=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;bcmath&quot;</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --custom-url</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &quot;php-src:https://downloads.php.net/~user/php-8.5.0alpha1.tar.xz&quot;</span></span></code></pre></div><h2 id="build-php" tabindex="-1">build:php <a class="header-anchor" href="#build-php" aria-label="Permalink to “build:php”"></a></h2><p>从源码编译 PHP 及扩展。别名:<code>build</code>。</p><div class="language-bash"><button title="Copy Code" class="copy"></button><span class="lang">bash</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:#6F42C1;--shiki-dark:#B392F0;">spc</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> build:php</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> &lt;</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">extension</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">s</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">&gt;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> [options]</span></span></code></pre></div><p><code>extensions</code>(必填):要静态编译的扩展名列表,逗号分隔(如 <code>&quot;bcmath,openssl,curl&quot;</code>)。</p><p><code>build:php</code> 上也可使用所有 <code>download</code> 选项,只需加上 <code>--dl-</code> 前缀(如 <code>--dl-with-php=8.3</code>、<code>--dl-parallel=4</code>),这些参数将传递给构建前自动运行的下载器。</p><h3 id="sapi-selection" tabindex="-1">SAPI 选择 <a class="header-anchor" href="#sapi-selection" aria-label="Permalink to “SAPI 选择”"></a></h3><p>以下选项仅适用于 <code>build:php</code> 组合目标。如需单独构建某个 SAPI请使用对应的专用命令如 <code>spc build:php-cli</code>)。</p><table tabindex="0"><thead><tr><th>选项</th><th>说明</th></tr></thead><tbody><tr><td><code>--build-cli</code></td><td>构建 <code>cli</code> SAPI<code>php</code> / <code>php.exe</code></td></tr><tr><td><code>--build-fpm</code></td><td>构建 <code>php-fpm</code>(仅 Linux 和 macOS</td></tr><tr><td><code>--build-cgi</code></td><td>构建 <code>php-cgi</code></td></tr><tr><td><code>--build-micro</code></td><td>构建 <code>micro.sfx</code></td></tr><tr><td><code>--build-embed</code></td><td>构建 embed 静态库(<code>libphp.a</code> / <code>php8embed.lib</code></td></tr><tr><td><code>--build-frankenphp</code></td><td>构建 FrankenPHP 二进制</td></tr></tbody></table><h3 id="common-build-options" tabindex="-1">通用构建选项 <a class="header-anchor" href="#common-build-options" aria-label="Permalink to “通用构建选项”"></a></h3><table tabindex="0"><thead><tr><th>选项</th><th>缩写</th><th>说明</th></tr></thead><tbody><tr><td><code>--no-strip</code></td><td></td><td>保留调试符号,不精简二进制</td></tr><tr><td><code>--with-upx-pack</code></td><td></td><td>用 UPX 压缩产物(需先 <code>spc install-pkg upx</code>;仅 Linux 和 Windows</td></tr><tr><td><code>--disable-opcache-jit</code></td><td></td><td>禁用 OPcache JIT</td></tr><tr><td><code>--with-config-file-path=&lt;path&gt;</code></td><td></td><td>PHP 查找 <code>php.ini</code> 的目录(默认:<code>/usr/local/etc/php</code></td></tr><tr><td><code>--with-config-file-scan-dir=&lt;path&gt;</code></td><td></td><td>PHP 扫描追加 <code>.ini</code> 文件的目录(默认:<code>/usr/local/etc/php/conf.d</code></td></tr><tr><td><code>--with-hardcoded-ini=&lt;k=v&gt;</code></td><td><code>-I</code></td><td>编译时将 INI 配置硬编码进二进制(可重复使用)</td></tr><tr><td><code>--enable-zts</code></td><td></td><td>启用线程安全ZTS模式</td></tr><tr><td><code>--no-smoke-test</code></td><td></td><td>跳过构建后的冒烟测试</td></tr><tr><td><code>--with-suggests</code></td><td></td><td>同时解析并安装建议包</td></tr><tr><td><code>--with-packages=&lt;list&gt;</code></td><td></td><td>额外安装的包</td></tr><tr><td><code>--no-download</code></td><td></td><td>跳过下载步骤(使用已有缓存)</td></tr><tr><td><code>--build-shared=&lt;list&gt;</code></td><td><code>-D</code></td><td>指定编译为共享 <code>.so</code> / <code>.dll</code> 的扩展</td></tr></tbody></table><h3 id="micro-options" tabindex="-1">micro 专用选项 <a class="header-anchor" href="#micro-options" aria-label="Permalink to “micro 专用选项”"></a></h3><table tabindex="0"><thead><tr><th>选项</th><th>说明</th></tr></thead><tbody><tr><td><code>--with-micro-fake-cli</code></td><td>让 <code>micro</code> 的 <code>PHP_SAPI</code> 报告为 <code>cli</code> 而非 <code>micro</code></td></tr><tr><td><code>--without-micro-ext-test</code></td><td>跳过构建后的 <code>micro.sfx</code> 扩展测试</td></tr><tr><td><code>--with-micro-logo=&lt;path&gt;</code></td><td>为 <code>micro.sfx</code> 嵌入自定义 <code>.ico</code> 图标(仅 Windows</td></tr><tr><td><code>--enable-micro-win32</code></td><td>将 <code>micro.sfx</code> 构建为 Win32 GUI 程序而非控制台程序(仅 Windows</td></tr></tbody></table><h3 id="frankenphp-options" tabindex="-1">frankenphp 专用选项 <a class="header-anchor" href="#frankenphp-options" aria-label="Permalink to “frankenphp 专用选项”"></a></h3><table tabindex="0"><thead><tr><th>选项</th><th>说明</th></tr></thead><tbody><tr><td><code>--enable-zts</code></td><td>FrankenPHP 必须开启线程安全</td></tr><tr><td><code>--with-frankenphp-app=&lt;path&gt;</code></td><td>将指定目录嵌入到 FrankenPHP 二进制中</td></tr></tbody></table><h3 id="embed-options" tabindex="-1">embed 专用选项 <a class="header-anchor" href="#embed-options" aria-label="Permalink to “embed 专用选项”"></a></h3><table tabindex="0"><thead><tr><th>选项</th><th>说明</th></tr></thead><tbody><tr><td><code>--build-shared=&lt;list&gt;</code></td><td>将指定扩展编译为共享库(需要 embed SAPI</td></tr><tr><td><code>--maintainer-skip-build</code></td><td>(仅维护者)若 buildroot 中已存在 <code>libphp.a</code> / <code>libphp.so</code>,则跳过 PHP embed 的编译构建</td></tr></tbody></table><h3 id="download-options" tabindex="-1">下载透传选项 <a class="header-anchor" href="#download-options" aria-label="Permalink to “下载透传选项”"></a></h3><p>所有下载器选项均可加 <code>--dl-</code> 前缀使用:</p><table tabindex="0"><thead><tr><th>选项</th><th>说明</th></tr></thead><tbody><tr><td><code>--dl-with-php=&lt;ver&gt;</code></td><td>指定下载的 PHP 版本(默认 <code>8.5</code></td></tr><tr><td><code>--dl-prefer-binary</code></td><td>优先使用预编译二进制依赖</td></tr><tr><td><code>--dl-parallel=&lt;n&gt;</code></td><td>并行下载数</td></tr><tr><td><code>--dl-retry=&lt;n&gt;</code></td><td>失败重试次数</td></tr><tr><td><code>--dl-custom-url=&lt;src:url&gt;</code></td><td>覆盖指定源的下载地址</td></tr><tr><td><code>--dl-custom-git=&lt;src:branch:url&gt;</code></td><td>覆盖为自定义 git 仓库</td></tr></tbody></table><p>Downloader 选项传递给 <code>build:php</code> 命令时,会被自动下载器在构建前使用。 这样你就可以直接通过构建命令控制下载行为,无需单独执行 <code>spc download</code> 命令。</p><div class="language-bash"><button title="Copy Code" class="copy"></button><span class="lang">bash</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:#6F42C1;--shiki-dark:#B392F0;">spc</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> build:php</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &quot;bcmath,openssl,curl&quot;</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --build-cli</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --dl-with-php=8.3</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --dl-prefer-binary</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --dl-parallel=4</span></span></code></pre></div><h3 id="示例-1" tabindex="-1">示例 <a class="header-anchor" href="#示例-1" aria-label="Permalink to “示例”"></a></h3><div class="language-bash"><button title="Copy Code" class="copy"></button><span class="lang">bash</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;"># 构建 cli SAPI</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">spc</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> build:php</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &quot;bcmath,openssl,curl&quot;</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;"># 同时构建 cli + micro</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">spc</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> build:php</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &quot;bcmath,phar,openssl,curl&quot;</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --build-cli</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --build-micro</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># 指定 PHP 版本</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">spc</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> build:php</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &quot;bcmath,openssl&quot;</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --build-cli</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --dl-with-php=8.3</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># 硬编码 INI 到二进制</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">spc</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> build:php</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &quot;bcmath,pcntl&quot;</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --build-cli</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -I</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &quot;memory_limit=4G&quot;</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -I</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &quot;disable_functions=system&quot;</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:#6F42C1;--shiki-dark:#B392F0;">spc</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> build:php</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &quot;bcmath,openssl&quot;</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --build-cli</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --no-strip</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># 构建 FrankenPHP需开启 ZTS</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">spc</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> build:php</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &quot;bcmath,openssl,curl&quot;</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --build-frankenphp</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --enable-zts</span></span></code></pre></div><h2 id="build-php-cli-build-php-fpm-build-php-micro-build-php-embed-build-php-cgi-build-frankenphp" tabindex="-1">build:php-cli, build:php-fpm, build:php-micro, build:php-embed, build:php-cgi, build:frankenphp <a class="header-anchor" href="#build-php-cli-build-php-fpm-build-php-micro-build-php-embed-build-php-cgi-build-frankenphp" aria-label="Permalink to “build:php-cli, build:php-fpm, build:php-micro, build:php-embed, build:php-cgi, build:frankenphp”"></a></h2><p>专用单目标构建命令,接受与 <code>build:php</code> 相同的选项,但不需要 SAPI 选择标志(<code>--build-*</code>),目标已隐式确定。</p><div class="language-bash"><button title="Copy Code" class="copy"></button><span class="lang">bash</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:#6F42C1;--shiki-dark:#B392F0;">spc</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> build:php-cli</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &quot;bcmath,openssl,curl&quot;</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">spc</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> build:php-micro</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &quot;bcmath,phar,openssl&quot;</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">spc</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> build:php-fpm</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &quot;bcmath,openssl,curl,pdo_mysql&quot;</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">spc</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> build:php-embed</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &quot;bcmath,openssl&quot;</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">spc</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> build:frankenphp</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &quot;bcmath,openssl,curl&quot;</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --enable-zts</span></span></code></pre></div><h2 id="build-libs" tabindex="-1">build:libs <a class="header-anchor" href="#build-libs" aria-label="Permalink to “build:libs”"></a></h2><p>从源码构建一个或多个库包。</p><div class="language-bash"><button title="Copy Code" class="copy"></button><span class="lang">bash</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:#6F42C1;--shiki-dark:#B392F0;">spc</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> build:libs</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> &lt;</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">librarie</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">s</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">&gt;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> [options]</span></span></code></pre></div><p><code>libraries</code>(必填):要构建的库包名称列表,逗号分隔(如 <code>&quot;openssl,curl,zlib&quot;</code>)。</p><p>支持所有 <code>download</code> 命令的选项,加 <code>--dl-</code> 前缀传递。</p><h3 id="选项-1" tabindex="-1">选项 <a class="header-anchor" href="#选项-1" aria-label="Permalink to “选项”"></a></h3><table tabindex="0"><thead><tr><th>选项</th><th>缩写</th><th>说明</th></tr></thead><tbody><tr><td><code>--with-suggests</code></td><td><code>-L</code>、<code>-E</code></td><td>同时解析并安装建议包</td></tr><tr><td><code>--with-packages=&lt;list&gt;</code></td><td></td><td>额外安装的包,逗号分隔</td></tr><tr><td><code>--no-download</code></td><td></td><td>跳过下载步骤(使用已有缓存)</td></tr></tbody></table><h3 id="示例-2" tabindex="-1">示例 <a class="header-anchor" href="#示例-2" aria-label="Permalink to “示例”"></a></h3><div class="language-bash"><button title="Copy Code" class="copy"></button><span class="lang">bash</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;"># 构建单个库</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">spc</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> build:libs</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> openssl</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:#6F42C1;--shiki-dark:#B392F0;">spc</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> build:libs</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &quot;openssl,curl,zlib&quot;</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:#6F42C1;--shiki-dark:#B392F0;">spc</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> build:libs</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> openssl</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --with-suggests</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:#6F42C1;--shiki-dark:#B392F0;">spc</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> build:libs</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> openssl</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --no-download</span></span></code></pre></div><h2 id="craft" tabindex="-1">craft <a class="header-anchor" href="#craft" aria-label="Permalink to “craft”"></a></h2><p>读取 <code>craft.yml</code> 并自动完成全流程构建。</p><div class="language-bash"><button title="Copy Code" class="copy"></button><span class="lang">bash</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:#6F42C1;--shiki-dark:#B392F0;">spc</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> craft</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> [path/to/craft.yml]</span></span></code></pre></div><p>未指定路径时,使用当前工作目录下的 <code>craft.yml</code>。配置格式参见 <a href="./../develop/craft-yml.html">craft.yml 配置</a>。</p><h2 id="doctor" tabindex="-1">doctor <a class="header-anchor" href="#doctor" aria-label="Permalink to “doctor”"></a></h2><p>检查当前环境是否满足编译要求。</p><div class="language-bash"><button title="Copy Code" class="copy"></button><span class="lang">bash</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:#6F42C1;--shiki-dark:#B392F0;">spc</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> doctor</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> [--auto-fix[=never]]</span></span></code></pre></div><table tabindex="0"><thead><tr><th>选项</th><th>说明</th></tr></thead><tbody><tr><td><code>--auto-fix</code></td><td>自动修复检测到的问题(使用系统包管理器)</td></tr><tr><td><code>--auto-fix=never</code></td><td>仅报告问题,不尝试自动修复</td></tr></tbody></table><h2 id="dev-shell" tabindex="-1">dev:shell <a class="header-anchor" href="#dev-shell" aria-label="Permalink to “dev:shell”"></a></h2><p>进入加载了 StaticPHP 构建环境的交互式 Shell编译器 wrapper、<code>buildroot/</code>、<code>pkgroot/</code> 等均已添加到 <code>PATH</code>)。</p><div class="language-bash"><button title="Copy Code" class="copy"></button><span class="lang">bash</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:#6F42C1;--shiki-dark:#B392F0;">spc</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> dev:shell</span></span></code></pre></div><p>可用于在 embed SAPI 的 <code>libphp.a</code> 上编译小型 C 程序,或手动检查构建环境。</p><h2 id="check-update" tabindex="-1">check-update <a class="header-anchor" href="#check-update" aria-label="Permalink to “check-update”"></a></h2><p>检查指定制品是否有可用更新。</p><div class="language-bash"><button title="Copy Code" class="copy"></button><span class="lang">bash</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:#6F42C1;--shiki-dark:#B392F0;">spc</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> check-update</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> [artifact] [options]</span></span></code></pre></div><p><code>artifact</code>(可选):要检查更新的制品名称,逗号分隔。默认检查所有已下载的制品。</p><h3 id="选项-2" tabindex="-1">选项 <a class="header-anchor" href="#选项-2" aria-label="Permalink to “选项”"></a></h3><table tabindex="0"><thead><tr><th>选项</th><th>缩写</th><th>说明</th></tr></thead><tbody><tr><td><code>--json</code></td><td></td><td>以 JSON 格式输出结果</td></tr><tr><td><code>--bare</code></td><td></td><td>检查时不要求制品已下载(旧版本显示为 null</td></tr><tr><td><code>--parallel=&lt;n&gt;</code></td><td><code>-p</code></td><td>并行检查数(默认 <code>10</code></td></tr><tr><td><code>--with-php=&lt;ver&gt;</code></td><td></td><td>PHP 版本上下文,格式为 <code>major.minor</code>(默认 <code>8.5</code></td></tr></tbody></table><h3 id="示例-3" tabindex="-1">示例 <a class="header-anchor" href="#示例-3" aria-label="Permalink to “示例”"></a></h3><div class="language-bash"><button title="Copy Code" class="copy"></button><span class="lang">bash</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;"># 检查所有已下载制品</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">spc</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> check-update</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:#6F42C1;--shiki-dark:#B392F0;">spc</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> check-update</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &quot;openssl,curl&quot;</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># 以 JSON 格式输出</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">spc</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> check-update</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --json</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:#6F42C1;--shiki-dark:#B392F0;">spc</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> check-update</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &quot;openssl&quot;</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --bare</span></span></code></pre></div><h2 id="dump-extensions" tabindex="-1">dump-extensions <a class="header-anchor" href="#dump-extensions" aria-label="Permalink to “dump-extensions”"></a></h2><p>从 Composer 项目中分析所需的 PHP 扩展列表。</p><div class="language-bash"><button title="Copy Code" class="copy"></button><span class="lang">bash</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:#6F42C1;--shiki-dark:#B392F0;">spc</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> dump-extensions</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> [path] [options]</span></span></code></pre></div><p><code>path</code>(可选):项目根目录路径,默认为当前目录(<code>.</code>)。</p><h3 id="选项-3" tabindex="-1">选项 <a class="header-anchor" href="#选项-3" aria-label="Permalink to “选项”"></a></h3><table tabindex="0"><thead><tr><th>选项</th><th>缩写</th><th>说明</th></tr></thead><tbody><tr><td><code>--format=&lt;fmt&gt;</code></td><td><code>-F</code></td><td>输出格式(默认 <code>default</code></td></tr><tr><td><code>--no-ext-output=&lt;list&gt;</code></td><td><code>-N</code></td><td>未找到扩展时输出的默认组合(逗号分隔),而不是以失败退出</td></tr><tr><td><code>--no-dev</code></td><td></td><td>不包含 dev 依赖</td></tr><tr><td><code>--no-spc-filter</code></td><td><code>-S</code></td><td>不使用 SPC 过滤器筛选扩展</td></tr></tbody></table><h3 id="示例-4" tabindex="-1">示例 <a class="header-anchor" href="#示例-4" aria-label="Permalink to “示例”"></a></h3><div class="language-bash"><button title="Copy Code" class="copy"></button><span class="lang">bash</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;"># 分析当前目录的 Composer 项目</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">spc</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> dump-extensions</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:#6F42C1;--shiki-dark:#B392F0;">spc</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> dump-extensions</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> /path/to/project</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># 不包含 dev 依赖</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">spc</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> dump-extensions</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --no-dev</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:#6F42C1;--shiki-dark:#B392F0;">spc</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> dump-extensions</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --no-ext-output=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;bcmath,openssl&quot;</span></span></code></pre></div><h2 id="dump-license" tabindex="-1">dump-license <a class="header-anchor" href="#dump-license" aria-label="Permalink to “dump-license”"></a></h2><p>导出制品的开源许可证文件。</p><div class="language-bash"><button title="Copy Code" class="copy"></button><span class="lang">bash</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:#6F42C1;--shiki-dark:#B392F0;">spc</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> dump-license</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> [artifacts] [options]</span></span></code></pre></div><p><code>artifacts</code>(可选):要导出许可证的制品名称,逗号分隔(如 <code>&quot;php-src,openssl,curl&quot;</code>)。</p><h3 id="选项-4" tabindex="-1">选项 <a class="header-anchor" href="#选项-4" aria-label="Permalink to “选项”"></a></h3><table tabindex="0"><thead><tr><th>选项</th><th>缩写</th><th>说明</th></tr></thead><tbody><tr><td><code>--for-extensions=&lt;list&gt;</code></td><td><code>-e</code></td><td>按扩展名导出(自动包含 php-src如 <code>&quot;openssl,mbstring&quot;</code></td></tr><tr><td><code>--for-libs=&lt;list&gt;</code></td><td><code>-l</code></td><td>按库名导出,如 <code>&quot;openssl,zlib&quot;</code></td></tr><tr><td><code>--for-packages=&lt;list&gt;</code></td><td><code>-p</code></td><td>按包名导出,如 <code>&quot;php,libssl&quot;</code></td></tr><tr><td><code>--dump-dir=&lt;path&gt;</code></td><td><code>-d</code></td><td>许可证输出目录(默认 <code>buildroot/license</code></td></tr><tr><td><code>--without-suggests</code></td><td></td><td>不包含建议包的许可证</td></tr></tbody></table><h3 id="示例-5" tabindex="-1">示例 <a class="header-anchor" href="#示例-5" aria-label="Permalink to “示例”"></a></h3><div class="language-bash"><button title="Copy Code" class="copy"></button><span class="lang">bash</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;"># 按扩展名导出许可证</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">spc</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> dump-license</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --for-extensions=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;bcmath,openssl,curl&quot;</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:#6F42C1;--shiki-dark:#B392F0;">spc</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> dump-license</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &quot;php-src,openssl&quot;</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:#6F42C1;--shiki-dark:#B392F0;">spc</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> dump-license</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --for-extensions=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;bcmath,openssl&quot;</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --dump-dir=/tmp/licenses</span></span></code></pre></div><h2 id="extract" tabindex="-1">extract <a class="header-anchor" href="#extract" aria-label="Permalink to “extract”"></a></h2><p>将已下载的制品解压到对应的目标位置。</p><div class="language-bash"><button title="Copy Code" class="copy"></button><span class="lang">bash</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:#6F42C1;--shiki-dark:#B392F0;">spc</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> extract</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> [artifacts] [options]</span></span></code></pre></div><p><code>artifacts</code>(可选):要解压的制品名称,逗号分隔(如 <code>&quot;php-src,openssl,curl&quot;</code>)。</p><h3 id="选项-5" tabindex="-1">选项 <a class="header-anchor" href="#选项-5" aria-label="Permalink to “选项”"></a></h3><table tabindex="0"><thead><tr><th>选项</th><th>缩写</th><th>说明</th></tr></thead><tbody><tr><td><code>--for-extensions=&lt;list&gt;</code></td><td><code>-e</code></td><td>按扩展名解压所需制品,如 <code>&quot;openssl,mbstring&quot;</code></td></tr><tr><td><code>--for-libs=&lt;list&gt;</code></td><td><code>-l</code></td><td>按库名解压所需制品,如 <code>&quot;libcares,openssl&quot;</code></td></tr><tr><td><code>--for-packages=&lt;list&gt;</code></td><td></td><td>按包名解压所需制品,如 <code>&quot;php,libssl,libcurl&quot;</code></td></tr><tr><td><code>--without-suggests</code></td><td></td><td>使用 <code>--for-extensions</code> 时跳过建议包</td></tr><tr><td><code>--source-only</code></td><td></td><td>强制解压源码,即使已有预编译二进制</td></tr></tbody></table><h3 id="示例-6" tabindex="-1">示例 <a class="header-anchor" href="#示例-6" aria-label="Permalink to “示例”"></a></h3><div class="language-bash"><button title="Copy Code" class="copy"></button><span class="lang">bash</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;"># 按扩展名解压</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">spc</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> extract</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --for-extensions=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;bcmath,openssl,curl&quot;</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:#6F42C1;--shiki-dark:#B392F0;">spc</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> extract</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &quot;php-src,openssl&quot;</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:#6F42C1;--shiki-dark:#B392F0;">spc</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> extract</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --for-extensions=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;bcmath,openssl&quot;</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --source-only</span></span></code></pre></div><h2 id="install-pkg" tabindex="-1">install-pkg <a class="header-anchor" href="#install-pkg" aria-label="Permalink to “install-pkg”"></a></h2><p>安装额外的辅助包(如 UPX、工具链等。别名<code>i</code>、<code>install-package</code>。</p><div class="language-bash"><button title="Copy Code" class="copy"></button><span class="lang">bash</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:#6F42C1;--shiki-dark:#B392F0;">spc</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> install-pkg</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> &lt;</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">packag</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">e</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">&gt;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> [options]</span></span></code></pre></div><p><code>package</code>(必填):要安装的包名称。</p><p>支持所有 <code>download</code> 命令的选项,加 <code>--dl-</code> 前缀传递。</p><h3 id="示例-7" tabindex="-1">示例 <a class="header-anchor" href="#示例-7" aria-label="Permalink to “示例”"></a></h3><div class="language-bash"><button title="Copy Code" class="copy"></button><span class="lang">bash</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;"># 安装 UPX 压缩工具</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">spc</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> install-pkg</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> upx</span></span></code></pre></div><h2 id="micro-combine" tabindex="-1">micro:combine <a class="header-anchor" href="#micro-combine" aria-label="Permalink to “micro:combine”"></a></h2><p>将 <code>micro.sfx</code> 与 PHP/PHAR 文件合并为独立可执行文件。</p><div class="language-bash"><button title="Copy Code" class="copy"></button><span class="lang">bash</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:#6F42C1;--shiki-dark:#B392F0;">spc</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> micro:combine</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> &lt;</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">fil</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">e</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">&gt;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> [options]</span></span></code></pre></div><p><code>file</code>(必填):要合并的 PHP 或 PHAR 文件路径。</p><h3 id="选项-6" tabindex="-1">选项 <a class="header-anchor" href="#选项-6" aria-label="Permalink to “选项”"></a></h3><table tabindex="0"><thead><tr><th>选项</th><th>缩写</th><th>说明</th></tr></thead><tbody><tr><td><code>--with-micro=&lt;path&gt;</code></td><td><code>-M</code></td><td>指定自定义 <code>micro.sfx</code> 文件路径(默认使用 <code>buildroot/bin/micro.sfx</code></td></tr><tr><td><code>--with-ini-set=&lt;k=v&gt;</code></td><td><code>-I</code></td><td>合并时注入 INI 配置(可重复使用)</td></tr><tr><td><code>--with-ini-file=&lt;path&gt;</code></td><td><code>-N</code></td><td>合并时注入 INI 文件</td></tr><tr><td><code>--output=&lt;name&gt;</code></td><td><code>-O</code></td><td>自定义输出文件名(默认 <code>my-app</code></td></tr></tbody></table><h3 id="示例-8" tabindex="-1">示例 <a class="header-anchor" href="#示例-8" aria-label="Permalink to “示例”"></a></h3><div class="language-bash"><button title="Copy Code" class="copy"></button><span class="lang">bash</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;"># 合并 PHP 文件</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">spc</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> micro:combine</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> app.php</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># 合并 PHAR 文件并指定输出名</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">spc</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> micro:combine</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> app.phar</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --output</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> my-app</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># 注入 INI 配置</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">spc</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> micro:combine</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> app.php</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -I</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &quot;memory_limit=512M&quot;</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -I</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &quot;disable_functions=system&quot;</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># 注入 INI 文件</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">spc</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> micro:combine</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> app.php</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --with-ini-file=custom.ini</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># 使用自定义 micro.sfx</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">spc</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> micro:combine</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> app.php</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --with-micro=/path/to/micro.sfx</span></span></code></pre></div><h2 id="reset" tabindex="-1">reset <a class="header-anchor" href="#reset" aria-label="Permalink to “reset”"></a></h2><p>清理构建目录,重置构建环境。</p><div class="language-bash"><button title="Copy Code" class="copy"></button><span class="lang">bash</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:#6F42C1;--shiki-dark:#B392F0;">spc</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> reset</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> [options]</span></span></code></pre></div><p>默认清理 <code>buildroot/</code> 和 <code>source/</code> 目录。</p><h3 id="选项-7" tabindex="-1">选项 <a class="header-anchor" href="#选项-7" aria-label="Permalink to “选项”"></a></h3><table tabindex="0"><thead><tr><th>选项</th><th>缩写</th><th>说明</th></tr></thead><tbody><tr><td><code>--with-pkgroot</code></td><td></td><td>同时删除 <code>pkgroot/</code> 目录</td></tr><tr><td><code>--with-download</code></td><td></td><td>同时删除 <code>downloads/</code> 目录</td></tr><tr><td><code>--yes</code></td><td><code>-y</code></td><td>跳过确认提示</td></tr></tbody></table><h3 id="示例-9" tabindex="-1">示例 <a class="header-anchor" href="#示例-9" aria-label="Permalink to “示例”"></a></h3><div class="language-bash"><button title="Copy Code" class="copy"></button><span class="lang">bash</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;"># 清理构建目录(会提示确认)</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">spc</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> reset</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:#6F42C1;--shiki-dark:#B392F0;">spc</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> reset</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --with-download</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:#6F42C1;--shiki-dark:#B392F0;">spc</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> reset</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --with-pkgroot</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --with-download</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --yes</span></span></code></pre></div><h2 id="spc-config" tabindex="-1">spc-config <a class="header-anchor" href="#spc-config" aria-label="Permalink to “spc-config”"></a></h2><p>输出静态编译所需的编译器和链接器标志,适用于将 PHP embed 库链接到自定义程序。</p><div class="language-bash"><button title="Copy Code" class="copy"></button><span class="lang">bash</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:#6F42C1;--shiki-dark:#B392F0;">spc</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> spc-config</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> [extensions] [options]</span></span></code></pre></div><p><code>extensions</code>(可选):要包含的扩展名列表,逗号分隔。</p><h3 id="选项-8" tabindex="-1">选项 <a class="header-anchor" href="#选项-8" aria-label="Permalink to “选项”"></a></h3><table tabindex="0"><thead><tr><th>选项</th><th>缩写</th><th>说明</th></tr></thead><tbody><tr><td><code>--with-libs=&lt;list&gt;</code></td><td></td><td>额外包含的库,逗号分隔</td></tr><tr><td><code>--with-packages=&lt;list&gt;</code></td><td><code>-p</code></td><td>额外包含的包,逗号分隔</td></tr><tr><td><code>--with-suggested-libs</code></td><td><code>-L</code></td><td>包含建议库</td></tr><tr><td><code>--with-suggests</code></td><td></td><td>包含所有建议包</td></tr><tr><td><code>--with-suggested-exts</code></td><td><code>-E</code></td><td>包含建议扩展</td></tr><tr><td><code>--includes</code></td><td></td><td>仅输出 <code>-I</code> 头文件路径(<code>CFLAGS</code></td></tr><tr><td><code>--libs</code></td><td></td><td>仅输出 <code>-L</code> 和 <code>-l</code> 链接标志(<code>LDFLAGS + LIBS</code></td></tr><tr><td><code>--libs-only-deps</code></td><td></td><td>仅输出依赖库的 <code>-l</code> 标志</td></tr><tr><td><code>--absolute-libs</code></td><td></td><td>使用库文件的绝对路径输出</td></tr><tr><td><code>--no-php</code></td><td></td><td>不链接 PHP 库</td></tr></tbody></table><h3 id="示例-10" tabindex="-1">示例 <a class="header-anchor" href="#示例-10" aria-label="Permalink to “示例”"></a></h3><div class="language-bash"><button title="Copy Code" class="copy"></button><span class="lang">bash</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;"># 输出完整编译标志</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">spc</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> spc-config</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &quot;bcmath,openssl,curl&quot;</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:#6F42C1;--shiki-dark:#B392F0;">spc</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> spc-config</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &quot;bcmath,openssl&quot;</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --includes</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:#6F42C1;--shiki-dark:#B392F0;">spc</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> spc-config</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &quot;bcmath,openssl&quot;</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --libs</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:#6F42C1;--shiki-dark:#B392F0;">spc</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> spc-config</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &quot;bcmath,openssl&quot;</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --libs</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --absolute-libs</span></span></code></pre></div>`,120)])])}const g=i(d,[["render",l]]);export{r as __pageData,g as default};