我基本上是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
。
那么有人可以在这方面帮助我吗?
如果您需要有关我的问题的任何进一步信息,请告诉我。
答案 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文件。然后在cli
,fpm
,apache2
... dirs是conf.d
目录,其中包含指向主要mods-available
模块ini文件的符号链接;如果您打算将该模块用于该PHP配置,则仅添加一个链接(例如mysqli
可能不需要cli
。
JSON:必须安装模块php5-json
(apt-get install php5-json
)才能获得PHP JSON函数(json_encode
,decode
...)
请注意,似乎将/etc/php5/MODE/php.ini
(MODE为cli
,...)与 main php.ini链接到某处(例如, fpm
) - 在Ubuntu更新期间,错误会阻止安装 - 我只是复制了php.ini,因为在我的情况下它们对于所有模式都是相同的。
此外,迁移进展顺利。