最后,是PHP 5.4线程安全


Finally, is PHP 5.4 Thread Safe?

PHP社区最近发布了5.4版。所以,我的第一个问题是:这个版本最终是线程安全的吗?

我在这里和网上读了很多关于这个热门话题(PHP踏板安全)的帖子,我必须承认我有点困惑。

到今天为止,我对这个主题的理解很差,认为"线程安全"版本的PHP可以在多线程服务器上使用,如Apache2mpmWorker(或Windows上的IIS),而非线程安全的PHP版本应该在多进程服务器上使用(如Apache2mpm Prefork),同时我也理解PHP本身不能启动多个线程。

我目前在带有WampServer2.2d-64的Windows 7-64系统上使用PHP 5.3.10,其中phpinfo()状态为:线程安全:已启用,Apache 2.2.21加载的模块:mod_php5,在另一个带有PHP 5.3.2-1ubuntu4.14的Ubuntu 10.04.3 LTS(64位)系统上使用,其中phpinfo。我以为使用mod_php5会自动加载一个线程安全版本的PHP(但我想我错了)。

所以,我的第二个问题是:PHP(任何版本)真的是线程安全吗?

所以我的第三个问题是:如何在Ubuntu系统上启用线程安全选项?

关于这个主题,我的最后一个问题是:线程安全和非线程安全的PHP/Apache版本之间的执行时间有区别吗?

附言:还有一个问题:如何在Ubuntu上安装PHP5.3.10,因为这个软件包不是Synaptic提出的?

是否有任何版本/5.4最终线程安全?

A回答是的。请参阅获取PHP常见问题解答和Windows下载页面。并不是所有的扩展都是线程安全的,并且存在错误。大多数Linux发行版都提供非线程版本,包括Ubuntu版本。

如何在我的Ubuntu系统上启用线程安全选项。

您可以从ubuntu存储库中获取包apache2-mpm-workerapache2-threaded-dev。您将需要从源代码配置和构建线程版本(因此需要开发工具包)。同样,一些基本的扩展不是线程安全的,不能使用。

线程安全和非线程安全的PHP/Apache版本的执行时间有区别吗?

是的,有些,但如果你对性能感兴趣,那么你应该看看lighttpd或其他替代方案。

如何在Ubuntu 上安装PHP 5.3.10

10.04-3 LTS支持5.3.2。Precise Pangolin将支持PHP 5.3.10,但这仍在开发中。您可以尝试在当前版本上构建此源代码集,但风险自负。