我们有两台运行PHP 5.3的负载均衡的Web服务器.我的开发团队已经要求我将PHP升级到5.4,因为它们需要它带来的某些功能.
主要问题是5.3是最新的内置于发行版存储库中,所以要使用包管理器进行升级,我需要添加另一个第三方存储库.我本身没有问题,但我担心使用“非官方”来源的软件包.
主要问题是5.3是最新的内置于发行版存储库中,所以要使用包管理器进行升级,我需要添加另一个第三方存储库.我本身没有问题,但我担心使用“非官方”来源的软件包.
另一种选择是从源代码编译PHP,但我想这会阻止我在将来的任何阶段使用包管理器进行升级?
所以我想我只想找到一条指导方针.从源代码编译或从任何声称提供PHP 5.4的旧repo安装?或者也许是我没有考虑的第三种选择?
实际上,您真正的问题是在生产环境中这样做.我的意思是,您必须尽可能减少停机时间,并在出现问题时计划恢复(回滚)程序.
通常,我并不真正关心存储库的“官方”,而是“声誉”.我不习惯认为“非官方”的公共开源repos将恶意软件注入软件包(安全问题),我认为如果它们很受欢迎并且被广泛使用,它们的维护得很好(可靠性问题).
如果你真的担心使用非官方的repo,你有一个更难的选择:从源代码编译,然后在官方repo更新时覆盖PHP.这带来了风险.
这是我的策略.
首先,制作应用程序的可复制快照.收集文件,数据库条目以及在全新服务器上启动应用程序所需的任何内容(如果您想要与3进行负载均衡,但您并不是真的想要).这将是您的回滚过程.
其次,使用当前的PHP安装创建服务器快照.完整的系统映像是合适的.保持它作为一个黄金图像.您将备份您的应用程序以及服务器,但没关系.
第三,做源编译,可能先在staging中尝试.
第四,当您的官方仓库更新时,创建一个新的应用程序快照,恢复旧的黄金服务器映像,升级PHP,然后将应用程序升级到您刚刚执行的快照.
如果出现任何问题,你总是有:
>要还原的备份应用程序.我认为你不会每秒处理数千个事务,因此数据丢失可能很小甚至是空的>一个完整的服务器映像,万一事情真的非常糟糕