PHP版本区别

[2]  PHP版本VC6与VC9、Thread Safe与None-Thread Safe等的区别

PHP的大版本主要分三支:PHP4/PHP5/PHP6

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

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

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

选择版本

PHP5.2之前的版本不值得考虑,因为某些功能缺陷或者BUG。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

如果你在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,非线程安全)的版本能够更好的提高效率。

查看版本

一个很简单的办法就是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最合适的搭档。

时间: 2024-09-18 06:27:01

PHP版本区别的相关文章

OJDBC版本区别 [ojdbc14.jar,ojdbc5.jar和ojdbc6.jar的区别]

http://blog.163.com/[email protected]/blog/static/1820473820123206189381/ OJDBC版本区别 [ojdbc14.jar,ojdbc5.jar和ojdbc6.jar的区别] 2012-04-20 18:18:09|  分类: java参考资料|举报|字号 订阅 下载LOFTER我的照片书  | 在使用Oracle JDBC驱动时,有些问题你是不是通过替换不同版本的Oracle  JDBC驱动来解决的?最常使用的ojdbc14

Debug与Release版本区别

Debug与Release版本区别 Debug版本就是调试版本,Visual C++ 6.0默认的就是Debug版本.在Debug版本中,可以使用单步执行.跟踪等功能,但其生成的可执行文件比较大,代码运行比较慢.Release版本就是发行版本,其运行速度较快,可执行文件较小,但在其编译条件下无法执行调试功能.     还有一点,Release版本的exe文件链接的目标是标准的MFC DLL(Use MFC in a shared or static dll).比如MFC42.DLL.这些DLL在

java版本区别

java版本区别 点我,点我,Eclipse几个版本号的区别(part1) 点我,点我,Eclipse几个版本号的区别(part2) 点我,点我,Eclipse几个版本号的区别(part3)

nginx的Mainline version、Stable version、Legacy version的版本区别

nginx的Mainline version.Stable version.Legacy version的版本区别 创建时间:2014-01-16 10:30:37最后修改:2014-09-23 20:13:44 Nginx官网提供了三个类型的版本Mainline version:Mainline 是 Nginx 目前主力在做的版本,可以说是开发版Stable version:最新稳定版,生产环境上建议使用的版本Legacy versions:遗留的老版本的稳定版 nginx下载地址:http:

Mysql 各个版本区别及官网下载

Mysql各个版本区别及官网下载 一.Mysql 各个版本区别: 1.MySQL Community Server 社区版本,开源免费,但不提供官方技术支持. 2.MySQL Enterprise Edition 企业版本,需付费,可以试用30天. 3.MySQL Cluster 集群版,开源免费.可将几个MySQL Server封装成一个Server. 4.MySQL Cluster CGE 高级集群版,需付费. 5.MySQL Workbench(GUI TOOL)一款专为MySQL设计的E

Neutron Kilo-Liberty-Mitaka各版本区别

作者: 赵怡 一.Neutron Kilo版和Liberty版本主要区别: 新增的特性: 1. neutron支持IPv6前缀委托授权为IPv6子网分配CIDR 2. neutron支持QoS API, 初期只支持端口带宽限制 3.路由器HA (L3 HA/VRRP)在L2 population(l2_pop)设置为enable时, 可以正常工作了. 4. VPNaaS参考驱动现在可以和HA router一起正常工作了 5. HA路由器上使用的VRRP网络, 可以配置为特定的segmentati

Python2.x与3??.x版本区别

Python2.x与3??.x版本区别 Python的3??.0版本,常被称为Python 3000,或简称Py3k.相对于Python的早期版本,这是一个较大的升级. 为了不带入过多的累赘,Python 3.0在设计的时候没有考虑向下相容. 许多针对早期Python版本设计的程式都无法在Python 3.0上正常执行. 为了照顾现有程式,Python 2.6作为一个过渡版本,基本使用了Python 2.x的语法和库,同时考虑了向Python 3.0的迁移,允许使用部分Python 3.0的语法

PEP8风格和python版本区别

python解释器 官方Cpython C语言开发,最广泛的Python解释器 IPython 一个交互式,功能增强的Cpython PyPy Python语言写的Python解释器,JIT技术,动态编译Python代码 Jython Python的源码编译成Java的字节码,跑在JVM上 IronPython 与Jython类似,运行在.Net平台上的解释器,Python代码被编译成.Net的字节码 版本区别 2.X和3.X区别 语句函数化,例如print(1,2)打印出1 2,但是2.x中意

CentOS 7 镜像文件各个版本区别

CentOS ISO 镜像文件的功能 引导安装 CentOS ISO 镜像文件包含有安装程序,官方称其为 Anaconda,用来引导安装 CentOS 提供 CentOS 的安装文件 镜像文件不一定包含我们安装所需要 CentOS,可能只有安装程序,用以引导安装 提供额外软件 不只是在安装过程中可以提供额外软件,在已经安装使用的系统中也可以挂载该 ISO 镜像文件,使用其中的软件安装包 修复 CentOS 也就是我们常说的光盘救援系统 CentOS 7 镜像文件各个版本区别 CentOS 7 有

查看Eclipse版本号的方法及各个版本区别 Eclipse选择标准

这篇文章主要介绍了查看Eclipse版本号的方法及各个版本区别 Eclipse选择标准,方便初学者选择适合自己的版本,需要的朋友可以参考下 Eclipse 是一个开放源代码的.基于Java的可扩展开发平台.就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境.幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK). 查看Eclipse版本号的方法 1. 找到eclipse安装目录 2. 进入readme文件夹,打