簡介
pthreads 是一組允許使用者在 PHP 中使用多執行緒技術的物件導向的 API。 它提供了建立多執行緒應用所需的全套工具,無論是 Web 應用還是控制檯應用。 通過使用 Thread, Worker 以及 Threaded 物件,PHP 應用可以建立、讀取、寫入以及執行多執行緒應用,並可以在多個執行緒之間進行同步控制。
安裝
Mac下安裝軟體可以通過homebrew命令來執行,如果沒有brew需要先安裝.php安裝pthreads擴充套件需要先保證thread safety
下載pthreads
最好通過github安裝,據說官方版本在make時有問題
github: GItHub地址
編譯並安裝
1. 解壓後進入資料夾,目錄下有個config.m4檔案
2. 終端輸入phpize,生成build檔案
3. 安裝 make && make install
-
問題1
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檔案的。
-
解決
brew install m4
-
問題2
checking for ZTS... configure: error: pthreads requires ZTS, please re-compile PHP with ZTS enabled
-
說明
編譯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的引用註釋