欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-11-27 11:54:37
vc6:legacy visual studio 6 compiler,就是使用这个编译器编译的。vc9:visual studio 2008 compiler,就是用微软...

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网页,所以还要加上下面这段

<directory "c:/wamp/bin/php/php5.3.6/">
    allowoverride none
    options none
    order allow,deny
    allow from all
</directory>
官方并不建议你将non thread safe 应用于生产环境,所以我们选择thread safe 版本的php来使用。
xampp在http-xampp.conf中默认配置是使用isapi的方式