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的引用注释

相关文章
相关标签/搜索