PHP中基于ts与nts版本- vc6和vc9编译版本的区别详解

VC6:legacy Visual Studio 6 compiler,就是使用这个编译器编译的。
VC9:Visual Studio 2008 compiler,就是用微软的VS编辑器编译的。
由于apache.org只提供VC6的版本,所以使用原版apache时只能使用VC6。(www.apachelounge.com上有apache VC9的版本提供,应该可以和PHP VC9配合,没用过)
TS:Thread Safe 线程安全, 执行时会进行线程(Thread)安全检查,以防止有新要求就启动新线程的CGI执行方式而耗尽系统资源
NTS:Non Thread Safe 非线程安全, 在执行时不进行线程(Thread)安全检查

PHP的两种执行方式:ISAPI和FastCGI。

ISAPI(Internet Server Application Programming Interface)执行方式是以DLL动态库的形式使用,可以在被用户请求后执行,在处理完一个用户请求后不会马上消失,所以需要进行线程安全检查,这样来提高程序的执行效率,所以如果是以ISAPI来执行PHP,建议选择Thread Safe版本
apache中的配置方式:

#下面这个是加载TS版本的PHP必须的
LoadModule PHP5_module “xxx/PHP5apache2_2.dll”
#下面这行可有可无

AddType application/x-httpd-PHP-source .PHPs
AddType application/x-httpd-PHP .PHP .PHP5 .PHP4 .PHP3 .phtml .PHPt


FastCGI执行方式是以单一线程来执行操作,所以不需要进行线程的安全检查,除去线程安全检查的防护反而可以提高执行效率,所以,如果是以FastCGI来执行PHP,建议选择Non Thread Safe版本。
apache中的配置方式:

#下面这两行是加载NTS版本的PHP必须的,不可以直接写成Action application/x-httpd-PHP “c:/wamp/bin/PHP/PHP3.5.6/php-cgi.exe”!
ScriptAlias /PHP/ "C:/wamp/bin/PHP/PHP3.5.6/"
Action application/x-httpd-PHP “/PHP/php-cgi.exe”

#另外,还要有之前的AddType application/x-httpd-PHP .PHP .PHP5 .PHP4 .PHP3 .phtml .PHPt,这样才能认识PHP格式的文件

#这样配置完可能还会因为权限问题而无法用php-cgi.exe解析PHP网页,所以还要加上下面这段

PHP/PHP5.3.6/">
AllowOverride None
Options None
Order allow,deny
Allow from all

官方并不建议你将Non Thread Safe 应用于生产环境,所以我们选择Thread Safe 版本的PHP来使用。
XAMPP在http-xampp.conf中认配置是使用ISAPI的方式

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...