天天看点

PHP中VC6、VC9、TS、NTS版本的区别与用法详解

<code>thread safe</code>(线程安全)是运行在apache上以模块的php上,如果你以cgi的模式运行php,请选择非线程安全模式(<code>non-thread safe</code>)。

1. vc6与vc9的区别:

vc6版本是使用visual studio 6编译器编译的,如果你的php是用apache来架设的,那你就选择vc6版本。

vc9版本是使用visual studio 2008编译器编译的,如果你的php是用iis来架设的,那你就选择 vc9版本。

vc9版本是针对iis服务器的版本,没有对apache的支持,而vc6版本对iis和apache都提供了支持

2.ts与nts的区别:

windows版的php从版本5.2.1开始有thread safe和nonethread safe之分。

先从字面意思上理解,thread safe是线程安全,执行时会进行线程(thread)安全检查,以防止有新要求就启动新线程的cgi执行方式而耗尽系统资源。non thread safe是非线程安全,在执行时不进行线程(thread)安全检查。

nts版本会有_nts后缀。官方并不建议你将non thread safe 应用于生产环境,所以我们选择thread safe (ts)版本的php来使用。

xampp在http-xampp.conf中默认配置是使用isapi的方式

3.php的两种执行方式:isapi和fastcgi。

isapi执行方式是以dll动态库的形式使用,可以在被用户请求后执行,在处理完一个用户请求后不会马上消失,所以需要进行线程安全检查,这样来提高程序的执行效率,所以如果是以isapi来执行php,建议选择threadsafe版本;

而fastcgi执行方式是以单一线程来执行操作,所以不需要进行线程的安全检查,除去线程安全检查的防护反而可以提高执行效率,所以,如果是以fastcgi来执行php,建议选择nonthread safe版本。

通过phpinfo(); 查看其中的 thread safety 项,这个项目就是查看是否是线程安全,如果是:enabled,一般来说应该是ts版,否则是nts版。

apache中的配置方式:

php版本区分ts和nts,其插件也区分。这点要注意。插件区分php版本(一般是大版本,如5.4,5.5)和ts版本。

例如ts版本插件配置(以php5.4版本为例):

nts版本插件配置:

上一篇: vsftp