在CentOS 5.4上升级PHP 5.1.6至5.2.x的build议方法

自从这类问题被问到这里已经有一段时间了。 也许推荐的解决scheme已经改变。

我有一个运行RoundCube webmail的CentOS 5.4邮件服务器。 默认情况下,RoundCube预计PHP版本5.2或以上。 CentOS 5停留在5.1.6修订版中,5.2中有一些function的后端。 我禁用了Roundcube的PHP检查,效果很好。 然而,我想要使用的插件之一使用PHP 5.2中引入的方法。

由于PHP和Postgres / MySQL绑定在这种情况下,PHP版本从5.1.6升级到5.2.x的最佳方式是什么? 我已经看到第三方回购,CentOStesting,Fedora …或者我可以从源代码编译。 我想保持这个系统处于稳定状态,以便在下一轮更新期间不会分裂。

任何build议?

我用primefaces回购做了很多次。 简而言之,大多数情况下需要三个步骤:

wget -q -O - http://www.atomicorp.com/installers/atomic.sh | sh yum update php service httpd restart 

我显然不能保证它会为你工作,但对我自己来说这已成为标准方法。

只需安装Remi回购。 并运行:

yum update -y

并等待更新完成,然后使用init重新启动您的VPS:

init 6

现在你已经成功地更新了你的系统上的php。

我会说这些方法中的任何一个都可以正常工作,但是直到您尝试之后才会知道,所以您最好确保备份的顺序。 话虽如此,在Linux上升级PHP比在Windows上更容易,如果你有任何问题,我会感到惊讶。 假设你的安装,如果不是香草,至less是一个普通的安装,你应该罚款与预先打包的RPM。

可以在同一个web服务器上运行不同版本的php ; 不幸的是,你只能运行一个作为Apache模块,这让你摆弄CGI接口。

现代RPM的美妙之处在于你可以回滚安装 。 这将使它更容易一些。

另一方面,如果你从源代码构build,你可以build立一个不同的目录。 然后,你所要做的就是改变php apache加载哪个模块,并且改变php.ini文件的位置,而且你没有任何风险升级到你当前的configuration。

我相信有很多解决scheme,您select的解决scheme取决于您的系统pipe理风格。

“简单”的方法是从另一个存储库安装php和相关软件包, 就像这个一样 。 优点是花费的时间更less,缺点是您信任系统上的二进制文件的外部源,以及时更新和维护包的完整性和安全性。

“硬”的方法是编译你自己的。 我说这是'很难',但它确实不是太糟糕。 我所做的是将所有保存的./configure命令全部保存起来,所以当新版本发布时,我只需使用相同的开关就可以使我的php环境与之前版本相同。

对于没有繁琐要求的系统,我使用rpm路由(实际上5.1对这些系统工作正常),但对于那些自定义php环境,我仍然从源代码编译。

编译自己的PHP的另一个好处是,你实际上了解和了解更多关于软件,以及它如何在您的服务器上工作。 你可以为此感到自豪,它会让你远离其他系统pipe理员!