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的引用註釋