Mac下安裝pthread擴充套件

thread發表於2019-02-16

簡介

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

相關文章