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


PHP Thread Safe and Non-Thread Safe for Windows

我正在下载PHP的Windows。我在网站上有两个选择。

    PHP线程安全PHP非线程安全

请回答以下问题:

  1. 两者的区别是什么?是什么?孰优孰劣?
  2. 我正在开发一个电子商务网站,这将有很大的流量,哪一个更推荐,为什么?

来自PHP文档:

Thread Safety意味着二进制文件可以在多线程的web服务器环境中工作,比如Windows上的Apache 2。线程安全的工作原理是在每个线程中创建一个本地存储副本,这样数据就不会与另一个线程冲突。

我该选什么呢?如果选择以CGI二进制文件的形式运行PHP,那么就不需要线程安全,因为在每次请求时都会调用二进制文件。对于多线程的web服务器,比如IIS5和IIS6,你应该使用线程版本的PHP。

这取决于你如何使用PHP:

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

PHP手册有很好的安装说明

AFAIR运行PHP与FastCGI是更好的方式,它执行更快,并允许更细粒度的安全配置。

快速和简单:如果你正在使用Apache编辑你的Apache24'conf'httpd.conf文件和搜索"loadmodule"。如果你看到你的loadmodule引用了一个.dll,比如:

LoadModule php7_module "e:/x64Stack/PHP/php7.1.9/php7apache2_4.dll"
AddHandler application/x-httpd-php .php
PHPIniDir"e:/x64Stack/PHP/php7.1.9"

那么您希望线程安全启用TS - 线程安全版本

如果您使用IIS或Apache的CGI,那么请使用NTS。

我在多个服务器和PHP版本中使用多个堆栈,所以不要让路径/PHP或服务器版本迷惑你。

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

警告此web服务器旨在帮助应用程序开发。它也可以用于测试目的或应用程序在受控环境中运行的演示。事实并非如此打算成为一个功能齐全的web服务器。它不应该用在公共网络。