我在一台 Linux 服务器上托管了一组基于 PHP 的网站,我需要为这些网站升级 PHP。但是,由于一些网站处于 QA/staging 阶段,而其他网站处于生产阶段,因此我需要逐步进行升级。
也就是说,我希望 QA 站点先运行,这样我就可以检查升级 PHP 是否不会破坏任何东西,然后再投入生产。最好的方法是什么?
所有网站均通过 Apache 提供服务,并且拥有自己的 vhost 文件。
我想象我可以(以某种方式)在特定点安装新版本的 PHP,并通过配置(Apache?vhost?)指定站点使用此版本的 PHP(而不是 的版本/usr/bin/php
)。
所涉及的 PHP 版本相当旧:我目前正在从 PHP 5.3 升级到 5.4。尽管(显然)我很快就需要升级到 5.6。所以我正在寻找一个可以重复使用的过程。
答案1
我在一台 Linux 服务器上托管了一组基于 PHP 的网站,我需要为它们升级 PHP。但是,由于一些网站处于 QA/准备阶段,而其他网站处于生产阶段,因此我需要逐步升级。也就是说,我希望先升级 QA 网站,这样我就可以检查升级 PHP 是否不会破坏任何东西,然后再将其投入生产。最好的方法是什么?
如果你将 QA/staging 和生产服务器混合到一台服务器中,那么你就做错了。惯于能够为每个虚拟主机启动不同版本的 PHP;每个服务器的每个 Apache 安装只需一个版本的 PHP。
话虽如此,由于我自己喜欢使用 Ubuntu 12.04 (LTS),因此我采用的方法是使用 VirtualBox 或类似软件创建桌面虚拟机环境。确保虚拟化设置尽可能与您当前的生产服务器设置相匹配,然后启动并运行它。然后,一旦您的桌面上正确运行了该“沙盒”,就可以尝试升级 PHP。
如果您只是随着时间的推移构建服务器,这可能看起来令人生畏,但老实说,只要代码库、数据存储和配置设置正确,为 LAMP 堆栈开发的软件可以在任何地方工作。我在 Mac OS X 上进行本地 PHP 开发(例如),并定期部署到 Ubuntu 服务器,而没有太多担心或考虑过这个问题。
但你却这么说:
所涉及的 PHP 版本相当旧:我目前正在从 PHP 5.3 升级到 5.4。尽管(显然)我很快就需要升级到 5.6。所以我正在寻找一个可以重复使用的过程。
我认为您可能会过度担心一个不重要的问题,除非您 100% 肯定您网站的编码确实会从 PHP 版本升级中受益。
我有几十台 Ubuntu 12.04 服务器专门为满足像您这样的 LAMP 需求而部署,没有人担心 PHP 5.3 问题,因为它在技术上已经“过时”了,但 PHP 5.3 被认为是目前比较稳定的 PHP 版本之一。此外,Ubuntu 12.04 是一个LTS(长期服务)版本那是支持至 2017 年 4 月;还有两年。
这意味着从技术上讲,虽然 Ubuntu 12.04 中的软件版本号在安全补丁方面表面上看起来“过时”,但 LTS 指定意味着关键安全补丁等将反向移植到 PHP 5.3 和类似的软件包。
这种长期支持正是系统管理员选择 LTS 安装的确切原因:在真正需要升级之前无需担心升级。