PHP线程安全和非线程安全的Windows

我正在下载Windows的PHP。 我在网站上有2个选项。

  1. PHP线程安全
  2. PHP非线程安全

请回答以下问题:

  1. 两者有什么区别? 彼此有什么优点和缺点?
  2. 我正在开发一个电子商务网站,这个网站stream量很大,哪个更受推荐,为什么?

从PHP文档:

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

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

所以这真的取决于你想使用PHP的方式:

  • Apache + LoadModule :线程安全
  • Apache + FastCGI:非线程安全
  • IIS:线程安全
  • IIS + FastCGI:非线程安全

PHP手册有很好的安装说明 。

使用FastCGI运行PHP的AFAIR是更好的方法,它执行得更快,并允许更细粒度的安全configuration。

除了Crack,从5.4开始,你可以使用内置的web服务器(它工作的很好!)。

快速而简单:如果您使用的是Apache,请编辑您的Apache24 \ conf \ httpd.conf文件并search“loadmodule”。 如果你看到你的loadmodule正在引用.dll这样的东西:

LoadModule php7_module“e:/x64Stack/PHP/php7.1.9/php7apache2_4.dll”
AddHandler应用程序/ x-httpd-php .php
PHPIniDir“e:/x64Stack/PHP/php7.1.9”

那么你想要线程安全启用TS 线程安全版本

否则,如果您使用IIS或Apache与CGI那么NTS风味。

我使用多个堆栈,并在这些多个服务器和PHP版本,所以不要让path/ PHP或服务器版本抛出你。