PHP*_*Fan 12 php porting php-5.3 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
Run Code Online (Sandbox Code Playgroud)
现在几天后,开发团队发布了一个新的最新PHP
版本(PHP 5.6.0
)PHP
.
我的问题是,因为我PHP
在我的本地机器上使用的版本太旧了,并且所有PHP
版本都低于5.4
官方不支持或宣布的寿命终止,我应该去PHP 5.6.0
吗?
如果您的答案是肯定的,请解释我该怎么做?在我的项目中编写的代码在迁移后是否能正常工作?我需要做些什么改变?
如果你的答案是否定的,请详细解释一下为什么?
在提出这个问题之前,我已经浏览了Google和PHP
文档.在那里,我找到了以下版本迁移的迁移说明:
**5.3.x->5.4.x
5.4.x->5.5.x
5.5.x->5.6.x**
Run Code Online (Sandbox Code Playgroud)
没有得到如何迁移PHP 5.3.10
到PHP 5.6.0
.
那么有人可以在这方面帮助我吗?
如果您需要有关我的问题的任何进一步信息,请告诉我.
TL; DR PHP 5.3.x仍将通过Ubuntu获得安全升级,但升级到14.04.1以获得更新版本
您可以从网站下载并构建/安装PHP 5.6源代码,但不要这样做,因为这意味着您可能会失去系统的稳定性,因为系统上的其他软件包将不适用于此版本而您将拥有每次新版本发布时手动升级它,如果这些升级与安全相关,则会有稳定性,因为您不会像使用软件包管理器那样快速升级它们.
相反,我建议你将你的发行版升级到Ubuntu 14.04.1,其中包含PHP 5.5.9; 比5.3.10更新.当然,5.3.x仍然会收到安全更新,直到Ubuntu 12.04达到EOL,但如果你想要最新的功能,你应该分开升级.您可以在Ubuntu软件更新程序中以图形方式执行此操作,或者如果您使用的是服务器版本,则可以在TTY中apt-get dist-upgrade
以root身份运行(例如,使用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
升级所有内容(并删除一些包),当它可能通常被阻止时.
升级到Ubuntu 14.04.1以获得PHP 5.5.9作为一个包,并从Ubuntu升级中受益.无论如何,我不会在生产环境中使用5.6.0.
在此PHP页面中,您可以获得有关从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
(àlanginx),包含模块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
...)某个主要的 php.ini(例如在fpm
) - 在Ubuntu更新期间,错误阻止安装 - 我只是复制了php.ini,因为他们是在我的情况下,所有模式都一样.
除此之外,迁移进展顺利.