问题 PHP使用线程安全与否


我正在为Windows 2008 R2 64位服务器上的生产服务器构建Web服务器安装

我安装了Apache 2.4 64位,运行正常

下一步,PHP

我已经了解了线程安全与否之间的差异,但似乎无法掌握我应该使用的(以及为什么)。

任何人都可以确认我应该使用哪个PHP安装我当前的设置?


7037
2017-07-12 13:44


起源



答案:


你应该看看PHP文档:

线程安全意味着二进制文件可以在多线程Web服务器上下文中工作,例如Windows上的Apache 2。线程安全通过在每个线程中创建本地存储副本来工作,以便数据不会与另一个线程冲突。

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

例如,如果您使用 FastCGI 使用Apache,转到非线程安全,如果使用LoadModule,请转到线程安全版本。


14
2017-07-12 13:48



嗨,感谢您的反馈,但我在Windows 2008 64位服务器上使用Apache 2.4。那么这需要线程安全吗?我确实阅读了有关技术差异的所有信息,但他们似乎都没有最终决定使用什么 - MarkO
然后去线程安全。 - jh314
OK线程安全然后!谢谢您的帮助。 - MarkO
PHP-FPM怎么样? - CMCDragonkai
不是相反吗? FastCGI为PHP进程使用了​​几个PHP线程,因此PHP需要是线程安全的,而使用mod_php prefork时,Apache请求是分叉的,所以不需要线程安全,因为每个进程只有一个线程。 - Attila Szeremi


答案:


你应该看看PHP文档:

线程安全意味着二进制文件可以在多线程Web服务器上下文中工作,例如Windows上的Apache 2。线程安全通过在每个线程中创建本地存储副本来工作,以便数据不会与另一个线程冲突。

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

例如,如果您使用 FastCGI 使用Apache,转到非线程安全,如果使用LoadModule,请转到线程安全版本。


14
2017-07-12 13:48



嗨,感谢您的反馈,但我在Windows 2008 64位服务器上使用Apache 2.4。那么这需要线程安全吗?我确实阅读了有关技术差异的所有信息,但他们似乎都没有最终决定使用什么 - MarkO
然后去线程安全。 - jh314
OK线程安全然后!谢谢您的帮助。 - MarkO
PHP-FPM怎么样? - CMCDragonkai
不是相反吗? FastCGI为PHP进程使用了​​几个PHP线程,因此PHP需要是线程安全的,而使用mod_php prefork时,Apache请求是分叉的,所以不需要线程安全,因为每个进程只有一个线程。 - Attila Szeremi


“使用Apache,你必须使用PHP的线程安全(TS)版本。”从下载页面,如果有人在寻找。


2
2017-11-15 12:31