我可以从PHP 5.3.10迁移到PHP 5.6.0吗?

时间:2014-08-30 06:38:41

标签: php php-5.3 porting php-5.6

我基本上是PHP开发人员。我目前在本地计算机上使用 Ubuntu Linux 12.04 LTS

我正在使用以下PHP版本来开发我的PHP项目:

php -v //command run at terminal to know the `PHP` version installed

PHP 5.3.10-1ubuntu3.13 with Suhosin-Patch (cli) (built: Jul  7 2014 18:54:55) 
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies

现在几天前,PHP开发团队发布了PHP 5.6.0版本PHP的最新稳定版本。

我的问题是,因为我在我的本地计算机上使用PHP版本太旧了,并且所有低于PHP的{​​{1}}版本都被正式不支持或宣布结束我应该去5.4吗?

如果您的答案是肯定的,请解释我该怎么做?在我的项目中编写的代码在迁移后是否能正常工作?我需要做些什么改变?

如果答案是否定的,请详细解释原因?

在提出这个问题之前,我已经浏览了 Google PHP 5.6.0文档。在那里,我找到了以下版本迁移的迁移说明:

PHP

未知道如何从 **5.3.x->5.4.x 5.4.x->5.5.x 5.5.x->5.6.x** 迁移到PHP 5.3.10

那么有人可以在这方面帮助我吗?

如果您需要有关我的问题的任何进一步信息,请告诉我。

2 个答案:

答案 0 :(得分:8)

TL; DR PHP 5.3.x仍将通过Ubuntu获得安全升级,但升级到14.04.1以获得更新版本

您可以从网站下载并构建/安装PHP 5.6的源代码,但不要这样做,因为这意味着您可能会失去系统的稳定性,因为系统上的其他软件包不会被设计为这个版本并且每次新版本发布时你都必须手动升级它,如果这些升级与安全相关,则会有稳定性,因为你不会像使用软件包管理器那样快速升级它们。 / p>

相反,我建议你将你的发行版升级到Ubuntu 14.04.1,其中包含PHP 5.5.9;比5.3.10更新。当然,5.3.x仍然会收到安全更新,直到Ubuntu 12.04达到EOL,但如果你想要最新的功能,你应该分开升级。您可以在Ubuntu软件更新程序中以图形方式执行此操作,或者如果您正在使用服务器版本,则在TTY中以root身份运行apt-get dist-upgrade(例如sudo)。 更新:改为使用sudo do-release-upgrade

编辑:只是为了澄清,apt-get是包管理器。如果您经常使用图形工具来安装和更新软件包(ubuntu软件中心,synaptic等),这里有一些简单的命令。 #表示必须以root身份运行(例如sudo apt-get install <package>),$表示您不需要sudo。将内容替换为您要使用的内容(例如apt-get install chromium-browser

# apt-get update更新存储库
# apt-get upgrade升级到较新的软件包(先运行上面的代码!) # apt-get upgrade <package>如上所述,但只升级一个包(除非您有特殊原因,否则没有用) # apt-get install <package>安装包 # apt-get remove <package>删除了一个包 # apt-get autoremove会自动删除由依赖项安装但不再需要的软件包 $ apt-cache search <query>会搜索您提供的查询 $ apt-cache show <package>显示包裹的信息 # yes "" | apt-get install <package>安装一个包,回答所有内容的默认答案(您可以使用yes执行大量命令) # apt-get dist-upgrade升级所有内容(并删除一些软件包),通常会被阻止。

答案 1 :(得分:5)

升级到Ubuntu 14.04.1以获得PHP 5.5.9作为一个软件包,并从Ubuntu升级中受益。无论如何,我不会在生产环境中使用5.6.0。

this PHP page,您可以获得有关从5.3到5.4和5.4到5.5的迁移的信息。

除了提到的更改和新功能外,PHP团队还在5.3和5.5.9之间进行内存管理和优化。仅这些改进就促进了迁移。

迁移的建议

  • APC:PHP现在嵌入了OPCache作为APC的替代品。如果您使用了APC变量,则可以获得有关OPCache的一些信息 - 在我的情况下,通过新模块使用旧的APC(名称更改),php5-apcu(注意'u'),是最好的选择

  • 模块安装在不同的目录中。如果您打算保留php.ini可能需要调整extension_dir

  • 此外,/etc/php5 dir在结构方面要求更高:低于dir为mods-available(àla nginx ),其中包含模块ini文件。然后在clifpmapache2 ... dirs是conf.d目录,其中包含指向主要mods-available模块ini文件的符号链接;如果您打算将该模块用于该PHP配置,则仅添加一个链接(例如mysqli可能不需要cli

  • JSON:必须安装模块php5-jsonapt-get install php5-json)才能获得PHP JSON函数(json_encodedecode ...)

  • 请注意,似乎将/etc/php5/MODE/php.ini(MODE为cli,...)与 main php.ini链接到某处(例如, fpm) - 在Ubuntu更新期间,错误会阻止安装 - 我只是复制了php.ini,因为在我的情况下它们对于所有模式都是相同的。

此外,迁移进展顺利。