如何在单个服务器上的多个站点上逐步升级 PHP?

如何在单个服务器上的多个站点上逐步升级 PHP?

我在一台 Ubuntu 12.04 服务器上托管了一组基于 PHP 的网站,我需要为它们升级 PHP。但是,由于一些网站处于 QA/准备阶段,而其他网站处于生产阶段,因此我需要逐步升级。也就是说,我希望先升级 QA 网站,这样我就可以检查升级 PHP 是否不会破坏任何东西,然后再将其投入生产。最好的方法是什么?

所有网站均通过 Apache 提供服务,并且拥有自己的 vhost 文件。

我想象我可以(以某种方式)在特定点安装新版本的 PHP,并通过配置(Apache?vhost?)指定站点使用此版本的 PHP(而不是 的版本/usr/bin/php)。

所涉及的 PHP 版本相当旧:我目前正在从 PHP 5.3 升级到 5.4。尽管(显然)我很快就需要升级到 5.6。所以我正在寻找一个可以重复使用的过程。

答案1

您可能应该有两个或更多不同的服务器,一个用于测试,另一个用于生产等等。VPS 现在真的很便宜,并且基于 VPS 的解决方案比配置、维护、更新等要容易得多...要记住的原则称为“KISS”。

无论如何,回到问题:我将研究在同一台机器上运行的多个 FPM 实例,每个 PHP 版本一个。这样,只需一行 ProxyPassMatch 即可将一个站点(即 vhost)从一个 PHP 版本切换到另一个 PHP 版本。这将允许您拥有一个带有多个 PHP 后端的 Apache 前端。

(对我来说,同一台机器上的多个 Apache 就像一场噩梦)。

Php-fpm 是一个独立的 CGI 服务器,在 Apache 之外运行 PHP。如果您仍在使用 mod-php,那么您应该首先迁移到 fpm 并学习如何使用 Apache 进行代理。

您需要从源代码构建每个 PHP 版本并将其安装到不同的文件夹,准备所有配置,并创建您的初始化脚本。这并不难。您可以在此处找到一个示例(它基于 nginx,但易于迁移):http://www.sitepoint.com/run-multiple-versions-php-one-server/

如果您这样做,请记住您需要让 PHP 保持最新的安全补丁,因此您需要分配时间进行下载、重新编译和测试。

相关内容