PHP/pthreads 扩展

出自 ArchWiki
< PHP
(重定向自 PHP pthreads extension

如果您希望使用 POSIX 多线程,您将需要 pthreads 扩展(或 PHP 7.4+ 的 parallel 扩展)。要使用 pecl 安装 pthreadsparallel 扩展,您需要使用使用线程安全支持标志 --enable-maintainer-zts 编译的 PHP 版本。目前,最简洁的方法是使用正确的标志重建原始软件包。

检查哪些软件包依赖于 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 支持。