宝哥软件园

如何选择PHP版本?我应该使用哪个版本?

编辑:宝哥软件园 来源:互联网 时间:2021-11-06

超过75%的网站使用PHP作为开发语言。wordpress、phpmyadmin等开源项目的普及带来了大量长尾用户。但是,它们在安装后很少升级。下图是目前PHP的使用情况统计。

令人惊讶的是,该图的左半部分显示了不再支持的PHP版本。PHP 5.2早在2011年1月就不再维护了。这并不意味着你不能使用它,但这意味着你不能跟进一些安全更新。有些发行版会尝试修复一些错误,但是您的PHP版本似乎有点乏善可陈,因为您使用的是2006年的过时技术。

我应该从哪里开始?

没有人选择PHP 5.2版本,但这些事情已经发生了,但我不是说我写这个博客是为了吐槽什么,更不是给你一些升级指南。通常他们从2006年开始使用一些主机空间,他们有一个“长期支持”的版本来避免使用更新的版本,或者他们目前没有升级的计划。或者,真的有很多原因。然而,好的东西在新版本的PHP中等待着你。

PHP 5.3增加了很多有用的OOP特性!例如,匿名函数和SPL扩展不仅是迭代器,而且神秘的DateTime扩展已经集成到PHP 5.3中。还添加了极其重要的错误报告标志E_DEPRECATED。它会提醒您,您现在使用的功能在下一个版本中将不可用。如果你已经在使用PHP 5.3,你未来的升级之路会更加顺畅。如果你有一个运行在较低版本的在线程序,我不建议升级。

PHP 5.4做了一系列优化,执行效率更快,占用内存更少。以下是基准测试的结果。

不管你是否使用了traits特性,PHP 5.4提高了程序性能,降低了硬件成本。所以,我建议你在使用开源软件的时候不断升级。

PHP 5.5还在测试中,不适合生产环境。从PHP 5.3开始,升级和改动的风险会大大降低。

以下是小麦同学整理的一篇文章。

大家在选择PHP版本的时候一定很困惑。这么多版本选哪个?

问题:

现在我们买了一台新服务器,使用的是windows server 2008 r2。配置php 5.4的环境。

然而,我们之前的开发是在2003年,PHP是在5.2版本。如果移植到新的服务器,会不会影响程序的运行?还是我需要注意那些问题?

API版本

PHP采用大版本向后兼容的升级模式,也就是5.5兼容5.1-5.4。尽管如此,兼容性并不乐观,你不应该指望PHP官方给出什么好的解决方案。现在2013年9月,版本是5.2.17 5.3.27 5.4.17 5.5.3。

5.2.17

这个版本可以说是支持面最广的版本。目前大部分开源软件都使用这个版本,比如Drupal7.23、Joomla2.5,国内大部分软件:dedecms5.7、discuzX3等。最新版本仍然支持5.2。如果没有特殊要求,安装这个版本是最省心省力的,但从长远来看最终可能会被放弃。目前很多主机厂商为了节省人工成本懒得升级PHP版本,反正基本都支持。(这里插一句,为了兼容更多的安装环境,国产软件用心良苦,连PHP5.1都可以支持(discuzX3不支持)。最难得的是它的性能并没有落后太多,所以真的不容易达到这样的极端!)Drupal6推荐这个版本。

5.3.28(建议)

虽然这个版本的名字是从5开始的,但是很多人认为它是PHP 6.0版本的开始,它的性能得到了提升。而且因为很多API都变了,跟5.2不是很兼容。虽然有些开源软件号称兼容5.2-5.3,但问题似乎很多,很多人干脆放弃5.2。比如Joomla3只支持5.3以上。这个版本强烈推荐给Drupal7,支持度相当不错。这个版本也可以用于Drupal8,支持度相当不错。这个版本被广泛使用,在性能和兼容性之间取得了很好的平衡。

5.4(温和推荐)

5.4基本上接近整体。现在比较完善,稳定性和性能也不错。德鲁巴7。x支持未来要升级的关键版本,但第三方模块并不完善。如果以后懒得升级,可以一步安装这个版本。

5.5

从5.3开始,以后的版本基本都是以性能提升为主,功能向后兼容。5.5开始好像有64位版本,功能更强大。没试过,不敢说话。

摘要

如果开源软件说建议安装PHP5.3,那么你应该老老实实用5.3而不是5.5。你可能会认为它无论如何都是兼容的,性能可能会更好。为什么不用新的呢?确实如此,但是你要知道开源软件在开发的时候,通常都是在特定的环境下开发的,即使兼容了,也会出现意想不到的意外(无论团队多么强大,也不可能测试所有功能API的兼容性,这是一个可怕的工作量!),只会在特定的环境下进行测试和优化,即使知道兼容性有问题,团队也不会为了与更高版本的兼容性进行修改,不是说它们死板,而是为了安全和稳定。在开源的氛围下,我们要有一个“适可而止”而不是“最新最好”的意识。比如Joomla3.1从5月4日到5月5日都不太好用,甚至安装都不成功。然而,Drupal也在5.5.3下正常运行(本地)。我觉得是个案?但操作中似乎出现了意想不到的错误。不知道是不是版本问题。希望不会。

无线程安全或线程安全

一般Apache选择无线程安全,IIS选择后者(FAST-CGI),我就不解释了,昕哥说的没错。

TS指的是线程安全,也就是线程安全,通常在ISAPI模式下加载IIS时选择。

也就是说,通常在快速cgi模式下运行时选择的NTS无线程安全,性能更好。

2000年10月20日发布的第一个Windows版本PHP3.0.17是线程安全版本,这是由于与采用多进程工作模式的Linux/Unix系统不同,Windows系统采用多线程工作模式。如果PHP在IIS下以CGI模式运行,会非常慢,因为CGI模式是基于多进程的,不是多线程的。一般PHP配置为在ISAPI模式下运行,ISAPI是多线程的,速度快很多。但是,有一个问题。很多常用的PHP扩展都是基于Linux/Unix的多进程思想开发的,这些扩展在ISAPI模式下运行会出错,会拖垮IIS。因此,CGI模式是IIS下运行PHP最安全的方式,但CGI模式需要为每个HTTP请求重新加载和卸载整个PHP环境,消耗巨大。

为了兼顾IIS下PHP的效率和安全性,微软给出了一个FastCGI的解决方案。FastCGI可以重用PHP进程,而不是每次有新的请求就重新打开一个进程。同时,FastCGI可以允许多个进程同时执行。这样既解决了CGI进程模式消耗过多的问题,又利用了CGI进程模式没有线程安全问题的优势。

因此,如果PHP是由ISAPI运行的,那么它必须使用线程安全的版本。在FastCGI模式下运行PHP时,不需要使用线程安全检查,使用无线程安全(NTS)版本可以更好地提高效率。

64位和32位。

如果你的系统是64位,选择64位;如果是32位,选择32位。辛哥,不要解释。

将来的

说实话,未来属于使用PHP5.4及以上的人。不断升级并定期跟踪语言的新功能和进步是我们日常工作的一部分。如果你已经落后了,那么我强烈建议你启动升级计划,升级到更新的版本。值得努力,毕竟程序运行了很多年。

更多资讯
游戏推荐
更多+