static-php-cli/zh/guide/extension-notes.html

25 lines
33 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 v2.0.0-alpha.5">
<link rel="preload stylesheet" href="/assets/style.D0jsTBaM.css" as="style">
<link rel="preload stylesheet" href="/vp-icons.css" as="style">
<script type="module" src="/assets/app.DQMp3l4I.js"></script>
<link rel="preload" href="/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
<link rel="modulepreload" href="/assets/chunks/theme.DbVD3jYa.js">
<link rel="modulepreload" href="/assets/chunks/framework.PeLcR_tw.js">
<link rel="modulepreload" href="/assets/zh_guide_extension-notes.md.BkfCboVT.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-5e06b97a><!--[--><!--]--><!--[--><span tabindex="-1" data-v-0b0ada53></span><a href="#VPContent" class="VPSkipLink visually-hidden" data-v-0b0ada53>Skip to content</a><!--]--><!----><header class="VPNav" data-v-5e06b97a data-v-ae24b3ad><div class="VPNavBar" data-v-ae24b3ad data-v-0ae64501><div class="wrapper" data-v-0ae64501><div class="container" data-v-0ae64501><div class="title" data-v-0ae64501><div class="VPNavBarTitle has-sidebar" data-v-0ae64501 data-v-1e38c6bc><a class="title" href="/zh/" data-v-1e38c6bc><!--[--><!--]--><!----><span data-v-1e38c6bc>static-php-cli</span><!--[--><!--]--></a></div></div><div class="content" data-v-0ae64501><div class="content-body" data-v-0ae64501><!--[--><!--]--><div class="VPNavBarSearch search" data-v-0ae64501><!----></div><nav aria-labelledby="main-nav-aria-label" class="VPNavBarMenu menu" data-v-0ae64501 data-v-39714824><span id="main-nav-aria-label" class="visually-hidden" data-v-39714824> Main Navigation </span><!--[--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/zh/guide/" tabindex="0" data-v-39714824 data-v-e56f3d57><!--[--><span data-v-e56f3d57>构建指南</span><!--]--></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/zh/develop/" tabindex="0" data-v-39714824 data-v-e56f3d57><!--[--><span data-v-e56f3d57>进阶</span><!--]--></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/zh/contributing/" tabindex="0" data-v-39714824 data-v-e56f3d57><!--[--><span data-v-e56f3d57>贡献</span><!--]--></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/zh/faq/" tabindex="0" data-v-39714824 data-v-e56f3d57><!--[--><span data-v-e56f3d57>FAQ</span><!--]--></a><!--]--><!--]--></nav><div class="VPFlyout VPNavBarTranslations translations" data-v-0ae64501 data-v-88af2de4 data-v-3ab3deac><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="Change language" data-v-3ab3deac><span class="text" data-v-3ab3deac><span class="vpi-languages option-icon" data-v-3ab3deac></span><!----><span class="vpi-chevron-down text-icon" data-v-3ab3deac></span></span></button><div class="menu" data-v-3ab3deac><div class="VPMenu" data-v-3ab3deac data-v-c9afd7f1><!----><!--[--><!--[--><div class="items" data-v-88af2de4><p class="title" data-v-88af2de4>简体中文</p><!--[--><div class="VPMenuLink" data-v-88af2de4 data-v-35975db6><a class="VPLink link" href="/en/guide/extension-notes.html" data-v-35975db6><!--[--><span data-v-35975db6>English</span><!--]--></a></div><!--]--></div><!--]--><!--]--></div></div></div><div class="VPNavBarAppearance appearance" data-v-0ae64501 data-v-6c893767><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title aria-checked="false" data-v-6c893767 data-v-5337faa4 data-v-1d5665e3><span class="check" data-v-1d5665e3><span class="icon" data-v-1d5665e3><!--[--><span class="vpi-sun sun" data-v-5337faa4></span><span class="vpi-moon moon" data-v-5337faa4></span><!--]--></span></span></button></div><div class="VPSocialLinks VPNavBarSocialLinks social-links" data-v-0ae64501 data-v-0394ad82 data-v-d474d15f><!--[--><a class="VPSocialLink no-icon" href="https://github.com/crazywhalecc/static-php-cli" aria-label="github" target="_blank" rel="noopener" data-v-d474d15f data-v-bd121fe5><span class="vpi-social-github"></span></a><!--]--></div><div class="VPFlyout VPNavBarExtra extra" data-v-0ae64501 data-v-bb2aa2f0 data-v-3ab3deac><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="extra navigation" data-v-3ab3deac><span class="vpi-more-horizontal icon" data-v-3ab3deac></span></button><div class="menu" data-v-3ab3deac><div class="VPMenu" data-v-3ab3deac data-v-c9afd7f1><!----><!--[--><!--[--><div class="group translations" data-v-bb2aa2f0><p class="trans-title" data-v-bb2aa2f0>简体中文</p><!--[--><div class="VPMenuLink" data-v-bb2aa2f0 data-v-35975db6><a class="VPLink link" href="/en/guide/extension-notes.html" data-v-35975db6><!--[--><span data-v-35975db6>English</span><!--]--></a></div><!--]--></div><div class="group" data-v-bb2aa2f0><div class="item appearance" data-v-bb2aa2f0><p class="label" data-v-bb2aa2f0>Appearance</p><div class="appearance-action" data-v-bb2aa2f0><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title aria-checked="false" data-v-bb2aa2f0 data-v-5337faa4 data-v-1d5665e3><span class="check" data-v-1d5665e3><span class="icon" data-v-1d5665e3><!--[--><span class="vpi-sun sun" data-v-5337faa4></span><span class="vpi-moon moon" data-v-5337faa4></span><!--]--></span></span></button></div></div></div><div class="group" data-v-bb2aa2f0><div class="item social-links" data-v-bb2aa2f0><div class="VPSocialLinks social-links-list" data-v-bb2aa2f0 data-v-d474d15f><!--[--><a class="VPSocialLink no-icon" href="https://github.com/crazywhalecc/static-php-cli" aria-label="github" target="_blank" rel="noopener" data-v-d474d15f data-v-bd121fe5><span class="vpi-social-github"></span></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-0ae64501 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-0ae64501><div class="divider-line" data-v-0ae64501></div></div></div><!----></header><div class="VPLocalNav has-sidebar empty" data-v-5e06b97a data-v-e30e5487><div class="container" data-v-e30e5487><button class="menu" aria-expanded="false" aria-controls="VPSidebarNav" data-v-e30e5487><span class="vpi-align-left menu-icon" data-v-e30e5487></span><span class="menu-text" data-v-e30e5487>Menu</span></button><div class="VPLocalNavOutlineDropdown" style="--vp-vh:0px;" data-v-e30e5487 data-v-5fabb9ca><button data-v-5fabb9ca>Return to top</button><!----></div></div></div><aside class="VPSidebar" data-v-5e06b97a data-v-cbecfdd4><div class="curtain" data-v-cbecfdd4></div><nav class="nav" id="VPSidebarNav" aria-labelledby="sidebar-aria-label" tabindex="-1" data-v-cbecfdd4><span class="visually-hidden" id="sidebar-aria-label" data-v-cbecfdd4> Sidebar Navigation </span><!--[--><!--]--><!--[--><div class="no-transition group" data-v-8d50c081><section class="VPSidebarItem level-0 has-active" data-v-8d50c081 data-v-d81de50c><div class="item" role="button" tabindex="0" data-v-d81de50c><div class="indicator" data-v-d81de50c></div><h2 class="text" data-v-d81de50c>构建指南</h2><!----></div><div class="items" data-v-d81de50c><!--[--><div class="VPSidebarItem level-1 is-link" data-v-d81de50c data-v-d81de50c><div class="item" data-v-d81de50c><div class="indicator" data-v-d81de50c></div><a class="VPLink link link" href="/zh/guide/" data-v-d81de50c><!--[--><p class="text" data-v-d81de50c>指南</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-d81de50c data-v-d81de50c><div class="item" data-v-d81de50c><div class="indicator" data-v-d81de50c></div><a class="VPLink link link" href="/zh/guide/manual-build.html" data-v-d81de50c><!--[--><p class="text" data-v-d81de50c>本地构建</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-d81de50c data-v-d81de50c><div class="item" data-v-d81de50c><div class="indicator" data-v-d81de50c></div><a class="VPLink link link" href="/zh/guide/action-build.html" data-v-d81de50c><!--[--><p class="text" data-v-d81de50c>Actions 构建</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-d81de50c data-v-d81de50c><div class="item" data-v-d81de50c><div class="indicator" data-v-d81de50c></div><a class="VPLink link link" href="/zh/guide/extensions.html" data-v-d81de50c><!--[--><p class="text" data-v-d81de50c>扩展列表</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-d81de50c data-v-d81de50c><div class="item" data-v-d81de50c><div class="indicator" data-v-d81de50c></div><a class="VPLink link link" href="/zh/guide/extension-notes.html" data-v-d81de50c><!--[--><p class="text" data-v-d81de50c>扩展注意事项</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-d81de50c data-v-d81de50c><div class="item" data-v-d81de50c><div class="indicator" data-v-d81de50c></div><a class="VPLink link link" href="/zh/guide/cli-generator.html" data-v-d81de50c><!--[--><p class="text" data-v-d81de50c>编译命令生成器</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-d81de50c data-v-d81de50c><div class="item" data-v-d81de50c><div class="indicator" data-v-d81de50c></div><a class="VPLink link link" href="/zh/guide/env-vars.html" data-v-d81de50c><!--[--><p class="text" data-v-d81de50c>环境变量列表</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-d81de50c data-v-d81de50c><div class="item" data-v-d81de50c><div class="indicator" data-v-d81de50c></div><a class="VPLink link link" href="/zh/guide/deps-map.html" data-v-d81de50c><!--[--><p class="text" data-v-d81de50c>依赖关系图表</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-8d50c081><section class="VPSidebarItem level-0" data-v-8d50c081 data-v-d81de50c><div class="item" role="button" tabindex="0" data-v-d81de50c><div class="indicator" data-v-d81de50c></div><h2 class="text" data-v-d81de50c>扩展构建指南</h2><!----></div><div class="items" data-v-d81de50c><!--[--><div class="VPSidebarItem level-1 is-link" data-v-d81de50c data-v-d81de50c><div class="item" data-v-d81de50c><div class="indicator" data-v-d81de50c></div><a class="VPLink link link" href="/zh/guide/troubleshooting.html" data-v-d81de50c><!--[--><p class="text" data-v-d81de50c>故障排除</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-d81de50c data-v-d81de50c><div class="item" data-v-d81de50c><div class="indicator" data-v-d81de50c></div><a class="VPLink link link" href="/zh/guide/build-on-windows.html" data-v-d81de50c><!--[--><p class="text" data-v-d81de50c>在 Windows 上构建</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-d81de50c data-v-d81de50c><div class="item" data-v-d81de50c><div class="indicator" data-v-d81de50c></div><a class="VPLink link link" href="/zh/guide/build-with-glibc.html" data-v-d81de50c><!--[--><p class="text" data-v-d81de50c>构建 GNU libc 兼容的二进制</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><!--]--><!--[--><!--]--></nav></aside><div class="VPContent has-sidebar" id="VPContent" data-v-5e06b97a data-v-aff0b8d7><div class="VPDoc has-sidebar has-aside" data-v-aff0b8d7 data-v-7011f0d8><!--[--><!--]--><div class="container" data-v-7011f0d8><div class="aside" data-v-7011f0d8><div class="aside-curtain" data-v-7011f0d8></div><div class="aside-container" data-v-7011f0d8><div class="aside-content" data-v-7011f0d8><div class="VPDocAside" data-v-7011f0d8 data-v-3f215769><!--[--><!--]--><!--[--><!--]--><nav aria-labelledby="doc-outline-aria-label" class="VPDocAsideOutline" data-v-3f215769 data-v-60d5052e><div class="content" data-v-60d5052e><div class="outline-marker" data-v-60d5052e></div><div aria-level="2" class="outline-title" id="doc-outline-aria-label" role="heading" data-v-60d5052e>On this page</div><ul class="VPDocOutlineItem root" data-v-60d5052e data-v-2d0bdf9b><!--[--><!--]--></ul></div></nav><!--[--><!--]--><div class="spacer" data-v-3f215769></div><!--[--><!--]--><!----><!--[--><!--]--><!--[--><!--]--></div></div></div></div><div class="content" data-v-7011f0d8><div class="content-container" data-v-7011f0d8><!--[--><!--]--><main class="main" data-v-7011f0d8><div style="position:relative;" class="vp-doc _zh_guide_extension-notes" data-v-7011f0d8><div><h1 id="扩展注意事项" tabindex="-1">扩展注意事项 <a class="header-anchor" href="#扩展注意事项" aria-label="Permalink to “扩展注意事项”"></a></h1><p>因为是静态编译,扩展不会 100% 完美编译,而且不同扩展对 PHP、环境都有不同的要求这里将一一列举。</p><h2 id="curl" tabindex="-1">curl <a class="header-anchor" href="#curl" aria-label="Permalink to “curl”"></a></h2><p>HTTP3 支持默认未启用,需在编译时添加 <code>--with-libs=&quot;nghttp2,nghttp3,ngtcp2&quot;</code> 以启用 PHP 8.4 及以上版本的 HTTP3 支持。</p><p>使用 curl 请求 HTTPS 时,可能存在 <code>error:80000002:system library::No such file or directory</code> 错误, 解决办法详见 <a href="./../faq/#无法使用-ssl">FAQ - 无法使用 ssl</a></p><h2 id="phpmicro" tabindex="-1">phpmicro <a class="header-anchor" href="#phpmicro" aria-label="Permalink to “phpmicro”"></a></h2><ol><li>phpmicro SAPI 仅支持 PHP &gt;= 8.0 版本。</li></ol><h2 id="swoole" tabindex="-1">swoole <a class="header-anchor" href="#swoole" aria-label="Permalink to “swoole”"></a></h2><ol><li>swoole &gt;= 5.0 版本仅支持 PHP &gt;= 8.0 版本。</li><li>swoole 目前不支持 PHP 8.0 版本 curl 的 hook后续有可能会修复</li><li>编译时只包含 <code>swoole</code> 扩展时不会完整开启支持的 Swoole 数据库协程 hook如需使用请加入对应的 <code>swoole-hook-xxx</code> 扩展。</li><li>swoole 在部分扩展组合下可能出现 <code>zend_mm_heap corrupted</code> 问题,暂未找到是什么原因导致的。</li></ol><h2 id="swoole-hook-pgsql" tabindex="-1">swoole-hook-pgsql <a class="header-anchor" href="#swoole-hook-pgsql" aria-label="Permalink to “swoole-hook-pgsql”"></a></h2><p>swoole-hook-pgsql 不是一个扩展,而是 Swoole 的 Hook 特性。 如果你在编译时添加了 <code>swoole,swoole-hook-pgsql</code>,你将启用 Swoole 的 PostgreSQL 客户端和 <code>pdo_pgsql</code> 扩展的协程模式。</p><p>swoole-hook-pgsql 与 <code>pdo_pgsql</code> 扩展冲突。如需使用 Swoole 和 <code>pdo_pgsql</code>,请删除 pdo_pgsql 扩展,启用 <code>swoole</code><code>swoole-hook-pgsql</code> 即可。 该扩展包含了 <code>pdo_pgsql</code> 的协程环境的实现。</p><p>在 macOS 系统,<code>pdo_pgsql</code> 可能无法正常连接到 postgresql 服务器,请谨慎使用。</p><h2 id="swoole-hook-mysql" tabindex="-1">swoole-hook-mysql <a class="header-anchor" href="#swoole-hook-mysql" aria-label="Permalink to “swoole-hook-mysql”"></a></h2><p>swoole-hook-mysql 不是一个扩展,而是 Swoole 的 Hook 特性。 如果你在编译时添加了 <code>swoole,swoole-hook-mysql</code>,你将启用 Swoole 的 <code>mysqlnd</code><code>pdo_mysql</code> 的协程模式。</p><h2 id="swoole-hook-sqlite" tabindex="-1">swoole-hook-sqlite <a class="header-anchor" href="#swoole-hook-sqlite" aria-label="Permalink to “swoole-hook-sqlite”"></a></h2><p>swoole-hook-sqlite 不是一个扩展,而是 Swoole 的 Hook 特性。 如果你在编译时添加了 <code>swoole,swoole-hook-sqlite</code>,你将启用 Swoole 的 <code>pdo_sqlite</code> 的协程模式Swoole 必须为 5.1 以上)。</p><p>swoole-hook-sqlite 与 <code>pdo_sqlite</code> 扩展冲突。如需使用 Swoole 和 <code>pdo_sqlite</code>,请删除 pdo_sqlite 扩展,启用 <code>swoole</code><code>swoole-hook-sqlite</code> 即可。 该扩展包含了 <code>pdo_sqlite</code> 的协程环境的实现。</p><h2 id="swow" tabindex="-1">swow <a class="header-anchor" href="#swow" aria-label="Permalink to “swow”"></a></h2><ol><li>swow 仅支持 PHP 8.0+ 版本。</li></ol><h2 id="imagick" tabindex="-1">imagick <a class="header-anchor" href="#imagick" aria-label="Permalink to “imagick”"></a></h2><ol><li>OpenMP 支持已被禁用,这是维护者推荐的做法,系统软件包也是如此配置。</li></ol><h2 id="imap" tabindex="-1">imap <a class="header-anchor" href="#imap" aria-label="Permalink to “imap”"></a></h2><ol><li>该扩展目前不支持 Kerberos。</li><li>由于底层的 c-client、ext-imap 不是线程安全的。 无法在 <code>--enable-zts</code> 构建中使用它。</li><li>该扩展已在 PHP 8.4 中被移除,因此我们建议您寻找替代实现,例如 <a href="https://github.com/Webklex/php-imap" target="_blank" rel="noreferrer">Webklex/php-imap</a></li></ol><h2 id="gd" tabindex="-1">gd <a class="header-anchor" href="#gd" aria-label="Permalink to “gd”"></a></h2><ol><li>gd 扩展依赖了较多的额外图形库,默认情况下,直接使用 <code>bin/spc build gd</code> 不会引入和支持部分图形库,例如 <code>libjpeg</code><code>libavif</code> 等, 需要使用 <code>--with-libs</code> 参数补全。目前支持 <code>freetype,libjpeg,libavif,libwebp</code> 四个库的支持,所以这里可以使用以下命令来让 gd 库引入它们:</li></ol><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;">bin/spc</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> build</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> gd</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --with-libs=freetype,libjpeg,libavif,libwebp</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --build-cli</span></span></code></pre></div><h2 id="mcrypt" tabindex="-1">mcrypt <a class="header-anchor" href="#mcrypt" aria-label="Permalink to “mcrypt”"></a></h2><ol><li>目前未支持,未来也不计划支持此扩展。<a href="https://github.com/crazywhalecc/static-php-cli/issues/32" target="_blank" rel="noreferrer">#32</a></li></ol><h2 id="oci8" tabindex="-1">oci8 <a class="header-anchor" href="#oci8" aria-label="Permalink to “oci8”"></a></h2><ol><li>oci8 是 Oracle 数据库的扩展,因为 Oracle 提供的扩展所依赖的库未提供静态编译版本(<code>.a</code>)或源代码,无法使用静态链接的方式将此扩展编译到 php 内,故无法支持。</li></ol><h2 id="xdebug" tabindex="-1">xdebug <a class="header-anchor" href="#xdebug" aria-label="Permalink to “xdebug”"></a></h2><ol><li>Xdebug 只能作为共享扩展进行构建。您需要使用除了 <code>musl-static</code> 外的其他 <code>SPC_TARGET</code> 构建目标。</li><li>使用 Linux/glibc 或 macOS 时,您可以使用 <code>--build-shared=xdebug</code> 将 Xdebug 编译为共享扩展。 编译后的 <code>./php</code> 二进制文件可以通过指定 INI 文件进行配置和运行,例如 <code>./php -d &#39;zend_extension=/path/to/xdebug.so&#39; your-code.php</code></li></ol><h2 id="xml" tabindex="-1">xml <a class="header-anchor" href="#xml" aria-label="Permalink to “xml”"></a></h2><ol><li>xml包括 xmlreader、xmlwriter、dom、simplexml 等,添加 xml 扩展时最好同时启用这些扩展。</li><li>libxml 包含在 xml 扩展中。 启用 xml 相当于启用 libxml。</li></ol><h2 id="glfw" tabindex="-1">glfw <a class="header-anchor" href="#glfw" aria-label="Permalink to “glfw”"></a></h2><ol><li>glfw 扩展依赖 OpenGL在 Linux 平台还依赖 X11 等环境,这些库都无法被轻易地动态链接。</li><li>在 macOS 系统下,我们可以动态链接系统的 OpenGL 和一些相关的库。</li></ol><h2 id="rar" tabindex="-1">rar <a class="header-anchor" href="#rar" aria-label="Permalink to “rar”"></a></h2><ol><li>rar 扩展目前在 macOS x86_64 环境下与 <code>common</code> 扩展集合编译 phpmicro 存在问题。</li></ol><h2 id="pgsql" tabindex="-1">pgsql <a class="header-anchor" href="#pgsql" aria-label="Permalink to “pgsql”"></a></h2><p><s>pgsql ssl 连接与 openssl 3.2.0 不兼容。相关链接:</s></p><ul><li><s><a href="https://github.com/Homebrew/homebrew-core/issues/155651" target="_blank" rel="noreferrer">https://github.com/Homebrew/homebrew-core/issues/155651</a></s></li><li><s><a href="https://github.com/Homebrew/homebrew-core/pull/155699" target="_blank" rel="noreferrer">https://github.com/Homebrew/homebrew-core/pull/155699</a></s></li><li><s><a href="https://github.com/postgres/postgres/commit/c82207a548db47623a2bfa2447babdaa630302b9" target="_blank" rel="noreferrer">https://github.com/postgres/postgres/commit/c82207a548db47623a2bfa2447babdaa630302b9</a></s></li></ul><p>pgsql 16.2 修复了这个 Bug现在正常工作了。</p><p>在 pgsql 使用 SSL 连接时,可能存在 <code>error:80000002:system library::No such file or directory</code> 错误, 解决办法详见 <a href="./../faq/#无法使用-ssl">FAQ - 无法使用 ssl</a></p><h2 id="openssl" tabindex="-1">openssl <a class="header-anchor" href="#openssl" aria-label="Permalink to “openssl”"></a></h2><p>使用基于 openssl 的扩展(如 curl、pgsql 等网络库)时,可能存在 <code>error:80000002:system library::No such file or directory</code> 错误, 解决办法详见 <a href="./../faq/#无法使用-ssl">FAQ - 无法使用 ssl</a></p><h2 id="password-argon2" tabindex="-1">password-argon2 <a class="header-anchor" href="#password-argon2" aria-label="Permalink to “password-argon2”"></a></h2><ol><li>password-argon2不是一个标准的扩展。<code>password_hash</code> 函数的 <code>PASSWORD_ARGON2ID</code> 算法需要 libsodium 或 libargon2 才能工作。</li><li>使用 password-argon2 可以为此启用多线程支持。</li></ol><h2 id="ffi" tabindex="-1">ffi <a class="header-anchor" href="#ffi" aria-label="Permalink to “ffi”"></a></h2><ol><li>由于 musl libc 静态链接的限制,无法加载动态库,因此无法使用 ffi。 如果您需要使用 ffi 扩展,请参阅 <a href="./build-with-glibc.html">使用 GNU libc 编译 PHP</a></li><li>macOS 支持 ffi 扩展,但某些内核不包含调试符号时会出现错误。</li><li>Windows x64 支持 ffi 扩展。</li></ol><h2 id="xhprof" tabindex="-1">xhprof <a class="header-anchor" href="#xhprof" aria-label="Permalink to “xhprof”"></a></h2><p>xhprof 扩展包含三部分:<code>xhprof_extension</code><code>xhprof_html</code><code>xhprof_libs</code>。编译的二进制中只包含 <code>xhprof_extension</code>。 如果需要使用 xhprof请到 <a href="http://pecl.php.net/package/xhprof" target="_blank" rel="noreferrer">pecl.php.net/package/xhprof</a> 下载源码,指定 <code>xhprof_libs</code><code>xhprof_html</code> 路径来使用。</p><h2 id="event" tabindex="-1">event <a class="header-anchor" href="#event" aria-label="Permalink to “event”"></a></h2><p>event 扩展在 macOS 系统下编译后暂无法使用 <code>openpty</code> 特性。相关 Issue</p><ul><li><a href="https://github.com/crazywhalecc/static-php-cli/issues/335" target="_blank" rel="noreferrer">static-php-cli#335</a></li></ul><h2 id="parallel" tabindex="-1">parallel <a class="header-anchor" href="#parallel" aria-label="Permalink to “parallel”"></a></h2><p>parallel 扩展只支持 PHP 8.0 及以上版本,并只支持 ZTS 构建(<code>--enable-zts</code>)。</p><h2 id="spx" tabindex="-1">spx <a class="header-anchor" href="#spx" aria-label="Permalink to “spx”"></a></h2><ol><li>SPX 目前不支持 Windows且官方仓库也不支持静态编译static-php-cli 使用了 <a href="https://github.com/static-php/php-spx" target="_blank" rel="noreferrer">修改版本</a></li></ol><h2 id="mimalloc" tabindex="-1">mimalloc <a class="header-anchor" href="#mimalloc" aria-label="Permalink to “mimalloc”"></a></h2><ol><li>从技术上讲,这不是扩展,而是一个库。</li><li>在 Linux 或 macOS 上使用 <code>--with-libs=&quot;mimalloc&quot;</code> 进行构建将覆盖默认分配器。</li><li>目前,这还处于实验阶段,但建议在线程环境中使用。</li></ol></div></div></main><footer class="VPDocFooter" data-v-7011f0d8 data-v-e257564d><!--[--><!--]--><!----><nav class="prev-next" aria-labelledby="doc-footer-aria-label" data-v-e257564d><span class="visually-hidden" id="doc-footer-aria-label" data-v-e257564d>Pager</span><div class="pager" data-v-e257564d><a class="VPLink link pager-link prev" href="/zh/guide/extensions.html" data-v-e257564d><!--[--><span class="desc" data-v-e257564d>Previous page</span><span class="title" data-v-e257564d>扩展列表</span><!--]--></a></div><div class="pager" data-v-e257564d><a class="VPLink link pager-link next" href="/zh/guide/cli-generator.html" data-v-e257564d><!--[--><span class="desc" data-v-e257564d>Next page</span><span class="title" data-v-e257564d>编译命令生成器</span><!--]--></a></div></nav></footer><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><footer class="VPFooter has-sidebar" data-v-5e06b97a data-v-c3855bb3><div class="container" data-v-c3855bb3><p class="message" data-v-c3855bb3>Released under the MIT License.</p><p class="copyright" data-v-c3855bb3>Copyright © 2023-present crazywhalecc</p></div></footer><!--[--><!--]--></div></div>
<script>window.__VP_HASH_MAP__=JSON.parse("{\"deps-craft-yml.md\":\"DWPKeuXi\",\"deps-map-ext.md\":\"D_l0SvsE\",\"deps-map-lib.md\":\"DOtBR8NX\",\"en_contributing_index.md\":\"C8tXDL1f\",\"en_develop_craft-yml.md\":\"BDq8uWIr\",\"en_develop_doctor-module.md\":\"DYVfKght\",\"en_develop_index.md\":\"DSlquryN\",\"en_develop_php-src-changes.md\":\"DadHFaGC\",\"en_develop_source-module.md\":\"CeJEgS_j\",\"en_develop_structure.md\":\"D1kBTweh\",\"en_develop_system-build-tools.md\":\"DK4AaCy_\",\"en_faq_index.md\":\"DnHLgGcl\",\"en_guide_action-build.md\":\"BCJvLz8l\",\"en_guide_build-on-windows.md\":\"CG23CkLK\",\"en_guide_build-with-glibc.md\":\"BDBCsGWa\",\"en_guide_cli-generator.md\":\"I7TdmgOR\",\"en_guide_deps-map.md\":\"yE0YY7Hq\",\"en_guide_env-vars.md\":\"DzVATbtO\",\"en_guide_extension-notes.md\":\"qcRlR4zd\",\"en_guide_extensions.md\":\"BenMxybF\",\"en_guide_index.md\":\"By6XUN6E\",\"en_guide_manual-build.md\":\"BS1NEyZX\",\"en_guide_troubleshooting.md\":\"BvJgQKvb\",\"en_index.md\":\"kO-e39M0\",\"extension-notes.md\":\"DkpYDq7p\",\"extensions.md\":\"I66dgmMR\",\"index.md\":\"wJBxKTzp\",\"zh_contributing_index.md\":\"22akXfoC\",\"zh_develop_craft-yml.md\":\"Dfv1fXuq\",\"zh_develop_doctor-module.md\":\"B8r2lbU8\",\"zh_develop_index.md\":\"DecU9Y3b\",\"zh_develop_php-src-changes.md\":\"CkjaMIky\",\"zh_develop_source-module.md\":\"DoBnezP5\",\"zh_develop_structure.md\":\"DStJTsYD\",\"zh_develop_system-build-tools.md\":\"CxPkPV_h\",\"zh_faq_index.md\":\"nE1d0aPt\",\"zh_guide_action-build.md\":\"CYeVjGhJ\",\"zh_guide_build-on-windows.md\":\"6JBREABQ\",\"zh_guide_build-with-glibc.md\":\"CGbU937o\",\"zh_guide_cli-generator.md\":\"DT7mfJCx\",\"zh_guide_deps-map.md\":\"Bx7cbT0J\",\"zh_guide_env-vars.md\":\"DqYHbUfS\",\"zh_guide_extension-notes.md\":\"BkfCboVT\",\"zh_guide_extensions.md\":\"DZdE8zh5\",\"zh_guide_index.md\":\"DWAO4_zO\",\"zh_guide_manual-build.md\":\"DAnA1dt8\",\"zh_guide_troubleshooting.md\":\"DSUIb51x\",\"zh_index.md\":\"DcikGFee\"}");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\"}],\"footer\":{\"message\":\"Released under the MIT License.\",\"copyright\":\"Copyright © 2023-present crazywhalecc\"}},\"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\":\"Basic Build Guides\",\"items\":[{\"text\":\"Guide\",\"link\":\"/en/guide/\"},{\"text\":\"Build (Local)\",\"link\":\"/en/guide/manual-build\"},{\"text\":\"Build (CI)\",\"link\":\"/en/guide/action-build\"},{\"text\":\"Supported Extensions\",\"link\":\"/en/guide/extensions\"},{\"text\":\"Extension Notes\",\"link\":\"/en/guide/extension-notes\"},{\"text\":\"Build 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\"}]},{\"text\":\"Extended Build Guides\",\"items\":[{\"text\":\"Troubleshooting\",\"link\":\"/en/guide/troubleshooting\"},{\"text\":\"Build on Windows\",\"link\":\"/en/guide/build-on-windows\"},{\"text\":\"Build with GNU libc\",\"link\":\"/en/guide/build-with-glibc\"}]}],\"/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\"},{\"text\":\"craft.yml Configuration\",\"link\":\"/zh/develop/craft-yml\"}]}],\"/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\":\"本地构建\",\"link\":\"/zh/guide/manual-build\"},{\"text\":\"Actions 构建\",\"link\":\"/zh/guide/action-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\"}]},{\"text\":\"扩展构建指南\",\"items\":[{\"text\":\"故障排除\",\"link\":\"/zh/guide/troubleshooting\"},{\"text\":\"在 Windows 上构建\",\"link\":\"/zh/guide/build-on-windows\"},{\"text\":\"构建 GNU libc 兼容的二进制\",\"link\":\"/zh/guide/build-with-glibc\"}]}],\"/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\"},{\"text\":\"craft.yml 配置详解\",\"link\":\"/zh/develop/craft-yml\"}]}],\"/zh/contributing/\":[{\"text\":\"贡献指南\",\"items\":[{\"text\":\"贡献指南\",\"link\":\"/zh/contributing/\"}]}]},\"footer\":{\"message\":\"Released under the MIT License.\",\"copyright\":\"Copyright © 2023-present crazywhalecc\"}}}},\"scrollOffset\":134,\"cleanUrls\":false,\"additionalConfig\":{}}");</script>
</body>
</html>