# WordPress 自动更新

Source: https://support.kapsulehost.com/zh-cn/wordpress-auto-updates

Auto-updates 让 WordPress 核心、插件和主题保持最新，而无需您留意发布说明，并且这一过程是安全的：每次更新前都会进行完整备份，更新后会检查网站，任何破坏网站的情况都会被自动回滚。

## Auto-Updates 功能的位置

打开**网站**，点击相应网站，在该网站左侧菜单中打开 **WordPress** 分组，然后选择**更新**。该页面标题为 **Auto-updates**。

此标签页适用于 WordPress 和 WooCommerce 网站。如果该网站的托管套餐不包含此功能，页面将显示升级横幅，而不是控制选项。

![KPanel 中某 WordPress 网站的自动更新页面](https://support.kapsulehost.com/help/screenshots/wordpress-auto-updates.f25165a2.webp)

## 托管更新的工作原理

无论是计划更新还是手动更新，流程都是相同的：

1. **备份。** 在任何更改发生之前，会立即对网站进行完整备份。如果备份失败，本次运行将被跳过，而不会在没有安全保障的情况下继续进行。
2. **应用。** 安装更新。
3. **验证。** 通过 HTTP 获取网站并检查响应结果。
4. **观察。** 本次运行将进入为期半小时的观察窗口，在此期间会持续监测网站是否出现错误或正常运行时间事故。
5. **确认或回滚。** 如果窗口结束时一切正常，本次运行将被标记为**已应用**。如果网站返回错误，系统会自动恢复更新前的备份，并将本次运行标记为**已回滚**。

正是由于这个观察窗口，您会看到某次运行长时间停留在**已应用（监控中）**状态。这并非卡住了，而是在此期间，只有在真实流量下才会出现的问题仍可能触发自动回滚。

> **Note:** 由于每次更新前都会进行备份，自动更新所消耗的备份存储空间与运行频率成正比。这是您所做的权衡，而且是正确的权衡：无法撤销的更新，比存储费用的代价更为严重。

## 开启该功能

主控制开关是**自动更新**，它被描述为该网站的总开关。默认处于关闭状态，因此在您主动开启之前不会有任何动作。

在其下方是三个分类开关：

| 开关 | 涵盖范围 |
|---|---|
| WordPress 核心 | 核心版本发布 |
| 插件（默认） | 所有未设置单独覆盖规则的插件 |
| 主题 | 已安装的主题 |

这三项默认均为开启状态，因此打开主开关即可获得完整的托管行为。如果您希望自行处理某个分类（例如客户合同规定核心升级属于计划性工作），可以将其单独关闭。

## 选择更新时段

**工作外时间（新西兰时间）**选择器用于定义计划更新所使用的每日时段，下方的进度条会将其显示在一个24小时的时间轴上，方便您一目了然。默认时段为凌晨时分，即新西兰时间02:00至05:00。

每个网站每天最多被考虑一次。各次运行会被分散开，而不是在同一时刻对所有网站同时触发，因此具体的运行时间会有所不同。

> **Tip:** 请根据您网站的实际流量情况选择时段，而不是仅凭时钟。新西兰的零售网站在凌晨3点流量较少；但受众在欧洲的网站则未必如此。在选择之前，请查看网站的“统计分析”标签页，以了解真实的流量模式。

## 按插件单独设置

并非每个插件都应一视同仁。在**待处理更新**部分，每一行插件都有一个选择器，提供三种选项：

- **默认**：遵循上方的插件开关设置。
- **自动更新**：无论默认设置如何，始终自动更新该插件。
- **仅手动**：永不自动更新该插件。

请谨慎并有意识地使用**仅手动**选项。两个合理的使用场景是：您已对某插件进行了自定义修改，或者该插件此前的更新曾导致网站故障。长期设为手动的插件会悄然累积安全漏洞，因此请在您自己的日历中设置提醒以定期检查。

对于任何涉及安全问题、您希望在修复程序发布后立即打补丁的插件，请使用**自动更新**，无论默认设置如何。

## 立即运行更新

点击页面顶部的**立即运行更新**，即可立即启动一次运行，而无需等待预设时段。同样的备份、验证和观察流程依然适用，因此手动运行与计划运行同样安全。

**待处理更新**部分在完成网站检查后，还会显示**立即应用所有更新**按钮。点击该部分的**刷新**可重新检查是否有新版本发布。

同一时间只能有一次运行在进行中。如果已有一次运行正在进行，或仍处于观察窗口中，新的运行请求将被拒绝。

## 查看统计数据与历史记录

页面顶部横向排列着五项数据：**成功率**、**已应用**、**已回滚**、**失败**和**上次运行**。其中最值得关注的是**已回滚**。单次回滚只是系统正常履行其职责，但如果同一插件反复出现回滚模式，这就说明了一些问题。

在其下方，**更新历史**会列出每次运行的记录，包括：

- 更新的内容及其版本变化。
- 状态：**已应用**、**已应用（监控中）**、**已回滚**、**失败**、**已跳过**、**运行中**或**待处理**。
- 该次运行是**计划性**还是**手动**。

如果尚未有任何运行记录，该部分会说明这一情况，并解释更新在自动运行或由您手动触发后会显示在此处。

## 手动回滚

成功的运行会保留其更新前的备份，带有备份的记录行会提供**回滚**控制选项。

点击该选项会要求您确认，其措辞十分重要：此操作会将您的网站恢复到本次更新前所拍摄的备份，此后所做的任何更改都将丢失。

> **Important:** 请从字面上理解这一点。如果更新是在夜间运行的，而您的团队此后已发布了三篇文章并处理了四十笔订单，回滚将会丢弃这些内容。手动回滚适合在故障更新发生后数分钟内使用，而不适合在一天之后使用。在这种情况下，应当向前修复，或从更近期的备份中有选择地恢复：请参阅[从备份恢复](https://support.kapsulehost.com/zh-cn/restoring-from-backup)。

结果会被明确报告：要么网站恢复正常，要么会显示其返回的 HTTP 状态码。

## 更新被跳过的情况

某次运行可能会被跳过，而非标记为失败。常见的两个原因是：

- **更新前备份失败。** 系统不会执行任何更新，并会通知您。请先解决备份问题：请参阅[进行备份](https://support.kapsulehost.com/zh-cn/taking-a-backup)。
- **已有一次运行正在进行或处于观察中。** 在当前运行完成之前，系统不会对该网站进行其他操作。

## 故障排查

**页面显示升级横幅而非控制选项。** 该网站的托管套餐不包含托管自动更新功能。请参阅[升级您的套餐](https://support.kapsulehost.com/zh-cn/upgrading-your-plan)。

**即使开关已打开，也没有任何更新运行。** 请检查：至少有一个分类开关处于开启状态；时段设置未被设为起止时间相同的零长度区间；且此前没有运行仍处于观察状态。

**某插件反复出现回滚。** 这说明该插件与网站上的其他内容存在兼容性问题。请将其设置为**仅手动**，先在暂存副本上更新，并在那里解决冲突：请参阅[WordPress 暂存环境工作流程](https://support.kapsulehost.com/zh-cn/wordpress-staging-workflow)。

**更新已应用，但网站显示异常而非报错。** 健康检查只会查找 HTTP 错误，而一个页面即使显示异常但仍返回200状态码，也会通过该检查。这正是历史记录和手动回滚功能存在的意义。

## 后续操作建议

- [WordPress 更新](https://support.kapsulehost.com/zh-cn/wordpress-updates)：了解手动更新流程。
- [从备份恢复](https://support.kapsulehost.com/zh-cn/restoring-from-backup)：当回滚不足以解决问题时使用。
- [网站活动日志](https://support.kapsulehost.com/zh-cn/site-activity-log)：记录每一次自动更新的运行情况。
