我有一个Web应用程序,并且在生产环境中使用PHP 5.5.5运行良好。
现在在同一台服务器上我需要运行一些使用php pthread(v.2.0.10)的PHP脚本
安全使用--enable-maintainer-zts
重建php(允许使用pthread)并对Web应用程序和CLI脚本使用相同的可执行文件 使用php-pthread ?
或者我应该制作两个PHP版本:php
,php-zts
并将前者用于Web应用程序而后者用于CLI脚本?
由于默认情况下未启用--enable-maintainer-zts
,我认为它有一些缺点或更糟(我在此处阅读https://github.com/travis-ci/travis-ci/issues/985)可能会引入行为不端(错误)。
Mac OS X 10.9.5上的网络堆栈是 nginx + php-fpm + mySql 。
我希望它清楚: phtread 将不由Web应用程序脚本使用。仅限CLI脚本。
答案 0 :(得分:2)
来自http://www.phpinternalsbook.com/build_system/building_php.html
(强调我的)
--enable-debug
启用调试模式[...]
--enable-maintainer-zts
启用了线程安全性。[...]
如果您要为代码执行性能基准测试,则不应使用其中任何一个 ,因为两者都会导致显着和不对称的减速。
--enable-maintainer-zts
似乎无害但会影响表演。因此,在生产环境中绝对不可取。
使用--enable-maintainer-zts
单独构建PHP以便在CLI脚本中使用php pthread是合适的方法。