使用--enable-maintainer-zts编译PHP时的缺点或副作用(使用php pthread)

时间:2016-03-09 14:56:31

标签: php php-pthread

我有一个Web应用程序,并且在生产环境中使用PHP 5.5.5运行良好。

现在在同一台服务器上我需要运行一些使用php pthread(v.2.0.10)的PHP脚本

安全使用--enable-maintainer-zts重建php(允许使用pthread)并对Web应用程序和CLI脚本使用相同的可执行文件 使用php-pthread

或者我应该制作两个PHP版本:phpphp-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脚本。

1 个答案:

答案 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是合适的方法。