PHP版本的区别

原文:PHP版本的区别

以为这个已经写过了,发现没有,赶紧补充下。

PHP的版本,自从进入5以后,发布新版本速度明显提升很多,从PHP5.2开始,5.3 、5.4 、5.5,就快要6.0了。

注:ecshop用户请自觉使用php5.2.17版本。呵呵。

在php官网下载php时,我们会发现有vc6、vc9的区别,这是什么意思呢?

VC6是legacy Visual Studio 6 compiler,使用这个版本的编译器编译PHP代码的,使用apache做应用程序服务器,则选择vc6。

VC9是the Visual Studio 2008 compiler,就是用微软的VS编辑器编译的。使用IIS做应用程序服务器,则选择vc9。

那么,我们注意到,php-5.2.17-nts-Win32-VC6-x86.zip php的解压文件中,有nts和没有nts的区别,这个又是什么意思呢?

这要从php的5.2系列版本说起。从5.2.1版本开始,就有ts和nts的区别,Thread Safe(线程安全)和None Thread Safe(NTS,非线程安全)

Windows版的PHP从版本5.2.1开始有Thread Safe(线程安全)和None Thread Safe(NTS,非线程安全)之分,这两者不同在于何处?到底应该用哪种?这里做一个简单的介绍。

从2000年10月20日发布的第一个Windows版的PHP3.0.17开始的都是线程安全的版本,这是因为Linux/Unix系统是采用多进程的工作方式,而Windows系统是采用多线程的工作方式。如果在IIS下以CGI方式运行PHP会非常慢,因为CGI模式建立在多进程的基础之上,而不是多线程。我们在windows上会把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,非线程安全)的版本能够更好的提高效率。

根据不同的webserver,也就是应用程序服务器,在处理应用请求的时候,有些是用多线程而非多进程的方式,那么由于线程会牵扯到共享寄存器和内存方面的,所以很容易出错(考虑c语言指针的情况),那么系统就需要时间和资源来处理寄存器中的数据,保证它们的一致性,也就是保证线程安全了。

所以是否使用Thread Safe(线程安全),主要看web server所采用的PHP请求处理方式,如果是多线程处理如IIS的ISAPI方式,那么请选择线程安全,如果是FastCGI那么选择非线程安全。

最终建议:IIS下,使用ISAPI方式运行PHP,就使用Thread Safe(线程安全)的版本,使用FastCGI方式运行PHP,就使用None Thread Safe(NTS,非线程安全)的版本。

注:php5.2没有vc9,php5.3、php5.4没有vc6。呵呵。PHP5.5开始,不支持xp和win2003了,更是vc11了,呵呵呵呵。

一般来说,我喜欢使用解压配置版本,更能了解PHP的设置和文件。有c语言基础的同仁可以下载源码看看,说不定更有所心得。

时间: 2024-09-20 00:14:44

PHP版本的区别的相关文章

python-Python的2.7从2.7.4到2.7.11有好多版本,区别大吗,下载哪一个要好一些?新手,谢谢

问题描述 Python的2.7从2.7.4到2.7.11有好多版本,区别大吗,下载哪一个要好一些?新手,谢谢 Python的2.7从2.7.4到2.7.11有好多版本,区别大吗,下载哪一个要好一些?新手,谢谢谢谢 解决方案 大版本都是2.7.主要是一些bug修复.功能没有什么新添加.不过可以的话就上到最新的 解决方案二: 一般来说前两个版本号是基本的架构,后后面的号码则是修补的一些bug,并没有大的区别,但并不是越新越好,对于我们普通用户来说,基本没有区别 解决方案三: 新手应该学2.7版本的吧

Python3.0与2.X版本的区别实例分析_python

本文通过列举出一些常见的实例来分析Python3.0与2.X版本的区别,是作者经验的总结,对于Python程序设计人员来说有不错的参考价值.具体如下: 做为一个前端开发的码农,最近通过阅读最新版的<A byte of Python>并与老版本的<A byte of Python>做对比后,发现Python3.0在某些地方还是有些改变的.之后再查阅官方网站的文档,总结出一下区别: 1. 如果你下载的是最新版的Python,就会发现所有书中的Hello World例子将不再正确. Py

VisualStudio.Net三个版本的区别

visual|区别 From MSDN: http://msdn.microsoft.com/vstudio/prodinfo/purchase/features.asp A = Visual Studio .NET Enterprise Architect Edition  D = Visual Studio .NET Enterprise Developer Edition  P = Visual Studio .NET Professional Edition    3个版本的不同特性,以

各个win 7系统版本的区别

  1.Windows 7 Starter(初级版) Windows 7 Starter是微软针对netbook即轻便和低配置的笔记本电脑设计的,这是个版本的功能最少,对Aero特效功能进行了精简,同时也不支持64位支持,不过它可以执行任何Windows任务.该系统不能对桌面背景进行更换,而且没有Windows媒体中心和移动中心等一些功能.它主要通过系统集成或者OEM计算机上预装获得,同时系统对计算机的硬件也有一定的限制. 2.Windows 7 Home Basic(家庭普通版) Window

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中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

Windows Server 各个版本的区别

windows server 2008版本区别及价格 每个Windows Server 2008 R2版本都提供了关键功能,用于支撑各种规模的业务和IT需求.点击以下的Logo或提供的链接,深入了解更多关于每个版本的知识. Windows Server 2008 R2 Foundation是一种成本低廉的项目级技术基础,面向的是小型企业主和IT多面手,用于支撑小型的业务.Foundation是一种成本低廉.容易部署.经过实践证实的可靠技术,为组织提供了一个基础平台,可以运行最常见的业务应用,共享

PHP 线程安全与非线程安全版本的区别深入解析_php技巧

从2000年10月20日发布的第一个Windows版的PHP3.0.17开始的都是线程安全的版本,这是由于与Linux/Unix系统是采用多进程的工作方式不同的是Windows系统是采用多线程的工作方式.如果在IIS下以CGI方式运行PHP会非常慢,这是由于CGI模式是建立在多进程的基础之上的,而非多线程. 一般我们会把PHP配置成以ISAPI的方式来运行,ISAPI是多线程的方式,这样就快多了.但存在一个问题,很多常用的PHP扩展是以Linux/Unix的多进程思想来开发的,这些扩展在ISAP

win2003不同版本的区别

第1种版本: Windows Server 2003 Web Edition 硬件支持:2GB内存 2路处理器 硬件支持, 特点:针对Web服务进行优化.仅能够在AD域中做成员服务器,不能做DC域控制器. 第2种版本: Windows Server 2003 Standard Edition 硬件支持:4GB内存 4路处理器 特点:针对中小型企业.具备除元目录服务(MMS)支持.终端服务会话目录.集群服务以外的所有服务功能 第3种版本: Windows Server 2003 Enterpris