PHP/pthreads 扩展
< PHP
如果您希望使用 POSIX 多线程,您需要 pthreads 扩展(或者 PHP 7.4+ 的 parallel 扩展)。要使用 pecl
安装 pthreads 或 parallel 扩展,您需要使用编译版本的 PHP,并带有线程安全支持标志 --enable-maintainer-zts
。目前,最干净的方法是使用正确的标志重建原始软件包。
检查哪些软件包依赖于 php 软件包,例如
$ pacman -Qii php
:: php-apache: requires php :: php-apcu: requires php :: php-pear: requires php
卸载 所有包含 php 的软件包。
使用 ABS 获取它们的构建文件,修改 它们文件夹中的 PKGBUILD
文件,在其他扩展旁边添加 --enable-maintainer-zts
。它应该看起来像
... --with-xsl=shared \ --with-zip=shared \ --with-zlib \ --enable-maintainer-zts ...
使用 makepkg 构建新软件包,然后安装您之前卸载的软件包的重建版本
# pacman -U \ php-version-release-x86_64.pkg.tar.zstd \ php-apache-version-release-x86_64.pkg.tar.zstd \ php-pear-version-release-x86_64.pkg.tar.zstd \
在某些 PHP 版本中,php-pearAUR 可能会缺失,并且运行 pecl
是必需的。由于在上面的文件中添加 --with-pear
并不能解决问题,您需要单独安装它。
然后安装 pthreads
$ pecl install pthreads
或者为较新的 PHP 版本安装 parallel
$ pecl install parallel
如果您安装了 parallel,您需要编辑 /etc/php/php.ini
并添加 parallel
扩展,它应该看起来像
... ;extension=odbc ;zend_extension=opcache extension=parallel ;extension=pdo_dblib ...
重新安装 php-apcu 软件包以支持 APC。