阿帕奇

阿帕奇

我有一个旧版 PHP 应用程序正在运行:

HTTP   1.0
Apache 2.4.10
PHP    5.4.45
MySQL  5.5.42

我有一个开源框架,之前的团队一直在手动写入更改,所以我们不能再依赖自动更新 - 我必须自己手动升级所有代码。

PHP 7 / 8 (FPM?)我认为最终目标应该是,nginx而不是 apache,MySQL 8HTTP 2。我还引入了git和,composer因为这些从未使用过。

我已经将此设置docker化,所以我们现在可自由测试不同事物的升级。

我该如何处理这个问题?

答案1

更新所有内容的“正确”方法是从依赖关系到顶部,因此顺序应该是:

  • HTTP/2 和 Apache,升级 Apache 将允许您使用 HTTP/2,PHP 几乎与它无关。
  • MySQL
  • PHP 升级至 7.3
  • (可选)PHP 7.3 之后升级至 7.4

阿帕奇

升级 Apache 是最简单的部分,因为 Apache 和 PHP 之间没有太多依赖关系。如果你想使用 NGinx,我建议将其作为第一步。

MySQL

升级 MySQL 有点棘手,这取决于 PHP 代码对特定函数的依赖程度。完成此步骤后,请测试所有内容,如果需要,请更新代码中的查询。如果 PHP 使用 ORM,请先尝试更新它(仅 ORM),这样应该可以正常工作。

PHP

最后一部分,当然也是您最痛苦的部分,就是升级 PHP。我建议您先升级到 7.2 或 7.3,测试所有内容,并在需要时更新代码。在此步骤中,您可以使用 composer 升级 PHP 依赖项。

当一切都更新后,您可以考虑更新到 7.4(7.3 和 7.4 之间有很多变化,这就是为什么您应该分两步进行)。

现在更新到 PHP 8 有点早,因此您可以制作代码警告并在 PHP 8 发布第一个版本时免费通知以准备更新。

相关内容