

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

# 使用 WP 卸载媒体将 Lightsail 上的 WordPress 网站连接到亚马逊 S3
<a name="amazon-lightsail-connecting-wordpress-to-amazon-s3"></a>

本教程介绍了将在 Amazon Lightsail 实例上运行的 WordPress 网站连接到用于存储网站图像和附件的亚马逊简单存储服务 (Amazon S3) 存储桶所需的步骤。为此，您需要为 WordPress 插件配置一组 Amazon Web Services (AWS) 账户证书。然后，该插件会为您创建 Amazon S3 存储桶，并将您的网站配置为使用存储桶而不是实例的磁盘来存储网站图像和附件。

**Topics**
+ [步骤 1：完成先决条件](#connect-wordpress-to-s3-prerequisites)
+ [第 2 步：在您的 WordPress 网站上安装 WP 卸载媒体插件](#install-wp-offload-media-on-wordpress)
+ [步骤 3：创建 IAM 策略](#create-iam-policy-for-wordpress)
+ [步骤 4：创建 IAM 用户](#create-iam-user-for-wordpress)
+ [步骤 5：为您的 IAM 用户创建访问密钥](#create-access-key-for-wordpress)
+ [步骤 6：编辑 WordPress 配置文件](#edit-the-wp-config-file-for-s3-bucket)
+ [第 7 步：使用 WP 卸载媒体插件创建 Amazon S3 存储桶](#create-the-amazon-s3-bucket)
+ [步骤 8：后续步骤](#connect-wordpress-to-s3-prerequisites-next-steps)

## 步骤 1：完成先决条件
<a name="connect-wordpress-to-s3-prerequisites"></a>

在开始之前，请在 Lightsail 中创建一个 WordPress 实例，并确保其处于运行状态。有关更多信息，请参阅[教程：启动和配置实 WordPress 例](amazon-lightsail-tutorial-launching-and-configuring-wordpress.md)。

## 第 2 步：在您的 WordPress 网站上安装 WP 卸载媒体插件
<a name="install-wp-offload-media-on-wordpress"></a>

您必须使用插件来配置您的网站，以使用 Amazon S3 存储桶。许多插件可用于配置此功能；比如 [WP Offload Media Lite](https://wordpress.org/plugins/amazon-s3-and-cloudfront/)。

**在您的 WordPress 网站上安装 WP Offload Media 插件**

1. 以管理员身份登录 WordPress 控制面板。

   有关更多信息，请参阅[在 Amazon Lightsail 中获取 Bitnami 实例的应用程序用户名和密码](log-in-to-your-bitnami-application-running-on-amazon-lightsail.md)。

1. 将鼠标指针悬停在左侧导航菜单的 **Plugins (插件)** 上，然后选择 **Add New (新增)**。  
![在 WordPress 控制面板中添加新的插件菜单项。](http://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/amazon-lightsail-wordpress-add-new-plugin-menu.png)

1. 搜索 **WP Offload Media Lite**。

1. 在搜索结果中，选择 **WP Offload Media** 插件旁边的**立即安装**。  
![WP 卸载媒体精简版插件适用于. WordPress](http://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/amazon-lightsail-wp-offload-media-plugin.png)

1. 完成插件安装后，选择 **Activate (激活)**。

1. 在左侧导航菜单中，选择 **Settings (设置)**，然后选择 **Offload Media**。  
![Wordpress 控制面板设置。](http://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/amazon-lightsail-offload-media-menu.png)

1. 在 **Offload Media** 页面上，选择 **Amazon S3** 作为存储提供程序，然后选择**在 wp-config.php 中定义访问密钥**。

   使用此选项，您必须将您的 AWS 账户证书添加到实例`wp-config.php`上。本教程的后续部分中涵盖了这些步骤。  
![WP Offload Media 页面。](http://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/amazon-lightsail-offload-media-configuration.png)

   保持 **Offload Media** 页面打开；在本教程的后续部分中要返回使用它。继续执行本教程的 [步骤 3：创建 IAM 策略](#create-iam-policy-for-wordpress) 部分。

## 步骤 3：创建 IAM 策略
<a name="create-iam-policy-for-wordpress"></a>

**警告**  
此场景需要 IAM 用户具有编程访问权限和长期凭证，这会带来安全风险。为帮助减轻这种风险，我们建议仅向这些用户提供执行任务所需的权限，并在不再需要这些用户时将其移除。必要时可以更新访问密钥。有关更多信息，请参阅《IAM 用户指南》**中的[更新访问密钥](https://docs.aws.amazon.com/IAM/latest/UserGuide/id-credentials-access-keys-update.html)。

WP Offload Media 插件需要访问您的 AWS 账户才能创建 Amazon S3 存储桶，以及上传您的网站图像和附件。

**为 WP Offload Media 插件创建新 AWS Identity and Access Management (IAM) 策略**

1. 打开一个新的浏览器选项卡，然后登录到 [IAM 控制台](https://console.aws.amazon.com/iam/)。

1. 在左侧导航菜单中的**访问权限管理**下，选择**策略**。

1. 选择**创建策略**。

1. 在**创建策略**页面上，选择 **JSON**，然后删除策略编辑器中的所有内容。

1. 在策略编辑器中指定以下内容，将的示例存储桶名称替换为您自己的存储桶名称：{{amzn-s3-demo-bucket}}

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": "s3:*",
               "Resource": [
                   "arn:aws:s3:::{{amzn-s3-demo-bucket}}/*",
                   "arn:aws:s3:::{{amzn-s3-demo-bucket}}"
               ]
           }
       ]
   }
   ```

------

1. 选择**下一步**。

1. 对于 **Policy name**（策略名称），输入此策略的名称。
**提示**  
指定描述性名称，如 **wp\_s3\_user\_policy** 或 **wp\_offload\_media\_plugin\_user\_policy**，以便您以后在执行维护时可以轻松识别。

1. 选择**创建策略**。

   保持 IAM 控制台处于打开状态，以备下一步使用。

## 步骤 4：创建 IAM 用户
<a name="create-iam-user-for-wordpress"></a>

创建新的 IAM 用户并附加之前创建的策略，以授予使用 WP Offload Media 插件所需的权限。

**为 WP Offload Media 插件创建新 AWS Identity and Access Management (IAM) 用户**

1. 如有必要，请打开 [IAM 控制台](https://console.aws.amazon.com/iam/)。

1. 在左侧导航菜单中的**访问权限管理**下，选择**用户**。

1. 选择**创建用户**。

1. 对于**用户名**，输入新用户的名称，然后选择**下一步**。
**提示**  
指定描述性名称，如 **wp\_s3\_user** 或 **wp\_offload\_media\_plugin\_user**，以便您以后在执行维护时可以轻松识别。

1. 选择**直接附加策略**。

1. 在**权限策略**部分，在搜索栏中输入您之前创建的策略的名称。

1. 选择策略，然后选择**下一步**。

1. 选择**创建用户**。

   保持 IAM 控制台处于打开状态，以备下一步使用。

## 步骤 5：为您的 IAM 用户创建访问密钥
<a name="create-access-key-for-wordpress"></a>

为 IAM 用户创建将由 WP Offload Media 插件使用的访问密钥。

**为 WP Offload Media 插件创建新 AWS Identity and Access Management (IAM) 用户**

1. 如有必要，请打开 [IAM 控制台](https://console.aws.amazon.com/iam/)。

1. 在左侧导航菜单中的**访问权限管理**下，选择**用户**。

1. 选择用户名称转到用户详细信息页面。

1. 在 ‭**‬Security credentials‭**‬（安全凭证）选项卡的 **Access keys**（访问密钥）部分中，选择‭ **Create access key**‬（创建访问密钥）。

1. 选择**其他**，然后选择**下一步**。

1. 选择**创建访问密钥**。

1. 记下 IAM 用户的**访问密钥 ID** 和**秘密访问密钥**。您也可以选择 **Download .csv**，将这些值的副本保存到本地磁盘。在接下来的几个步骤中，在 WordPress 实例上编辑`wp-config.php`文件时，您将需要这些内容。

   现在，您可以关闭 IAM 控制台，然后在 Lightsail 控制台上继续执行下一步操作。

## 步骤 6：编辑 WordPress 配置文件
<a name="edit-the-wp-config-file-for-s3-bucket"></a>

该 `wp-config.php` 文件包含您网站的基础配置详细信息，如数据库连接信息。

**编辑您的 WordPress 实例中的`wp-config.php`文件**

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

1. 为实例选择基于浏览器的 SSH 客户端图标。 WordPress   
![Lightsail 控制台中基于浏览器的 SSH 客户端图标。](http://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/amazon-lightsail-wordpress-browser-based-ssh-client.png)
**注意**  
您也可以使用自己的 SSH 客户端连接到实例。有关更多信息，请参阅在 [Lightsail 中下载并设置 PuTTY 以使用 SSH 进行连接](lightsail-how-to-set-up-putty-to-connect-using-ssh.md)。

1. 在显示的 SSH 客户端窗口中，输入以下命令来创建 `wp-config.php` 文件的备份，以防出现问题：

   ```
   sudo cp /opt/bitnami/wordpress/wp-config.php /opt/bitnami/wordpress/wp-config.php.backup
   ```

1. 输入以下命令以使用文本编辑器 `nano` 打开 `wp-config.php` 文件：

   ```
   nano /opt/bitnami/wordpress/wp-config.php
   ```

1. 输入 `/* That's all, stop editing! Happy blogging. */` 文本上方的以下文本。

   请务必{{AccessKeyID}}替换为您在这些步骤之前创建的 IAM 用户的访问密钥 ID 和{{SecretAccessKey}}私有访问密钥。

   ```
   define( 'AS3CF_SETTINGS', serialize( array(
       'provider' => 'aws',
       'access-key-id' => '{{AccessKeyID}}',
       'secret-access-key' => '{{SecretAccessKey}}',
   ) ) );
   ```

   示例：

   ```
   define( 'AS3CF_SETTINGS', serialize( array(
       'provider' => 'aws',
       'access-key-id' => '{{AKIAIOSFODNN7EXAMPLE}}',
       'secret-access-key' => '{{wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY}}',
   ) ) );
   ```

   结果应该类似于以下示例：  
![AWS wp-config.php文件中的账户凭证。](http://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/amazon-lightsail-ssh-wp-config-s3-bucket.png)

1. 按 **Ctrl\+X** 以退出 Nano，然后按下 **Y** 和 **Enter**，将您的编辑保存到 `wp-config.php` 文件。

1. 输入以下命令以重新启动实例上的服务：

   ```
   sudo /opt/bitnami/ctlscript.sh restart
   ```

   服务已重新启动时，您将看到与以下内容类似的结果：  
![重新启动实例上的服务。](http://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/amazon-lightsail-ssh-restart-services-bitnami.png)

   关闭 SSH 窗口并切换回本教程前期打开的 **Offload Media** 页面。现在，您已准备就绪，可[使用 WP Offload Media 插件创建 Amazon S3 存储桶](#create-the-amazon-s3-bucket)。

## 第 7 步：使用 WP 卸载媒体插件创建 Amazon S3 存储桶
<a name="create-the-amazon-s3-bucket"></a>

现在，`wp-config.php` 文件已使用亚马逊云科技凭证完成了配置，您可以返回 **Offload Media** 页面完成此流程。

**要使用 WP Offload Media 插件创建 Amazon S3 存储桶**

1. 刷新 **Offload Media** 页面，或选择 **Next (下一步)**。

   现在，您应该看到 Amazon S3 提供程序已配置。

1. 选择 **Create new bucket (创建新的存储桶)**。  
![使用 WP Offload Media 插件创建新的 Amazon S3 存储桶。](http://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/amazon-lightsail-offload-media-create-new-bucket.png)

1. 在 **Region (区域)** 下拉菜单中，选择所需的亚马逊云科技区域。我们建议您选择 WordPress 实例所在的相同区域。

1. 在 **Bucket (存储桶)** 文本框中，输入新 S3 存储桶的名称。  
![使用 WP Offload Media 插件配置新的 Amazon S3 存储桶。](http://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/amazon-lightsail-offload-media-bucket-configuration.png)

1. 选择 **Create New Bucket (创建新的存储桶)**。

   此页面将刷新，以确认新存储桶已创建。查看显示的设置，并根据您希望 WordPress 网站的表现进行相应调整。  
![WP Offload Media 插件设置。](http://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/amazon-lightsail-offload-media-settings-saved.png)

   从现在开始，已添加到博客文章的图像和附件将自动上传到您已创建的 Amazon S3 存储桶中。

## 步骤 8：后续步骤
<a name="connect-wordpress-to-s3-prerequisites-next-steps"></a>

将 WordPress 网站连接到 Amazon S3 存储桶后，应创建 WordPress 实例快照以备份所做的更改。有关更多信息，请参阅[创建 Linux 或 Unix 实例的快照](lightsail-how-to-create-a-snapshot-of-your-instance.md)。