PHP使用线程安全还是非线程安全

12
我正在为Windows 2008 R2 64位服务器上的生产服务器构建Web服务器安装程序。我已经成功安装了Apache 2.4 64位版本。下一步是安装PHP。我已经阅读了线程安全和非线程安全之间的区别,但似乎无法理解我应该使用哪个(以及为什么)。请问有人能确认我在当前设置下应该使用哪个PHP安装程序吗?
2个回答

17

你应该查看PHP文档:

线程安全表示二进制文件能够在多线程的Web服务器环境中工作,例如Windows上的Apache 2。线程安全通过在每个线程中创建本地存储副本来实现,以使数据不会与另一个线程发生冲突。

那么我该选择什么?如果您选择将PHP作为CGI二进制文件运行,则不需要线程安全,因为二进制文件在每个请求时都被调用。对于像IIS5和IIS6这样的多线程Web服务器,您应该使用PHP的线程版本。

例如,如果您在Apache中使用FastCGI,则选择非线程安全的版本;如果您使用LoadModule,则选择线程安全的版本。


你好,感谢反馈。但是我正在使用 Windows 2008 64 位服务器上的 Apache 2.4。这是否需要线程安全呢?我确实阅读了所有有关技术差异的信息,但它们似乎都没有给出最终使用哪个的明确结论。 - MarkO
难道不是相反吗?FastCGI使用多个PHP线程来处理PHP进程,因此PHP需要是线程安全的,而对于mod_php prefork,Apache请求被分叉,因此不需要线程安全,因为每个进程只有一个线程。 - Attila Szeremi
如果您使用PHP内置的Web服务器会怎样?哪个版本的PHP可实现最佳性能? - Ariod

4
如果其他人需要,从下载页面可以看到,使用Apache时应该使用线程安全(TS)版本的PHP。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接