Mac下安裝pthread擴展

簡介

pthreads 是一組容許用戶在 PHP 中使用多線程技術的面向對象的 API。 它提供了建立多線程應用所需的全套工具,不管是 Web 應用仍是控制檯應用。 經過使用 Thread, Worker 以及 Threaded 對象,PHP 應用能夠建立、讀取、寫入以及執行多線程應用,並能夠在多個線程之間進行同步控制。php

安裝

Mac下安裝軟件能夠經過homebrew命令來執行,若是沒有brew須要先安裝.php安裝pthreads擴展須要先保證thread safetygit

下載pthreads

最好經過github安裝,聽說官方版本在make時有問題
github: GItHub地址github

編譯並安裝

1. 解壓後進入文件夾,目錄下有個config.m4文件
2. 終端輸入phpize,生成build文件
3. 安裝 make && make install
  • 問題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的引用註釋

相關文章
相關標籤/搜索