使用 --enable-maintainer-zts 编译 PHP 时的缺点或副作用(使用 php pthread)
Drawbacks or side-effects when compiling PHP with --enable-maintainer-zts (to use php pthread)
我有一个 Web 应用程序,在生产环境中 运行 可以正常使用 PHP 5.5.5。
现在我需要在同一台服务器上 运行 一些 PHP 使用 php pthread (v. 2.0.10)
的脚本
用--enable-maintainer-zts
重建php是否安全(允许使用pthreads)并使用相同的可执行文件两者 用于 Web 应用程序和使用 php-pthread ?
的 CLI 脚本
或者我应该构建两个 PHP:php
、php-zts
并将前者用于 Web 应用程序,将后者用于 CLI 脚本?
由于 --enable-maintainer-zts
默认情况下未启用,我认为它有一些缺点或更糟(正如我在此处阅读的 https://github.com/travis-ci/travis-ci/issues/985)可能会引入不当行为(错误)。
网络堆栈是nginx + php-fpm + mySql 在 Mac OS X 10.9.5.
我想说清楚:phtread 不会 被 Web 应用程序脚本使用。仅通过 CLI 脚本。
来自http://www.phpinternalsbook.com/build_system/building_php.html
(强调我的)
--enable-debug
enables debug mode
[...]
--enable-maintainer-zts
enables thread-safety.
[...]
you should not use either of these options if you want to perform performance benchmarks for your code, as both can cause significant and asymmetrical slowdowns.
--enable-maintainer-zts
看似无害,但影响性能。所以在生产环境中绝对不可取
使用 --enable-maintainer-zts
单独构建 PHP 以便在 CLI 脚本中使用 php pthread 是合适的方法。
我有一个 Web 应用程序,在生产环境中 运行 可以正常使用 PHP 5.5.5。
现在我需要在同一台服务器上 运行 一些 PHP 使用 php pthread (v. 2.0.10)
的脚本用--enable-maintainer-zts
重建php是否安全(允许使用pthreads)并使用相同的可执行文件两者 用于 Web 应用程序和使用 php-pthread ?
或者我应该构建两个 PHP:php
、php-zts
并将前者用于 Web 应用程序,将后者用于 CLI 脚本?
由于 --enable-maintainer-zts
默认情况下未启用,我认为它有一些缺点或更糟(正如我在此处阅读的 https://github.com/travis-ci/travis-ci/issues/985)可能会引入不当行为(错误)。
网络堆栈是nginx + php-fpm + mySql 在 Mac OS X 10.9.5.
我想说清楚:phtread 不会 被 Web 应用程序脚本使用。仅通过 CLI 脚本。
来自http://www.phpinternalsbook.com/build_system/building_php.html
(强调我的)
--enable-debug
enables debug mode[...]
--enable-maintainer-zts
enables thread-safety.[...]
you should not use either of these options if you want to perform performance benchmarks for your code, as both can cause significant and asymmetrical slowdowns.
--enable-maintainer-zts
看似无害,但影响性能。所以在生产环境中绝对不可取
使用 --enable-maintainer-zts
单独构建 PHP 以便在 CLI 脚本中使用 php pthread 是合适的方法。