PHP多个版本的分析解释

张开发
2026/5/19 7:21:03 15 分钟阅读
PHP多个版本的分析解释
PHP版本主要分三支PHP4/PHP5/PHP6其中PHP4由于太古老、对OO支持不力已基本被淘汰就不在详述。而PHP6由于基本没有生产线上的应用还基本只是一款概念产品所以也不详述。PHP5的版本主要分三支PHP5.2之前的版本、PHP5.2.X和PHP5.3那我们应该如何选择适用自己项目的版本呢PHP5.2之前的版本不值得考虑因为某些功能缺陷或者BUG。主流PHP程序对PHP5.2.X的兼容性最好而每次版本号的升级带来的都是安全性和稳定性的改善所以宜挑选最新的版本。目前PHP5.2系列最新的是PHP5.2.14而如果产品是自己开发自己使用PHP5.3在某些方面更具优势在稳定性上更胜一筹增加了很多PHP5.2所不具有的功能比如内置php-fpm、更完善的垃圾回收算法、命名空间的引入、sqlite3的支持等等是部署项目值得考虑的版本。除了版本号的不同同一版本号的PHP版本也有区别并且在选择PHP扩展的时候需要注意。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 PHPIf you are using PHP with IIS you should use the VC9 versions of PHPVC6 Versions are compiled with the legacy Visual Studio 6 compilerVC9 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) installedDo NOT use VC9 version with apache.orgbinarieshttp://dev.meettea.com我该选择哪个版本如果你在apache1或者apache2下使用PHP你应该选择VC6的版本如果你在IIS下使用PHP应该选择VC9的版本VC6的版本使用visual studio6编译VC9使用Visual Studio 2008编译并且改进了性能和稳定性。VC9版本的PHP需要你安装Microsoft 2008 C Runtime不要在apache下使用VC9的版本TS和NTSTS指Thread Safety即线程安全一般在IIS以ISAPI方式加载的时候选择这个版本。NTS即None-Thread Safe一般以fast cgi方式运行的时候选择这个版本具有更好的性能。下面给点资料来源于 http://koda.javaeye.com/blog/662034从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是NTSenabled是TSConfigure Command看到VC98字样的是VC6Compiler标明 MSVC9 (Visual C 2008) 的是VC9另外顺带讲讲windows下比较简洁方便的PHP配置方法网上教的什么复制php.ini到windows目录、复制xxxxx.dll到system32下太丑陋了。1、下载zip版本的PHP2、下载好相应的扩展修改好php.ini添加模块映射3、环境变量里PATH加上PHP存放的目录。只要一个就够了/bin和/ext不需要加。4、环境变量里定义一个PHPRC变量内容为PHP.INI的存放路径。完毕。很多文章提及需要重启系统可是从我遇上的情况来看并无必要最多重启web服务。如果你是linux下用就无视本文吧。修订 2010-11-03看了白菜(aiyooyoo.com)的修订IIS安装php-cgi3、4两步可以省略ISAPI方式需要。起名叫windows下的PHP版本的讲解更合适

更多文章