您的位置:首页 > 运维架构 > Apache

PHP应该和Apache 1.3.x配合还是应该和Apache 2.x配合?

2004-10-31 23:25 567 查看
Apache 2.x已经发布很长时间了,很多情况下都推荐使用2.x,而不是1.3.x。

可是在PHP官方的Manual中,却明确指出:

警告
在企业级应用中无论是 Unix 还是 Windows 都不要使用 Apache 2.0 和 PHP 的组合。

这是为什么?

这个讨论可以解释一些问题 http://simon.incutio.com/archive/2004/03/31/phpAndApache2

大体说来,Apache 2可以编译成multi-threading模式,而PHP的一些东东不是thread-safe的,所以不推荐在multi-threading模式下的Apache使用。换句话说,如果把Apache2编译成为multi-processes 模式,PHP应该是可以正常工作的。至于multi-processes下的Apache2工作效率和1.3.x相比到底如何,我想应该不会太差吧。

在PHP的Manual里专门提到:

假如您要编译一个多线程版本的 Apache 2.0,您必须覆盖标准的 MPM-Module prefork,或者 worker 或者 perchild。要这样,您需要......使用 --with-mpm=worker 或者 --with-mpm=perchild 选项。之前您需要了解您正在做什么。更多信息请参考 Apache 文档中关于 MPM-Modules 的部分。

注: 要编译多线程版本的 Apache,您的系统必须支持多线程。这也意味着需要将 PHP 编译为正处在试验阶段的 Zend Thread Safety (ZTS)。因此并不是所有的扩展都可以使用了。推荐编译 Apache 使用标准的 prefork MPM-Module。

嗯,回头可以去看看ZTS。还有,不知道PHP5怎么样。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: