系统:OS X。
通过brew install php56/pthreads 可以正常安装,但是这样安装后其他拓展(如:memcache,redis)就无法加载了(phpinfo()和php -m) 都没有。
然后如果重新brew uninstall php56再brew install php56后,memcache和redis之类消失的拓展又回来了,但是pthreads不见了。
试问如何解决?原因貌似是pthreads会在安装拓展时重新./configure php文件,导致其他拓展无法加载?
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
要下载线程安全版本的php
pthreads 还是不要用了,都说不稳定。
PHP有"非线程安全"和"线程安全"版本之分.
pthreads扩展需要工作在"线程安全"版本下的PHP.
原来那些"非线程安全"下编译的扩展自然是无法载入到"线程安全"版本PHP的.
我推荐的做法是自己编译线程安全版本PHP到单独目录.
只有当在configure时指定
--enable-maintainer-zts选项或启用多线程SAPI时(比如构建event mpm apache2handler),PHP才会编译线程安全的代码.很多情况下PHP还是被用于非多线程环境,所以编译时不需要启用线程安全.