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年十一月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的功用和中卫,微软提交了Fast(Fast)CGI的解决方案。FastCGI可以让PHP的经过重复使用而不是每一个新的呼吁就重开一个过程。同时Fast(Fast)CGI也足以允许多少个经过同时举行。这样既解决了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最合适的通力合作。

 

如上黑色部分 即为我此次使用的环境,亲测无其余问题。 

style=”font-family: 新行书; color: blue”>欢迎参预技术分享群:238916811

 官方下载地址:

style=”line-height: 1.5″>http://www.php.net/downloads.php

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

网站地图xml地图