编辑:小麦

当您选择PHP版本时,您一定感到困惑。你会选择它的许多版本吗

问题:

我们现在正在使用Windows Server 2008 R2来购买一个新服务器,配置PHP 5.4的环境。

但是,我们以前开发的2003,PHP的使用将被移植到一个有5.2个版本的新服务器上。是否会对程序运行产生影响还是我需要注意这些问题

API版本

PHP使用一个大版本升级的向下兼容的方式,也就是说,5.1-5.4 5.5兼容,但事实上,兼容性不乐观。别指望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开头,但很多人认为是对性能的php6.0版本开始有所改善,但由于很多API都变成5.2的兼容性不是很好,虽然有了开源软件,兼容六十零的一部分,但问题似乎有很多,很多简单的放弃5.2。例如,joomla3只支持超过5.3.for drupal7的版本,强烈推荐,和支持很好。这个版本也可以用于drupal8,和支持是非常好的。这个版本的广泛应用,使得性能和兼容性之间的良好平衡。

5.4(轻轻推荐)

5.4,基本上,它已经接近于完整性。现在它是完美的,稳定的,性能很好。未来的版本升级的关键支撑drupal7。X,但第三方模块还不完善。如果你是懒惰的升级后,你可以在一个步骤中安装此版本。

五点五

从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),我不解释,信哥哥是正确的。

小补充:2003在系统中,我们一般使用ISAPI加载,如果系统是2008或更快速的CGI模式。

复制代码代码如下所示:

TS是线程安全的,它是线程安全的,一般选择这个版本的IIS的ISAPI模式加载。

NTS是无线程安全的,通常运行在快速CGI模式下,并选择具有更好性能的版本。



对php3.0.17在2000年10月20日推出第一个Windows版本开始是线程安全的版本,不同的是,在多的方式从Linux / Unix系统流程。Windows系统是一个多线程的工作方式。在IIS下运行PHP的CGI模式将非常缓慢,因为CGI模式是基于多进程而不是线程。一般来说,我们将配置PHP运行在一个ISAPI方式,服务器是多线程的方式,这是非常快的。但是有一个的问题,很多常用的PHP扩展的Linux / Unix思想多进程的发展,这些扩展将通过IIS ISAPI是在错误的运行方式。因此,在IIS下运行PHP,CGI模式是最安全的方式,但CGI模式需要重新加载和卸载整个PHP环境的每一个HTTP的要求,其消耗是巨大的。



为了兼顾效率和PHP在IIS的安全,微软给了一个解决的fastcgi.fastcgi可以重复使用PHP的过程不是每一个新的要求。同时,FastCGI也可以让多个进程同时被执行。这不仅解决了CGI程序模式过于昂贵的问题,而且利用CGI程序模式不在线程安全问题存在的优势。



因此,如果你正在使用ISAPI运行PHP必须使用线程安全的(线程安全版本);如果没有必要使用线程安全检查使用FastCGI模式PHP,没有线程安全的(NTS,非线程安全的)版本可以更好的提高效率。



64位和32位的选择

你的系统是64选择64,32是选择32,没有解释,信哥。

小编辑:在很多情况下,我们不能保证我们在IIS中加载的所有软件都是64位的,有些软件必须兼容32种格式。