PHP 5.3 下载时 VC9、VC6、Thread Safe、Non Thread Safe 是什么意思?

来源: 60站长交易平台 日期: 2018-11-09 09:25:26 人气: -

我最近在 PHP 官网上看到又有新版的 PHP 下载了,于是上去找找 For Windows 的版本,可是一看确傻眼了,一共给了四个版本,VC9 x86 Non Thread Safe、VC9 x86 Thread Safe、VC6 x86 Non Thread Safe、VC6 x86 Thread Safe,这让我这个菜鸟头疼啊,还好 PHP 官网提供下载的地方左边有个英文 choose 我看懂了,我估摸着就是如何来选择(Select)版本的意思吧,于是开始查字典及上网查找,终于看明白了具体意思,拿来做个备忘先。


4a7a4004fcb6be36e8b279a1da3d0cd7_mark.jpg

    一、如何选择(Select) PHP5.3 的 VC9 版本和 VC6 版本


    VC6 版本是使用(use) Visual Studio 6 编译器编译的,如果你的 PHP 是用 Apache 来架设的,那你就选择(Select) VC6 版本。网站源码从字面意义上来讲,源文件是指一个文件,指源代码的集合。源代码则是一组具有特定意义的,可以实现特定功能的字符(程序开发代码)。网站源码也分为两种,一种是动态源码如:ASP,PHP,JSP,.NET,CGI等,一种是静态源码如:HTML等。


    VC9 版本是使用(use) Visual Studio 2008 编译器编译的,如果你的 PHP 是用 IIS 来架设的,那你就选择(Select) VC9 版本。


    二、如何选择(Select) PHP5.3 的 Thread Safe 和 Non Thread Safe 版本


    先从字面意思上理解,Thread Safe 是线程安全(safe),执行时会进行线程(Thread)安全巡查,以防止(fáng zhǐ)有新要求就启动新线程的 CGI 执行方式而耗尽系统(system)资源。Non Thread Safe 是非线程安全,在执行时不进行线程(Thread)安全检查。


    再来看 PHP 的两种执行方式:ISAPI 和 FastCGI。网站源码从字面意义上来讲,源文件是指一个文件,指源代码的集合。源代码则是一组具有特定意义的,可以实现特定功能的字符(程序开发代码)。网站源码也分为两种,一种是动态源码如:ASP,PHP,JSP,.NET,CGI等,一种是静态源码如:HTML等。


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


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


    再来看PHP的两种执行方式:ISAPI和FastCGI。网站源码从字面意义上来讲,源文件是指一个文件,指源代码的集合。源代码则是一组具有特定意义的,可以实现特定功能的字符(程序开发代码)。网站源码也分为两种,一种是动态源码如:ASP,PHP,JSP,.NET,CGI等,一种是静态源码如:HTML等。


    FastCGI执行方式是以单一线程来执行操作(operate),所以不需要进行线程的安全(safe)巡查,除去线程安全检查的防护(fánghù)反而可以提高执行效率(efficiency),所以,如果是以 FastCGI(无论搭配(collocation) IIS 6 或 IIS 7)执行 PHP ,都建议下载、执行 non-thread safe 的 PHP (PHP 的二进位档有两种包装方式:msi 、zip ,请下载 zip 套件)。


    而线程安全(safe)巡查正是为ISAPI方式的PHP准备的,因为有许多php模块都不是线程安全的,所以需要使用Thread Safe的PHP。


    所以,对于PHP5.2选择Thread Safe版本安装(ān zhuāng),而对于PHP5.3则下载None-Thread Safe,执行PHP比较有效率(efficiency)。


    另外,PHP还有VC6,VC9版本之分。


    VC6 版本是使用 Visual Studio 6 编译器编译的,如果你的 PHP 是用 Apache 来架设的,那你就选择(Select) VC6 版本。


    VC9 版本是使用 Visual Studio 2008 编译器编译的,如果你的 PHP 是用 IIS 来架设的,那你就选择(Select) VC9 版本。