WordPress 切换 PHP 版本,不把站点搞坏

把 WordPress 安全迁到 PHP 8.4,包括备份、预发布环境、更新插件、在 cPanel、CloudLinux 或 Plesk 里切换、切换后检查和回退办法。

选哪个版本

选你的插件和主题能运行的最新分支。我们推荐 PHP 8.4,PHP 官方支持它到 2028 年 12 月 31 日,大多数主机商也都提供。参见 升级指南。8.3 是稳妥的第二选择,支持到 2027 年 12 月 31 日。

不管选哪个分支,构建都必须是已修复的版本,即 8.5.12、8.4.27、8.3.36 或 8.2.35,或者更新的版本。我们不推荐 8.2。官方对它的支持在 2026 年 12 月 31 日结束,几周之后你就得再迁一次。

在控制面板里选了分支,不一定就能拿到最新的构建。切换之后按下文的方法检查结果。

切换之前

  1. 做一次完整备份。 文件和数据库都要备份,通过主机商或备份插件都行。把备份下载下来,确认能打开。WordPress 在它的 备份指南 里写了具体步骤。
  2. 全部更新。 WordPress 核心、主题和所有插件。PHP 大版本跳跃之后站点出问题,最常见的原因就是旧的插件代码。
  3. 删掉不用的东西。 停用并删除不用的插件和主题。每删掉一个插件,就少一个可能出故障的地方。
  4. 找出已被放弃的插件。 好几年没更新的插件最有可能在 8.4 上出问题。切换之前先把它换掉。
  5. 有预发布环境就用。 很多主机商提供站点副本。先在副本上切换,把站点点一遍,再切换正式站点。

如果你还在 PHP 7.4 或 8.0 上,这次跳跃很大,先读 PHP 7.4 升级到 8.4。从 8.1 或 8.2 出发差距小一些,见 8.1 升级到 8.4 和 8.2 升级到 8.4。

进行切换

菜单名称因版本和主机商而异。你的主机商可能改了这些界面的名字,或者限制了访问。

cPanel: MultiPHP Manager

  1. 打开 Software > MultiPHP Manager。
  2. 勾选域名。
  3. 在下拉菜单里选择 PHP 版本,例如 ea-php84。
  4. 点击 Apply。

带 CloudLinux 的 cPanel: Select PHP Version

  1. 打开 Software > Select PHP Version。
  2. 在顶部的选择框里选版本。
  3. 点击 Set as current。
  4. 查看 Extensions 列表,勾选 WordPress 和插件需要的扩展,比如 mysqli、curl、mbstring、gd 和 zip。

不是每个分支都已经有修复过的 alt-php 构建。CloudLinux 在 10 月 21 日表示构建还在准备中。参见 CloudLinux。

Plesk

  1. 进入 Websites & Domains,打开对应的域名。
  2. 打开 PHP Settings。
  3. 选择 PHP 版本,处理程序优先选 PHP-FPM,不要选 Apache 模块。
  4. 点击 OK。

Plesk 表示,它在 Linux 上的 PHP 8.2 到 8.5 构建都已有修复。详情见 Plesk 页面。

其他主机商

在控制面板里找“PHP 版本”或“PHP 设置”。各主机商的具体路径和它们目前的说法,见 主机商页面。如果面板让你在 mod_php(“Apache 模块”)和 FPM 之间选,选 FPM。在受影响的 SAPI 中,mod_php 风险最高。

检查结果

  1. 打开首页、几个内页、登录页和所有表单。如果是网店,把结账流程走到付款页面为止。
  2. 在 WordPress 里打开 工具 > 站点健康 > 信息 > 服务器。PHP 版本必须属于新的分支,构建也必须是已修复的。怎么看这个版本号,见 检查 PHP 版本。
  3. 如果分支对了,但构建低于 8.4.27(或 8.3.36),问主机商修复是否已经装上,worker 是否已经重启。
  4. 接下来几天继续观察站点。计划任务和很少有人访问的页面,出问题会比首页晚。

回退方案

白屏或严重错误

在控制面板里切回旧版本,站点就会恢复到之前的运行状态。正式站点照常运行,同时在预发布副本上找原因。

要找原因,就在预发布副本的 wp-config.php 里打开日志。

// wp-config.php,仅用于调试,用完删除。
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );

在副本上重新切换一次,然后读 wp-content/debug.log。日志会指出出错的插件或主题文件。更新这个插件或主题,换掉它,或者请作者修复。

旧版本只能作为几小时或几天的退路。只要它还在运行,站点就仍然暴露在风险中。给第二次尝试定个日期。如果你没法离开旧分支,读 暂时还不能升级。

主机商不提供更新的版本时

那就只能换套餐,或者换主机商。如果你的主机商只提供 PHP 8.1 或更旧的版本,问它是否会自己给这些软件包打补丁。要问的问题见 情况判断,指南不够用时可以去哪里找帮助,见 推荐。

最后审阅:2026年10月22日