原文地址:http://www.cnblogs.com/whoknows/articles/2425841.html
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由于基本没有生产线上的应用,还基本只是一款概念产品,很多功能已在PHP5.3.3上实现,所以也不详述,请无视PHP6。
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.3。
除了版本号的不同,同一版本号的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下:IIS7+NTS+FastCGI+vc9 是最佳搭档或者apache+fastcgi+nts+vc6。
在WINXP下:Apache+TS+Apache module +vc6最合适的搭档。
http://down.chinaz.com/server/201111/1329_1.htm
分享到:
相关推荐
本文将深入探讨PHP版本的选择,特别是针对PHP 5.3版本的VC9和VC6编译器版本,以及Thread Safe和Non Thread Safe版本的区别。 首先,我们来看PHP 5.3版本的VC9和VC6编译器版本。这两个版本主要的区别在于它们所使用...
Xdebug超集是包含了Xdebug对应多个不同PHP版本的DLL文件集合,这使得用户能够方便地找到适合自己PHP环境的Xdebug版本。 Xdebug的功能主要包括: 1. **断点调试**:在PHP代码中设置断点,当程序运行到这些位置时会...
- PHP 5.0:这是PHP的一个较早版本,Memcache扩展在该版本中可能仅支持基本功能。 - PHP 5.1至5.3:此阶段PHP逐渐成熟,Memcache扩展也进行了相应的优化和增强。 - PHP 5.4:这个版本引入了一些新的语言特性和性能...
**单身狗模式**,也被称作**霸体模式**,是PHPWAMP中一个独特的功能,用于隔离各个PHP环境,确保不同版本之间不会相互干扰。此模式下,每个PHP版本都有独立的配置文件和服务,可以单独启动或停止。 - **作用讲解**...
手册的前半部分可能包含了一些在旧版本中未被翻译的内容,这部分对于中文用户来说尤为珍贵,因为这意味着可以获取到原本只有英文版的手册中的知识,消除了语言障碍,让中文用户也能无差别地学习和理解PHP的原始设计...
因此,当使用TS版本的PHP时,PHP会进行线程安全检查,确保在多线程环境中各个线程的正常运行,避免出现数据竞争和资源冲突。然而,这种检查会带来一定的性能损耗。 非线程安全(None Thread Safe,NTS)版本的PHP则...
无论是在哪个版本,熟悉手册都是成为熟练PHP开发者的关键步骤。 6. **php手册-PHP5研究室编译(无乱码版本)**: PHP5进一步增强了面向对象的功能,引入了如魔术方法、命名空间和异常处理等新特性。这个无乱码版本...
在标签中,作者使用了“PHP PHP5 PHP版本 PHP新特性”等关键词,意味着文章将针对使用PHP5的开发者,并帮助他们了解不同版本间的具体区别和新增功能。 现在,我们来详细说明各个版本的新功能和新特性: ### PHP5.2...
不同版本之间可能存在细微差别。 2. **安全设置**:配置 PHP 时应考虑安全性问题,例如避免在生产环境中使用开发模式的错误报告。 3. **性能优化**:可以利用 PHP 的缓存机制来提高性能,例如使用 OpCache。 #### ...
2. PHP数组的操作:理解索引数组和关联数组的区别,掌握数组遍历、数组排序、数组合并与分割的方法。 3. 面向对象编程:掌握类和对象的概念,理解继承、封装、多态在PHP中的应用。 4. 错误和异常处理:了解PHP的错误...
从PHP的发展历史来看,从最早的个人主页工具集到PHP/FI,再到后续的各个版本,PHP一直在不断进化,以适应Web开发的变化和需求。通过不断地添加新特性、优化性能和修复已知问题,PHP成为了现代Web开发不可或缺的工具...
《PHP参考手册chn》是PHP初学者和开发者的重要参考资料,它包含了PHP语言的全面信息,包括函数、类、接口、语法、错误处理等各个方面。这个手册以中文版本提供,便于国内用户阅读和理解。 PHP...
8. **PHP经典实例**:"PHP经典实例 第二版.pdf"可能包含了大量的实际项目案例,涵盖Web开发的各个方面,通过学习这些实例,你可以了解如何将理论知识应用到实际问题中,提升解决问题的能力。 9. **源码之家说明.txt...
**题目:** 以下代码哪个不符合PHP语法? **选项:** A. `$_10` B. `${"MyVar"}` C. `&$something` D. `$10_somethings` E. `$aVaR` **答案:** D **解析:** PHP变量必须以美元符号`$`开头,后面跟着一个字母或...
最好的是,你可以选择你的PHP安装版本需要哪些功能。引用Nissan的Xterra的话来说就是PHP可以做到你想让它做到的一切而且无所不能! 1.3 竞争对手:ASP,mod_perl,JSP 我当然不清楚ASP/JSP能做些什么。不过明确的是...
我该使用哪个版本的 Kohana? 通常来说,很大程度上你应该以自己如何开发作为选择什么版本 Kohana的根本。诸如你如何使用框架以 及你曾经使用 Kohana和PH的经验 从哪个框架运行更快,更安全或者更稳定的立场米看,它们并...
这两个版本的 DLL 文件可能不兼容,选择哪个版本取决于你的 PHP 运行环境。通常,VC9 编译的 DLL 对应于 PHP 5.3 及更高版本,而 VC6 编译的适用于较旧的 PHP 版本。 **四、安装与配置** 安装 PHP memcache 扩展...
这两个版本的区别在于它们支持的操作系统架构不同:32位版本适用于32位的Windows系统,而64位版本则是为64位Windows系统设计的。用户应根据自己的计算机系统选择合适的版本进行解压和使用。 总的来说,"PHP集成环境...