PHP拓展装了pthreads导致其他拓展无法加载的问题

系统:OS X。
通过brew install php56/pthreads 可以正常安装,但是这样安装后其他拓展(如:memcache,redis)就无法加载了(phpinfo()和php -m) 都没有。
然后如果重新brew uninstall php56再brew install php56后,memcache和redis之类消失的拓展又回来了,但是pthreads不见了。

试问如何解决?原因貌似是pthreads会在安装拓展时重新./configure php文件,导致其他拓展无法加载?

阅读 3.4k
3 个回答

要下载线程安全版本的php

pthreads 还是不要用了,都说不稳定。

PHP有"非线程安全"和"线程安全"版本之分.

pthreads扩展需要工作在"线程安全"版本下的PHP.
原来那些"非线程安全"下编译的扩展自然是无法载入到"线程安全"版本PHP的.

我推荐的做法是自己编译线程安全版本PHP到单独目录.
只有当在configure时指定--enable-maintainer-zts选项或启用多线程SAPI时(比如构建event mpm apache2handler),PHP才会编译线程安全的代码.很多情况下PHP还是被用于非多线程环境,所以编译时不需要启用线程安全.

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题