pthreads 是一组容许用户在 PHP 中使用多线程技术的面向对象的 API。 它提供了建立多线程应用所需的全套工具,不管是 Web 应用仍是控制台应用。 经过使用 Thread, Worker 以及 Threaded 对象,PHP 应用能够建立、读取、写入以及执行多线程应用,并能够在多个线程之间进行同步控制。php
Mac下安装软件能够经过homebrew命令来执行,若是没有brew须要先安装.php安装pthreads扩展须要先保证thread safetygit
最好经过github安装,听说官方版本在make时有问题
github: GItHub地址github
问题1web
Configuring for: PHP Api Version: 20160303 Zend Module Api No: 20160303 Zend Extension Api No: 320160303 Cannot find autoconf. Please check your autoconf installation and the $PHP_AUTOCONF environment variable. Then, rerun this script.
说明多线程
若是在编译时遇到这个问题,说明是没有安装autoconf,此时当前目录下是不会生成configure文件的。php-fpm
解决工具
brew install m4
问题2ui
checking for ZTS... configure: error: pthreads requires ZTS, please re-compile PHP with ZTS enabled
说明this
编译php的时候没有加入 --enable-maintainer-zts ,这个必需要从新编译php,不能动态加载的!命令行
解决
从新编译了php,在原来的编译参数基础上那个加入了 --enable-maintainer-zts ,从新编译安装php。
在php.ini中加入:
extension_dir = "/usr/local/webserver/php/lib/php/extensions/no-debug-zts-20100525" ##必须和你的目录相对应!
问题3
NOTICE: PHP message: PHP Fatal error: The fpm-fcgi SAPI is not supported by pthreads in Unknown Fatal error: The fpm-fcgi SAPI is not supported by pthreads in Unknown NOTICE: PHP message: PHP Fatal error: Unable to start pthreads module in Unknown Fatal error: Unable to start pthreads module in Unknown
说明
pthreads3只支持经过cli命令行模式来调用,不支持其余模式,所以在启动php-fpm进程时会报错。
解决
cli模式下,php会优先读取php-cli。ini,若是没有找到会使用php.ini。经过 php --ini
查看php配置文件,复制php.ini放在一样目录下命名为php-cli.ini。而后将php.ini中对pthreads的引用注释