资讯专栏INFORMATION COLUMN

Mac下安装pthread扩展

hqman / 2484人阅读

摘要:简介是一组允许用户在中使用多线程技术的面向对象的。它提供了创建多线程应用所需的全套工具,无论是应用还是控制台应用。通过使用,以及对象,应用可以创建读取写入以及执行多线程应用,并可以在多个线程之间进行同步控制。

简介

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

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/25803.html

相关文章

  • php 多线程pthreads官网翻译

    摘要:它包含了你创建多线程应用的全部工具,当然无论是还是控制台程序。任何想要应用在程序里面的多线程应用必须都是继承于这几个实用类以上版本取消了类。 不分享,做一切! php拥有令人敬畏的且数量庞大的扩展跟特征,但是php当初设计这门语言的时候,是因为那个时候的web网站远远没有今天的强大!现在几乎所有的网站(含手机站)服务器都是多核的,如果不是多CPU跟多核,PHP是无法提供更好的服务的。虽...

    heartFollower 评论0 收藏0
  • PHP多线程(Pthread初探)

    摘要:饿了,没有力气写代码了。该对象有如下方法。五一再研究研究。。预定义常量线程的默认选项。线程开始的时候,扩展会将环境复制到线程上下文中。新线程开始时,仅继承配置。允许新线程向标准输出发送头信息通常情况下是被禁止的。 饿了,没有力气写代码了。马上五一来临。学一下多线程。pthread扩展的安装,就不说了。

    Zachary 评论0 收藏0

发表评论

0条评论

hqman

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<