软件指南针:专注于软件传播与分享

如何选择PHP版本详解

来源:原创 1354次浏览 0条评论
☞ 本文主要介绍软件PHP的相关内容:如何选择PHP版本详解

   其下列版本/分支可以参考本文:

  • 全部版本/分支

众所周知,PHP有各种各样的版本。

按照操作系统分区,PHP又可分为Windows、Mac OS X、Linux等多个版本。

按照版本号区分,PHP有1.0、2.0、3.0、4.0、5.0等多个主要版本,每个主要版本又分为许多次要版本,例如:4.4.9、5.3.28、5.4.27以及目前最新的正式发行版5.5.11。

按照编译器版本区分,PHP又分为VC6、VC9、VC10、VC11等版本。

按照系统位数区分,PHP又有32位和64位之分。

按照线程安全性区分,PHP又分为非线程安全(Non-Thread Safe)和线程安全(Thread Safe)版本。

PHP之所以提供这么多的版本,是为了让我们能够根据实际需要,选择最适合自己的PHP版本,以便于更好地契合当前的软硬件环境,从而获得更好的安全性、稳定性以及运行性能。

1、如何选择PHP的操作系统版本

这个应该就不用多说了,你的服务器是什么操作系统,就选择对应操作系统版本的PHP。

2、如何选择PHP的版本号

一般而言
我们建议大家选择尽量新的版本,以便于获得更好的运行性能、安全性以及稳定性,此外也有利于开发人员使用PHP的新特性来简化程序设计和代码开发工作。

过时的功能特性限制
值得注意的是,PHP并不是一门完全向后兼容的语言。因此,如果你的PHP程序中使用了只有某些旧版本才具备的功能特性,并且升级到新版本的改动量较大(你也不愿意耗费大量资源再去改动这些代码),我们还是建议你保持之前的版本。当然,你仍然可以进行小幅度地更新,譬如你之前使用的是PHP 5.3.1,那么现在使用5.3.x中最新的5.3.28是个不错的选择,毕竟PHP在小版本范围内的改进一般都是相互兼容的,每次小版本的更新都是对稳定性和安全性的改善。

旧版本的操作系统限制
PHP是一门与时俱进的语言,为了能够更好地配合最新的软硬件工作,PHP会在新版本中放弃对某些旧版本操作系统的支持,如下面的表格所示。

PHP起始版本 不再支持的操作系统版本
PHP 4.3.0 Windows 95
PHP 5.3.0 Windows 98/ME/NT4/2000
PHP 5.5.0 Windows XP/Server 2003

如果你的服务器操作系统恰好年岁已大,那么我们只能遗憾地建议你,在支持当前操作系统版本的前提下,尽量选择较新的PHP版本号。

3、如何选择PHP的编译版本

PHP VC6指的是使用Visual Studio 6的编译器对PHP源代码进行编译所生成的PHP版本(Visual Studio 6包含VC++ 6)。同理,VC9 对应的是Visual Studio 2008的编译器;VC10 对应的是Visual Studio 2010的编译器,VC11 对应的是Visual Studio 2012的编译器。

对于此,一般的建议是PHP的编译版本与服务器的编译版本保持一致。例如:如果你使用的服务器是Apache Windows安装版,由于该软件使用的是VC6编译,因此你也应该使用PHP的VC6编译版本。如果你使用的是服务器是VC9编译,你也应该使用PHP的VC9编译版本。

简而言之,对于Apache Windows 安装版(.msi),则使用PHP VC6;
对于Apache的其他版本,文件名中一般都带有"VCx"字样,请选择PHP的对应编译版本。
对于IIS 6服务器,你可以选择VC6或VC9;
对于IIS 7+或PHP 5.3+,则应该选择VC9。

备注:上述内容属于PHP官方的建议,不过在实际使用中,笔者在Apache Windows安装版上集成PHP 5.4.27 VC9,也一直能够正常运行,并且至今没有出现任何兼容性问题(Win XP、Win 7 上均是如此)。当然,如果是在正式都生产环境中,我们仍然建议大家严格遵守官方的版本要求。

4、如何选择PHP的系统位数版本

一般而言,64位比32位具有更高的运行效率,在其他软硬件许可的情况下,尽量使用64位版的PHP。

5、如何选择PHP的线程安全版本

由于不同的服务器使用不同的技术实现来并行处理接收到的HTTP请求。比如,有些服务器使用多线程技术,有些使用多进程技术,有些使用多线程和多进程的混合技术。

PHP采用非线程安全版本还是线程安全版本,主要取决于与其集成的服务器所采用的运行机制。如果服务器本身就已经做好了所有的线程安全工作,那么就不需要PHP来重复浪费"体力";如果服务器本身无法避免线程安全问题,那么就应该让PHP来完成这部分工作。

就一般情况而言,如果PHP与Apache进行集成,并且是以Apache模块的方式运行,则应该选择Thread Safe版本。

如果PHP与IIS进行集成,由于IIS一般采用Fast CGI的方式来运行PHP,则应该选择Non-Thread Safe版本。

作者:软件指南针(http://www.softown.cn),转载请保留出处!

用户评论

使用指南 故障排除 0 返回顶部