1. 云栖社区>
  2. PHP教程>
  3. 正文

pthreads(四)php7只支持在cli模式下使用pthreads扩展

作者:用户 来源:互联网 时间:2017-12-01 16:39:36

扩展cli使用模式支持php7

pthreads(四)php7只支持在cli模式下使用pthreads扩展 - 摘要: 本文讲的是pthreads(四)php7只支持在cli模式下使用pthreads扩展, 1 ERROR! 用php7了,编译之后安装好扩展,运行php-fpm时报错,在公司没有解决,回家在mac上复现: [24-Mar-2016 23:06:50] NOTICE: PHP message: PHP Fatal er

1 ERROR!


用php7了,编译之后安装好扩展,运行php-fpm时报错,在公司没有解决,回家在mac上复现:


[24-Mar-2016 23:06:50] NOTICE: PHP message: PHP Fatal error: The fpm-fcgi SAPI is not supported by pthreads in Unknown on line 0
Fatal error: The fpm-fcgi SAPI is not supported by pthreads in Unknown on line 0


[24-Mar-2016 23:06:50] NOTICE: PHP message: PHP Fatal error: Unable to start pthreads module in Unknown on line 0
Fatal error: Unable to start pthreads module in Unknown on line 0

2 WHY?

一直以为这个问题是可能是因为php7不稳定导致的,后来看到百度上有人说php7只允许CLI模式下使用pthreads扩展,对此半信半疑,好吧,上github看看:


pthreads v3 is restricted to operating in CLI only: I have spent many years trying to explain that threads in a web server just don't make sense, after 1,111 commits to pthreads I have realised that, my advice is going unheeded.


So I'm promoting the advice to hard and fast fact:you can't use pthreads safely and sensibly anywhere but CLI.


Thanks for listening ;)

以上是作者的原话

3 SOLVE:


CLI模式下,php会优先读取php-cli.ini,如果没找到会使用php.ini,SO:


【1】cp php.ini php-cli.ini // extension=/..(路径)../pthreads.so


【2】编辑原来的php.ini文件注释掉pthreads扩展 // ;extension=/..(路径)../pthreads.so


这样CLI模式下php-cli.ini生效,而php-fpm不会读php-cli.ini



以上是云栖社区小编为您精心准备的的内容,在云栖社区的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索扩展 , cli , 使用 , 模式 , 支持 , php7 ,以便于您获取更多的相关知识。