PHP版本VC6与VC9/VC11/VC14、Thread Safe与None-Thread Safe等的区别

原文:PHP版本VC6与VC9/VC11/VC14、Thread Safe与None-Thread Safe等的区别

       最近正好在弄一个PHP的程序,在这之前一直没有怎么以接触,发现对PHP版本知识了解不是很清楚,自己看了不少类似的文章,还是感觉不够明确和全面,

       网上的结论又都是模棱两可,在此,给出最完整甚至武断的解释。(内面部分内容是摘自其它程序员的博文)

      本文讲解:VC6与VC9,Thread Safety与None-Thread Safe,Apache module与fastcgi的区别与选择。

    PHP的大版本主要分支:PHP4/PHP5/PHP7(PHP6官方没有)

  其中,PHP4由于太古老、对OO支持不力已基本被淘汰,请无视PHP4。

  PHP6/PHP7由于基本没有生产线上的应用,还基本只是一款概念产品,很多功能已在PHP5.3.3上实现,所以也不详述,请无视PHP6/7。

  PHP5的版本主要分四支:PHP5.2之前的版本、PHP5.2.X、PHP5.3和日前发布的PHP5.4。

   那我们应该如何选择适用自己项目的版本呢?

      PHP5.2之前的版本不值得考虑,因为某些功能缺陷或者BUG,PHP5.2之前的版本。PHP5.4还处于Beta试用的版本号,非稳定版本,请无视PHP5.4。

  主流PHP程序对PHP5.2.X的兼容性最好,而每次版本号的升级带来的都是安全性和稳定性的改善,所以宜挑选最新的版本。目前PHP5.2系列最新的是PHP5.2.17。

  而如果产品是自己开发自己使用,PHP5.3在某些方面更具优势,在稳定性上更胜一筹,增加了很多PHP5.2所不具有的功能,比如内置php-fpm、更完善的垃圾回收算法、命名空间的引        入、sqlite3的支持等等,是部署项目值得考虑的版本,强烈推荐PHP5.3.29。(这是5.3 的最后一个版本)

     php5.6 、php5.5对应vc11 

     php5.4 对应VC9

     官方上之前的版本已没有了。 

  除了版本号的不同,同一版本号的PHP版本也有区别,并且在选择PHP扩展的时候需要注意。

    • install版:可执行的MSI格式安装包。
    • ZIP版:解压即可用。和install版无区别。建议选择ZIP版。
    • DEBUG版:请无视。

  VC6与VC9

   对于VC6还是VC9版本的选择,PHP官方网站有详细的描述,原文如下:

Which version do I choose?  If you are using PHP with Apache 1 or Apache2 from apache.org you need to use the VC6 versions of PHP If you are using PHP with IIS you should use the VC9 versions of PHP VC6 Versions are compiled with the legacy Visual Studio 6 compiler VC9 Versions are compiled with the Visual Studio 2008 compiler and have improvements in performance and stability. The VC9 versions require you to have the Microsoft 2008 C++ Runtime (x86) or the Microsoft 2008 C++ Runtime (x64) installed Do NOT use VC9 version with apache.org binaries
我该选择哪个版本?  如果你在apache1或者apache2下使用PHP,你应该选择VC6的版本 如果你在IIS下使用PHP应该选择VC9的版本 VC6的版本使用visual studio6编译 VC9使用Visual Studio 2008编译,并且改进了性能和稳定性。VC9版本的PHP需要你安装Microsoft 2008 C++ Runtime 不要在apache下使用VC9的版本

TS和NTS

TS指Thread Safety,即线程安全,一般在IIS以ISAPI方式加载的时候选择这个版本。

NTS即None-Thread Safe,一般以fast cgi方式运行的时候选择这个版本,具有更好的性能。

  从2000年10月20日发布的第一个Windows版的PHP3.0.17开始的都是线程安全的版本,这是由于与Linux/Unix系统是采用多进程的工作方式不同的是Windows系统是采用多线程的工作方式。如果在IIS下以CGI方式运行PHP会非常慢,这是由于CGI模式是建立在多进程的基础之上的,而非多线程。一般我们会把PHP配置成以ISAPI的方式来运行,ISAPI是多线程的方式,这样就快多了。但存在一个问题,很多常用的PHP扩展是以Linux/Unix的多进程思想来开发的,这些扩展在ISAPI的方式运行时就会出错搞垮IIS。因此在IIS下CGI模式才是 PHP运行的最安全方式,但CGI模式对于每个HTTP请求都需要重新加载和卸载整个PHP环境,其消耗是巨大的。

  为了兼顾IIS下PHP的效率和安全,微软给出了FastCGI的解决方案。FastCGI可以让PHP的进程重复利用而不是每一个新的请求就重开一个进程。同时FastCGI也可以允许几个进程同时执行。这样既解决了CGI进程模式消耗太大的问题,又利用上了CGI进程模式不存在线程安全问题的优势。

  因此,如果是使用ISAPI的方式来运行PHP就必须用Thread Safe(线程安全)的版本;而用FastCGI模式运行PHP的话就没有必要用线程安全检查了,用None Thread Safe(NTS,非线程安全)的版本能够更好的提高效率。

如何查看当前运行的PHP的版本?一个很简单的办法就是phpinfo();

Thread Safety disabled是NTS,enabled是TS

Configure Command看到VC98字样的是VC6,Compiler标明 MSVC9 (Visual C++ 2008) 的是VC9

在WIN7 win2008 下:IIS7+NTS+FastCGI+vc9 是最佳搭档或者apache+fastcgi+nts+vc6。

在WINXP下:Apache+TS+Apache module +vc6最合适的搭档。

 

以上红色部分 即为我本次使用的环境,亲测无任何问题。 

欢迎加入技术分享群:238916811

 官方下载地址:

http://www.php.net/downloads.php

http://down.chinaz.com/server/201111/1329_1.htm

时间: 2025-01-01 15:15:45

PHP版本VC6与VC9/VC11/VC14、Thread Safe与None-Thread Safe等的区别的相关文章

php vc6 vc9:PHP版本VC6与VC9、Thread Safe与None-Thread Safe等的区别

最近发现很多PHP程序员对PHP版本知识了解不是很清楚,自己也看了不少类似的文章,还是感觉不够明确和全面,网上的结论又都是模棱两可,在此,给出最完整甚至武断的解释.本文讲解:VC6与VC9,Thread Safety与None-Thread Safe,Apache module与fastcgi的区别与选择.PHP的大版本主要分三支:PHP4/PHP5/PHP6其中,PHP4由于太古老.对OO支持不力已基本被淘汰,请无视PHP4.PHP6由于基本没有生产线上的应用,还基本只是一款概念产品,很多功能

PHP版本VC6和VC9、Non Thread Safe和Thread Safe的区别

链接:http://www.cnblogs.com/neve/articles/1863853.html 想更新个PHP的版本,PHP的windows版本已经分离出来了,见http://windows.php.net/download/,但是上面有很多不同的版本,包括VC9, VC6,  x86 Non Thread Safe, x86 Thread Safe, 好像没有x64版本的,(现在特别喜欢用64位的软件),版本有点多,主要的区别和如何选择不同的版本如下: If you are usin

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

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)安全检查,以防止有新要求就启动新

PHP 5.3 下载时 VC9、VC6、Thread Safe、Non Thread Safe的区别分析

一共给了四个版本,VC9 x86 Non Thread Safe.VC9 x86 Thread Safe.VC6 x86 Non Thread Safe.VC6 x86 Thread Safe,这让我这个菜鸟头疼啊,还好 PHP 官网提供下载的地方左边有个英文 choose 我看懂了,我估摸着就是如何来选择版本的意思吧,于是开始查字典及上网查找,终于看明白了具体意思,拿来做个备忘先. 一.如何选择 PHP5.3 的 VC9 版本和 VC6 版本 VC6 版本是使用 Visual Studio 6

PHP 5.3的VC9、VC6、Thread Safe、Non Thread Safe有什么区别

PHP一共给了四个版本,VC9 x86 Non Thread Safe.VC9 x86 Thread Safe.VC6 x86 Non Thread Safe.VC6 x86 Thread Safe,这让我这个菜鸟头疼啊,还好 PHP 官网提供下载的地方左边有个英文 choose 我看懂了,我估摸着就是如何来选择版本的意思吧,于是开始查字典及上网查找,终于看明白了具体意思,拿来做个备忘先. 一.如何选择 PHP5.3 的 VC9 版本和 VC6 版本 VC6 版本是使用 Visual Studi

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

Thread safe(线程安全)是运行在Apache上以模块的PHP上,如果你以CGI的模式运行PHP,请选择非线程安全模式(non-thread safe). 1. VC6与VC9的区别: VC6版本是使用Visual Studio 6编译器编译的,如果你的PHP是用Apache来架设的,那你就选择VC6版本. VC9版本是使用Visual Studio 2008编译器编译的,如果你的PHP是用IIS来架设的,那你就选择 VC9版本. VC9版本是针对IIS服务器的版本,没有对APACHE的

PHP 5.3 下载时 VC9、VC6、Thread Safe、Non Thread Safe的区别分析_php技巧

一共给了四个版本,VC9 x86 Non Thread Safe.VC9 x86 Thread Safe.VC6 x86 Non Thread Safe.VC6 x86 Thread Safe,这让我这个菜鸟头疼啊,还好 PHP 官网提供下载的地方左边有个英文 choose 我看懂了,我估摸着就是如何来选择版本的意思吧,于是开始查字典及上网查找,终于看明白了具体意思,拿来做个备忘先. 一.如何选择 PHP5.3 的 VC9 版本和 VC6 版本 VC6 版本是使用 Visual Studio 6

PHP5.3的VC9、VC6、Thread Safe、Non Thread Safe的区别

PHP5.3的VC9.VC6.Thread Safe.Non Thread Safe的区别 PHP一共给了四个版本,VC9 x86 Non Thread Safe.VC9 x86 Thread Safe.VC6 x86 Non Thread Safe.VC6 x86 Thread Safe,这让我这个菜鸟头疼啊,还好 PHP 官网提供下载的地方左边有个英文 choose 我看懂了,我估摸着就是如何来选择版本的意思吧,于是开始查字典及上网查找,终于看明白了具体意思,拿来做个备忘先. 一.如何选择

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

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和NoneThr