

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 更新您的 WordPress 实例上的软件
<a name="amazon-lightsail-update-wordpress-software"></a>

**重要**  
本教程适用于使用**WordPress**蓝图的实例。如果您的实例使用由 Bitnami ** WordPress 打包的实例**，请改为参阅 [ Bitnam WordPress i 文档。](https://docs.bitnami.com/general/apps/wordpress/administration/upgrade/)使用 Bitnami WordPress 打包的实例存储 WordPress 在不同的位置 (`/opt/bitnami`) 并使用不同的服务管理工具。

创建实例后，亚马逊网络服务 (AWS) 和 Lightsail 不会更新或修补您的实例上的操作系统或应用程序。 WordPress 确实会自行安装一些更新。默认情况下，它会安装包含安全和维护补丁的次要核心版本。它不会自动安装主要核心版本。插件和主题更新也是手动的，直到你为它们开启自动更新为止。在责任[AWS 共担模式下](https://aws.amazon.com/compliance/shared-responsibility-model/)，您有责任使实例上的 WordPress 软件保持最新状态。

WordPress 软件更新定期包括安全补丁。运行过时的内 WordPress 核、主题或插件版本是网站受损的最常见原因之一。

本指南向您介绍哪些更新会自动 WordPress 安装、如何手动更新 WordPress 软件以及如何为插件和主题开启自动更新。

## 了解 WordPress 更新类型
<a name="update-wordpress-understand-types"></a>

WordPress 软件更新分为以下几类。每个都有不同的风险状况和更新机制。


| 更新类型 | 示例 | 默认 行为 | 
| --- | --- | --- | 
| 核心次要版本（维护和安全） | 6.5.1 到 6.5.2 | WordPress 在后台自动安装这些 | 
| 核心主要版本（功能版本） | 6.5 到 6.6 | 仅限手动 | 
| 主题和插件  | 任何主题或插件版本 | 默认情况下为手动；您可以为每个主题或插件启用自动更新 | 
| 翻译  | 语言包更新 | WordPress 自动安装这些 | 

从 WordPress 3.7 版本开始， WordPress 自动安装包含安全和维护补丁的次要核心版本。除非您已将其禁用，否则这是默认行为。这意味着正在运行的 WordPress 实例已经收到了其当前分支的关键安全补丁。但是，当发布分支停止接收安全反向移植时，你必须更新到更新的主要版本才能继续收到修复程序。有关更多信息，请参阅*WordPress 文档 WordPress[中的](https://wordpress.org/documentation/article/updating-wordpress/)更新*。

## 先决条件
<a name="update-wordpress-prerequisites"></a>
+ 您在 Lightsai WordPress l 中启动了一个实例。有关更多信息，请参阅 [启动和配置实 WordPress 例](amazon-lightsail-launch-and-configure-wordpress.md)。
+ 您拥有 WordPress 网站的管理员密码。有关更多信息，请参阅[获取您 WordPress 网站的管理员密码](amazon-lightsail-launch-and-configure-wordpress.md#launch-configure-wp-get-password)。

## 第 1 步：使用快照备份您的实例
<a name="update-wordpress-step-1-backup"></a>

在更新任何软件之前，请为您的实例创建备份。如果更新失败或与您的主题或插件不兼容，则可以从快照中恢复您的网站。

1. 登录 [ Lightsail 控制台。](https://lightsail.aws.amazon.com/)

1. 打开您的实例的 WordPress 实例管理页面。  
![Lightsail 控制台中 WordPress 实例的实例管理页面。](https://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/wordpress/wordpress-lightsail-update-instance-page.png)

1. 选择 **Snapshots**（快照）选项卡。

1. 在 “**手动快照” 下**，选择 “**创建快照”**，输入名称，然后选择 “**创建” **。  
![在 Lightsail 控制台中创建 WordPress 实例的手动快照。](https://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/wordpress/wordpress-lightsail-update-create-snapshot.png)

有关更多信息，请参阅使用快照[备份 Linux/Unix Lightsail 实例](lightsail-how-to-create-a-snapshot-of-your-instance.md)和[配置自动快照。](amazon-lightsail-configuring-automatic-snapshots.md)

**注意**  
对于主要版本更新，我们建议您先在根据快照创建的新实例上测试更新，然后再将其应用到实时网站。

**注意**  
快照会产生月度存储费，它们会继续累积费用，直到您将其删除。有关快照定价、保留期以及如何删除不再需要的快照，请参阅[亚马逊 Lightsail 中的快照](understanding-snapshots-in-amazon-lightsail.md)[删除未使用的 Lightsail 快照以避免按月收费](amazon-lightsail-deleting-snapshots.md)、和 [ Lightsail 定价页面。](https://aws.amazon.com/lightsail/pricing/)

## 第 2 步：更新 WordPress
<a name="update-wordpress-step-2-update"></a>

### 选项 1： WordPress 从管理仪表板更新
<a name="update-wordpress-from-dashboard"></a>

更新 WordPress 核心、主题和插件的最简单方法是在 WordPress 管理仪表板中进行一键更新。

1. 导航到您 WordPress 网站的管理控制面板`https://{{your-ip}}/wp-admin`，然后使用用户名**user**和管理员密码登录。如果您没有管理员密码，请参阅[获取 WordPress网站的管理员密码](amazon-lightsail-launch-and-configure-wordpress.md#launch-configure-wp-get-password)。

1. 在左侧导航窗格中，选择**控制面板**，然后选择**更新**。菜单项上的数字徽章表示有多少更新可用。  
![WordPress 更新页面显示当前版本和可用插件更新。](https://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/wordpress/wordpress-lightsail-updates-dashboard.png)

1. 在 “**当前版本” 下**，如果有更新的版本可 WordPress 用，请选择 “**更新到版本” {{X.X.X}} **。

   WordPress 将您的网站置于维护模式，下载新版本并进行安装。更新运行时，访客会短暂看到一条维护消息。  
![WordPress 更新页面显示了可用的核心更新和更新按钮。](https://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/wordpress/wordpress-lightsail-update-core.png)

1. 如果出现提示，请选择 “**更新 WordPress 数据库” **。 WordPress将您的内容、设置和用户数据存储在数据库中。核心更新有时需要更改数据的组织方式。例如，添加新列或表。选择此按钮会应用这些结构更改，因此新版本的 WordPress 可以正常运行。

1. 在 “更新” 页面的 “**插件” ** 部分下，选择要更新的插件，然后选择 “**更新插件” **。  
![WordPress 更新页面的插件部分，其中选择了要更新的插件。](https://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/wordpress/wordpress-lightsail-update-plugins.png)

1. 在 “**主题” ** 部分下，选择要更新的主题，然后选择 “**更新主题” **。  
![WordPress 更新页面的主题部分，其中选择了要更新的主题。](https://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/wordpress/wordpress-lightsail-update-themes.png)

1. 更新完成后，浏览您的网站并确认您的页面、主题和插件按预期运行。

**注意**  
移除不再使用的插件和主题。非活跃的插件和主题仍然会增加攻击面，必须保持最新状态。有关更多信息，请参阅 [亚马逊 Lightsail 中 WordPress 实例的提示和最佳实践](amazon-lightsail-wordpress-tips-best-practices.md)。

### 选项 2： WordPress 从命令行更新
<a name="update-wordpress-from-cli"></a>

您还可以使用 WP-CLI命令行界面 WordPress 从实例内部进行更新 WordPress。这对于编写更新脚本或无法访问管理仪表板时很有用。有关更多信息，请参阅 [WP-CLI 网站](https://wp-cli.org/)。

在 WordPress 蓝图上， WordPress 安装目录是`/var/www/html`、已使用此路径预安装和预先配置，因此您无需传递参数。 WP-CLI `--path` WordPress 文件归`admin`用户所有。

**重要**  
以登录时`admin`使用的用户身份运行 WP-CLI 命令。不要以其他用户的身份`sudo`或以其他用户的身份运行它们。以其他用户身份运行更新可能会留下`admin`用户无法写入的目录，从而导致以后的更新失败。如果发生这种情况，请参阅[故障排除](#update-wordpress-troubleshooting)。

1. 在 Lightsail 控制台中使用基于浏览器的 SSH 客户端，或者使用带有用户名的 SSH 客户端，连接到您的实例。`admin`有关更多信息，请参阅 [在 Lightsail 上连接 Linux 或 Unix 实例](lightsail-how-to-connect-to-your-instance-virtual-private-server.md)。

1. 验证 WP-CLI 版本。 WP-CLI 已预安装在 WordPress蓝图上：

   ```
   wp --version
   ```

1. 检查当前安装的 WordPress 版本和可用更新：

   ```
   wp core check-update
   ```

1. 更新 WordPress 内核，然后更新数据库架构：

   ```
   wp core update
   wp core update-db
   ```

1. 更新所有插件和主题：

   ```
   wp plugin update --all
   wp theme update --all
   ```

1. 验证已安装的版本：

   ```
   wp core version
   ```

## 第 3 步：启用自动更新
<a name="update-wordpress-step-3-automatic-updates"></a>

启用自动更新后，您的网站在运行存在已知漏洞的软件上花费的时间就会减少。

### WordPress 核心
<a name="update-wordpress-automatic-core"></a>

您的 WordPress 实例会自动安装维护和安全版本。它不会自动安装主要版本。要迁移到新的主要版本，请按照[步骤 2 中的说明 WordPress 手动更新](#update-wordpress-step-2-update)。我们建议您先创建快照，然后在根据该快照创建的实例上测试更新。

### 插件和主题
<a name="update-wordpress-automatic-plugins-themes"></a>

1. 在左侧导航窗格中，选择 “**插件”**，然后选择 “**已安装的插件” **。

1. 在 “**自动更新**” 列中，**为要 WordPress 自动更新的每个插件选择 “**启用自动更新”。

1. 要启用主题的自动更新，请选择 “**外观”**，选择 “**主题”**，选择一个主题，然后选择 “**启用自动更新**”。

**注意**  
同样的风险也适用于插件和主题的自动更新：它们无需新的备份即可运行。为来自维护良好的来源的插件和主题选择性地启用它们，并保持自动快照处于启用状态。

### 从命令行自动更新
<a name="update-wordpress-automatic-cli"></a>

你也可以使用 WP-CLI 而不是管理仪表板来开启自动插件和主题更新。连接到您的实例，然后以`admin`用户身份运行以下命令。

1. 为所有插件和主题开启自动更新：

   ```
   wp plugin auto-updates enable --all
   wp theme auto-updates enable --all
   ```

1. 确认哪些插件和主题已开启自动更新：

   ```
   wp plugin auto-updates status --all
   wp theme auto-updates status --all
   ```

**注意**  
这些命令仅适用于插件和主题。您无法通过命令行更改核心更新设置。

## 第 4 步：保持操作系统处于最新状态
<a name="update-wordpress-step-4-os-updates"></a>

仅更新 WordPress 应用程序不足以保证您的实例安全。底层操作系统、Web 服务器、PHP 运行时和数据库也会收到安全补丁。该 WordPress 蓝图在使用 APT 包管理器的 Debian 上运行。

1. 在 Lightsail 控制台中使用基于浏览器的 SSH 客户端，或者使用带有用户名的 SSH 客户端，连接到您的实例。`admin`有关更多信息，请参阅 [在 Lightsail 上连接 Linux 或 Unix 实例](lightsail-how-to-connect-to-your-instance-virtual-private-server.md)。

1. 更新软件包列表并应用所有可用的升级：

   ```
   sudo apt update
   sudo apt upgrade -y
   ```

1. 如果安装了内核更新，请在低流量时段重启实例：

   ```
   sudo reboot
   ```

**重要**  
如果您的实例没有附加静态 IP 地址，则当您停止和启动该实例时，其公有 IP 地址会发生变化。如果您的 DNS 记录指向实例的公有 IP，请在重启之前附加一个静态 IP 地址。有关更多信息，请参阅 [创建静态 IP 并将其附加到你的 Lightsail 实例](lightsail-create-static-ip.md)。

## 问题排查
<a name="update-wordpress-troubleshooting"></a>

### 您的网站处于维护模式
<a name="update-wordpress-troubleshoot-maintenance-mode"></a>

如果更新中断，您的网站可能会继续显示 “暂时无法进行定期维护”。要解决此问题，请使用 SSH 连接到您的实例并从 WordPress 安装目录中删除维护标志文件：

```
rm /var/www/html/.maintenance
```

### 更新破坏了你的网站
<a name="update-wordpress-troubleshoot-broken-update"></a>

从您在[步骤 1 中创建的快照恢复您的实例](#update-wordpress-step-1-backup)。有关更多信息，请参阅 [从快照创建 Lightsail 实例](lightsail-how-to-create-instance-from-snapshot.md)。然后，通过在实例的非生产副本上测试更新，识别不兼容的主题或插件。

### 插件或主题更新失败，显示 “无法将旧版本移至升级临时备份目录”
<a name="update-wordpress-troubleshoot-temp-backup"></a>

在安装更新之前，将旧版本 WordPress 移至，`wp-content/upgrade-temp-backup`以便在更新失败时可以将其恢复。如果您看到此警告，请更新该目录的所有权和权限，然后重试更新：

```
sudo chown -R admin:www-data /var/www/html/wp-content/upgrade-temp-backup
sudo find /var/www/html/wp-content/upgrade-temp-backup -type d -exec chmod 2775 {} \;
sudo find /var/www/html/wp-content/upgrade-temp-backup -type f -exec chmod 0664 {} \;
```

更新安全失败：您的网站继续运行旧的插件或主题版本，直到更新成功为止。

### 一键更新因文件权限错误而失败
<a name="update-wordpress-troubleshoot-permissions"></a>

仪表板更新以 Web 服务器用户身份运行，这需要对 WordPress 文件具有群组写入权限。这通常发生在您通过 SSH 或 SFTP 手动上传插件、主题或其他文件之后，这会创建没有群组写入权限的文件。使用 SSH 连接到您的实例并恢复蓝图使用的所有权和权限：

```
sudo chown -R admin:www-data /var/www/html/wp-content
sudo find /var/www/html/wp-content -type d -exec chmod 2775 {} \;
sudo find /var/www/html/wp-content -type f -exec chmod 0664 {} \;
```