在 CentOS 5.4 上将 PHP 5.1.6 升级到 5.2.x 的推荐方法

在 CentOS 5.4 上将 PHP 5.1.6 升级到 5.2.x 的推荐方法

已经有一段时间没有在这里提出此类问题了。也许推荐的解决方案已经改变了。

我有一台 CentOS 5.4 邮件服务器,运行 RoundCube webmail。默认情况下,RoundCube 需要 PHP 版本 5.2 或更高版本。CentOS 5 停留在修订版 5.1.6,并从 5.2 中反向移植了某些功能。我禁用了 Roundcube 的 PHP 检查,它运行良好。但是,我想使用的插件之一使用了 PHP 5.2 中引入的方法。

由于本例中 PHP 和 Postgres/MySQL 的绑定,将 PHP 版本从 5.1.6 升级到 5.2.x 的最佳方法是什么?我看过第三方存储库、CentOS 测试、Fedora……或者我可以从源代码编译。我希望让这个系统保持稳定状态,这样它就不会在下一轮更新中崩溃。

有什么建议吗?

答案1

我已经多次使用原子回购简单来说,大多数情况下只需三个步骤:

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

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

答案2

只需安装 Remi repo。然后运行:

yum update -y

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

init 6

现在您已成功更新系统上的 php。

答案3

我想说的是,这些方法中的任何一种都可能有效,但你只有尝试过才会知道,所以你最好确保备份正确。话虽如此,在 Linux 上升级 php 比在 Windows 上容易得多,如果你遇到任何问题,我会感到惊讶。假设你的安装是(如果不是 vanilla 的话)至少是常见的安装,那么使用预打包的 RPM 应该没问题。

有可能在同一个网络服务器上运行不同版本的 php;不幸的是,您只能将其作为 Apache 模块运行,这让您不得不摆弄 CGI 接口。

现代 RPM 的美妙之处在于您可以回滚安装。这样会容易一些。

另一方面,如果您从源代码构建,则只需在不同的目录中构建即可。然后,您所要做的就是更改 php apache 加载的 mod,并更改 php.ini 文件的位置,这样您就升级了,并且不会对当前配置造成任何风险。

答案4

我相信有很多解决方案,您选择哪一个取决于您的系统管理风格。

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

“困难”的方法是自己编译。我说这很“困难”,但实际上并不太糟糕。我所做的是,我保存了所有 ./configure 命令,因此当发布新版本时,我只需使用相同的开关即可使我的 php 环境与以前的版本相同。

对于没有特殊要求的系统,我使用 rpm rout(实际上 5.1 对于这些系统来说工作得很好),但对于那些具有自定义 php 环境的系统,我仍然从源代码进行编译。

自己编译 php 的另一个好处是,您实际上可以了解并学习有关该软件的更多信息以及它在您的服务器上的工作原理。您可以为此感到自豪,这将使您与其他系统管理员区分开来!

相关内容