/*
* PHP 版本Thread Safe 与 None Thread Safe的区别
* 从2000年发布的第一个Windows PHP版本PHP3.0.17开始都是线程安全的版本,这是由于LINUX/UNIX
* 采用的是多进程的形式,而windows采用的是多线程的方式。如果在IIS下运行CGI会特别慢,因为IIS采
* 用多线程而非多进程,CGI是建立在多进程之上的。
* 一般我们会把PHP配置成ISAPI的方式,因为ISAPI的方式是多线程的,这样运行就快多了,但是由于历史
* 原因,大部分的PHP扩展都是以Linux/Unix多进程思想开发的,这些扩展在IIS运行时会搞垮IIS,因此在
* IIS下,CGI才是PHP最安全的运行方式,但是CGI对于每个HTTP请求都要重新加载或卸载整个PHP环境,
* 非常消耗系统资源。
* 为了兼顾IIS下PHP的效率和安全,微软给出了FastCGI的解决方案,FastCGI可以让进程重复利用,而不
* 是每次重复建立新的进程,FastCGI可以允许几个进程同时运行,这样既解决了CGI进程消耗太严重的问题,
* 又利用上了CGI进程模式不存在线程安全的问题。
* 因此,如果在IIS下运行PHP,就必须要使用PHP Thread Safe 版本,而用FastCGI模式下的话,就没
* 必要检查线程安全了,用None Thread Safe 能提高运行效率
* PHP官方的PHP 版本有四个
* the Visual Studio 2008 compiler ,就是用微软的 VS 编辑器编译的,没有Apache版本,只有
* IIS版本
* VC9 x86 Thread Safe
* VC9 x86 None Thread Safe
* VC6 就是 legacy Visual Studio 6 compiler ,就是使用这个编译器编译的。有Apache,和 IIS
* 版本
* VC6 x86 Thread Safe
* VC6 X86 None Thread Safe
*
* 运行方式的不同:
* ISAPI,FastCGI
* ISAPI 以DLL动态链接库的形式使用PHP,在用户的请求完毕后,不会马上结束线程,所以需要进行线程
* 安全检查,如果是以IIS 来执行PHP,建议使用Thread Safe版本
* FastCGI 服务器和PHP的一个中间件,用它来管理PHP,可以常驻内存,只需要启动一次,可以同时启动
* 多个PHP进程,这些进程以单线程形式运行,所以不需要进行线程安全检查,所以使用None Thread Safe
* 方式.
* 对于Apache一般选用ISAPI,对于Nginx,一般选FastCGI
*
*
*
*/
* PHP 版本Thread Safe 与 None Thread Safe的区别
* 从2000年发布的第一个Windows PHP版本PHP3.0.17开始都是线程安全的版本,这是由于LINUX/UNIX
* 采用的是多进程的形式,而windows采用的是多线程的方式。如果在IIS下运行CGI会特别慢,因为IIS采
* 用多线程而非多进程,CGI是建立在多进程之上的。
* 一般我们会把PHP配置成ISAPI的方式,因为ISAPI的方式是多线程的,这样运行就快多了,但是由于历史
* 原因,大部分的PHP扩展都是以Linux/Unix多进程思想开发的,这些扩展在IIS运行时会搞垮IIS,因此在
* IIS下,CGI才是PHP最安全的运行方式,但是CGI对于每个HTTP请求都要重新加载或卸载整个PHP环境,
* 非常消耗系统资源。
* 为了兼顾IIS下PHP的效率和安全,微软给出了FastCGI的解决方案,FastCGI可以让进程重复利用,而不
* 是每次重复建立新的进程,FastCGI可以允许几个进程同时运行,这样既解决了CGI进程消耗太严重的问题,
* 又利用上了CGI进程模式不存在线程安全的问题。
* 因此,如果在IIS下运行PHP,就必须要使用PHP Thread Safe 版本,而用FastCGI模式下的话,就没
* 必要检查线程安全了,用None Thread Safe 能提高运行效率
* PHP官方的PHP 版本有四个
* the Visual Studio 2008 compiler ,就是用微软的 VS 编辑器编译的,没有Apache版本,只有
* IIS版本
* VC9 x86 Thread Safe
* VC9 x86 None Thread Safe
* VC6 就是 legacy Visual Studio 6 compiler ,就是使用这个编译器编译的。有Apache,和 IIS
* 版本
* VC6 x86 Thread Safe
* VC6 X86 None Thread Safe
*
* 运行方式的不同:
* ISAPI,FastCGI
* ISAPI 以DLL动态链接库的形式使用PHP,在用户的请求完毕后,不会马上结束线程,所以需要进行线程
* 安全检查,如果是以IIS 来执行PHP,建议使用Thread Safe版本
* FastCGI 服务器和PHP的一个中间件,用它来管理PHP,可以常驻内存,只需要启动一次,可以同时启动
* 多个PHP进程,这些进程以单线程形式运行,所以不需要进行线程安全检查,所以使用None Thread Safe
* 方式.
* 对于Apache一般选用ISAPI,对于Nginx,一般选FastCGI
*
*
*
*/