import{_ as e,c as o,o as l,a1 as a}from"./chunks/framework.gjrnbxUT.js";const u=JSON.parse('{"title":"扩展注意事项","description":"","frontmatter":{},"headers":[],"relativePath":"zh/guide/extension-notes.md","filePath":"zh/guide/extension-notes.md"}'),s={name:"zh/guide/extension-notes.md"},i=a('
因为是静态编译,扩展不会 100% 完美编译,而且不同扩展对 PHP、环境都有不同的要求,这里将一一列举。
使用 curl 请求 HTTPS 时,可能存在 error:80000002:system library::No such file or directory
错误, 解决办法详见 FAQ - 无法使用 ssl。
swoole
扩展时不会完整开启支持的 Swoole 数据库协程 hook,如需使用请加入对应的 swoole-hook-xxx
扩展。zend_mm_heap corrupted
问题,暂未找到是什么原因导致的。swoole-hook-pgsql 不是一个扩展,而是 Swoole 的 Hook 特性。 如果你在编译时添加了 swoole,swoole-hook-pgsql
,你将启用 Swoole 的 PostgreSQL 客户端和 pdo_pgsql
扩展的协程模式。
swoole-hook-pgsql 与 pdo_pgsql
扩展冲突。如需使用 Swoole 和 pdo_pgsql
,请删除 pdo_pgsql 扩展,启用 swoole
和 swoole-hook-pgsql
即可。 该扩展包含了 pdo_pgsql
的协程环境的实现。
在 macOS 系统,pdo_pgsql
可能无法正常连接到 postgresql 服务器,请谨慎使用。
swoole-hook-mysql 不是一个扩展,而是 Swoole 的 Hook 特性。 如果你在编译时添加了 swoole,swoole-hook-mysql
,你将启用 Swoole 的 mysqlnd
和 pdo_mysql
的协程模式。
swoole-hook-sqlite 不是一个扩展,而是 Swoole 的 Hook 特性。 如果你在编译时添加了 swoole,swoole-hook-sqlite
,你将启用 Swoole 的 pdo_sqlite
的协程模式(Swoole 必须为 5.1 以上)。
swoole-hook-sqlite 与 pdo_sqlite
扩展冲突。如需使用 Swoole 和 pdo_sqlite
,请删除 pdo_sqlite 扩展,启用 swoole
和 swoole-hook-sqlite
即可。 该扩展包含了 pdo_sqlite
的协程环境的实现。
--enable-zts
构建中使用它。bin/spc build gd
不会引入和支持部分图形库,例如 libjpeg
、libavif
等, 需要使用 --with-libs
参数补全。目前支持 freetype,libjpeg,libavif,libwebp
四个库的支持,所以这里可以使用以下命令来让 gd 库引入它们:bin/spc build gd --with-libs=freetype,libjpeg,libavif,libwebp --build-cli
.a
)或源代码,无法使用静态链接的方式将此扩展编译到 php 内,故无法支持。xdebug.so
文件,再在 static-php-cli 中使用 --no-strip
参数保留调试符号表,同时加入 ffi
扩展。 编译的 ./php
二进制可以通过指定 INI 配置并运行,例如./php -d 'zend_extension=xdebug.so' your-code.php
。common
扩展集合编译 phpmicro 存在问题。pgsql ssl 连接与 openssl 3.2.0 不兼容。相关链接:
pgsql 16.2 修复了这个 Bug,现在正常工作了。
在 pgsql 使用 SSL 连接时,可能存在 error:80000002:system library::No such file or directory
错误, 解决办法详见 FAQ - 无法使用 ssl。
使用基于 openssl 的扩展(如 curl、pgsql 等网络库)时,可能存在 error:80000002:system library::No such file or directory
错误, 解决办法详见 FAQ - 无法使用 ssl。
password_hash
函数的额外算法。libargon2
与 libsodium
库冲突。so
扩展。Linux 支持加载 so 扩展的前提是非静态编译,但动态编译和本项目的目的冲突。xhprof 扩展包含三部分:xhprof_extension
、xhprof_html
、xhprof_libs
。编译的二进制中只包含 xhprof_extension
。 如果需要使用 xhprof,请到 pecl.php.net/package/xhprof 下载源码,指定 xhprof_libs
和 xhprof_html
路径来使用。
event 扩展在 macOS 系统下编译后暂无法使用 openpty
特性。相关 Issue:
parallel 扩展只支持 PHP 8.0 及以上版本,并只支持 ZTS 构建(--enable-zts
)。