

 AWS Cloud9 不再向新客户提供。 AWS Cloud9 的现有客户可以继续正常使用这项服务。[了解详情](https://aws.amazon.com/blogs/devops/how-to-migrate-from-aws-cloud9-to-aws-ide-toolkits-or-aws-cloudshell/)

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

# WordPress 的教程 AWS Cloud9
<a name="sample-wordpress"></a>

本教程使您能够在 AWS Cloud9 开发环境 WordPress 中安装和运行。 WordPress 是一个开源内容管理系统 (CMS)，广泛用于传送 Web 内容。

**注意**  
按照本教程并创建此示例可能会导致您的 AWS 账户被扣款。这些包括可能对 Amazon Elastic Compute Cloud (Amazon EC2) 等服务收取的费用。有关更多信息，请参阅 [Amazon EC2 定价](https://aws.amazon.com/ec2/pricing/)。

## 先决条件
<a name="sample-wordpress-prereqs"></a>

在使用此示例之前，请确保您的设置满足以下要求：
+ **您必须拥有现有 AWS Cloud9 的 EC2 开发环境。**本示例假设您已经有连接到运行 Amazon Linux 或 Ubuntu Server 的 Amazon EC2 实例的 EC2 环境。如果您有不同类型的环境或操作系统，可能需要按照本示例的说明来设置相关的工具。有关更多信息，请参阅 [在中创建环境 AWS Cloud9](create-environment.md)。
+ **您已经打开了现有环境的 AWS Cloud9 IDE。**打开环境时，会在 Web 浏览器中 AWS Cloud9 打开该环境的 IDE。有关更多信息，请参阅 [在中打开环境 AWS Cloud9](open-environment.md)。
+ **您有一个包含所有最新软件包 up-to-date的 EC2 实例**。在 AWS Cloud9 IDE 终端窗口中，您可以`-y`选择安装更新，而无需进行确认。`yum update`如果您希望在安装前检查更新，则可以忽略该选项。

  ```
  sudo yum update -y
  ```

## 安装概览
<a name="task-overview"></a>

 WordPress 在您的环境的 EC2 实例上安装涉及以下步骤：

1. 安装和配置 MariaDB 服务器，这是一个用于存储安装信息的开源关系数据库 WordPress 

1. 安装和配置 WordPress，包括编辑`wordpress.conf`配置文件

1. 配置托管网站的 Apache 服务器 WordPress 

1. 预览由 Apache 服务器托管的 WordPress 网页内容

## 步骤 1：安装和配置 MariaDB Server
<a name="wp-install-configure-mariadb"></a>

1. 在 AWS Cloud9 IDE 中，选择 “**窗口”、“****新建终端**”，然后输入以下命令来安装和启动 MariaDB 服务器安装：

   ```
   sudo yum install -y mariadb-server
   sudo systemctl start mariadb
   ```

1. 接下来，运行 `mysql_secure_installation` 脚本以提高 MariaDB Server 安装的安全性。

   在提供对脚本的响应时，对第一个问题按 **Enter** 以保持根密码为空。对于 `Set root password?`，按 **n**，然后对于其余的每个安全选项，按 **y**。

   ```
   mysql_secure_installation
   ```

1. 现在使用MariaDB客户端创建一个数据库表来存储 WordPress 信息。

   （当系统要求您输入密码时，按 **Enter**。）

   ```
   sudo mysql -u root -p
   MariaDB [(none)]> create database wp_test;
   MariaDB [(none)]> grant all privileges on wp_test.* to root@localhost identified by ';'
   ```

1. 若要注销 MariaDB 客户端，请运行 `exit` 命令。

## 步骤 2：安装和配置 WordPress
<a name="wp-install-configure-wordpress"></a>

1. 在 IDE 终端窗口中，导航到 `environment` 目录，然后创建目录 `config` 和 `wordpress`。然后运行 `touch` 命令以在 `config` 目录中创建一个名为 `wordpress.conf` 的文件：

   ```
   cd /home/ec2-user/environment
   mkdir config wordpress
   touch config/wordpress.conf
   ```

1. 使用 IDE 编辑器或 vim 更新`wordpress.conf`主机配置信息，允许 Apache 服务器提供 WordPress 内容：

   ```
   # Ensure that Apache listens on port 80
   Listen 8080
   <VirtualHost *:8080>
       DocumentRoot "/var/www/wordpress"
       ServerName www.example.org
       # Other directives here
   </VirtualHost>
   ```

1. 现在运行以下命令来检索所需的存档文件并进行安装 WordPress：

   ```
   cd /home/ec2-user/environment
   wget https://wordpress.org/latest.tar.gz
   tar xvf latest.tar.gz
   ```

1. 运行 `touch` 命令以在 `environment/wordpress` 目录中创建一个名为 `wp-config.php` 的文件：

   ```
   touch wordpress/wp-config.php
   ```

1. 使用 IDE 编辑器或 vim 更新 `wp-config.php`，然后使用您的设置替换示例数据：

   ```
   // ** MySQL settings - You can get this info from your web host ** //
   /** The name of the database for WordPress */
   define( 'DB_NAME', 'wp_test' );
   
   /** MySQL database username */
   define( 'DB_USER', 'wp_user' );
   
   /** MySQL database password */
   define( 'DB_PASSWORD', 'YourSecurePassword' );
   
   /** MySQL hostname */
   define( 'DB_HOST', 'localhost' );
   
   /** Database Charset to use in creating database tables. */
   define( 'DB_CHARSET', 'utf8' );
   
   /** The Database Collate type. Don't change this if in doubt. */
   define( 'DB_COLLATE', '' );
   
   define('FORCE_SSL', true);
   
   if ($_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') $_SERVER['HTTPS'] = 'on';
   ```

## 步骤 3：配置 Apache HTTP Server
<a name="wp-install-configure-apache"></a>

1. 在 AWS Cloud9 IDE 终端窗口中，确保已安装了 Apache：

   ```
   httpd -v
   ```

   如果 Apache 服务器并未安装，请运行以下命令：

   ```
   sudo yum install -y httpd 
   ```

1. 导航到 `/etc/httpd/conf.d` 目录，该目录是 Apache 虚拟主机配置文件的位置。然后使用 `ln` 命令将您之前创建的 `wordpress.conf` 链接到当前工作目录 (`/etc/httpd/conf.d`)：

   ```
   cd /etc/httpd/conf.d
   sudo ln -s /home/ec2-user/environment/config/wordpress.conf
   ```

1. 现在导航到 `/var/www` 目录，该目录是 Apache 服务器的默认根文件夹。然后使用 `ln` 命令将您之前创建的 `wordpress` 目录链接到当前工作目录 (`/var/www`)：

   ```
   cd /var/www
   sudo ln -s /home/ec2-user/environment/wordpress
   ```

1. 运行 `chmod` 命令以允许 Apache 服务器在 `wordpress` 子目录中运行内容：

   ```
   sudo chmod +x /home/ec2-user/
   ```

1. 现在重启 Apache 服务器以允许其检测新的配置：

   ```
   sudo service httpd restart
   ```

## 第 4 步：预览 WordPress 网页内容
<a name="wp-preview-wordpress"></a>

1. 使用 AWS Cloud9 IDE 在以下目录`index.html`中创建一个名为的新文件：`environment/wordpress`。

1. 将 HTML 格式的文本添加到 `index.html`。例如：

   ```
   <h1>Hello World!</h1>
   ```

1. 在**环境**窗口中，选择 `index.html` 文件，然后依次选择**预览**、**预览运行的应用程序**。

   显示 *Hello World！（你好世界！）*消息的网页，会显示在应用程序预览选项卡中。要在首选浏览器中查看 Web 内容，请选择 **Pop Out Into a New Window（在新的弹出窗口中显示）**。

   如果您删除`index.html`文件并刷新应用程序预览选项卡，则会显示 WordPress 配置页面。

## 管理混合内容错误
<a name="wp-allow-mixed"></a>

如果 WordPress 网站同时加载 HTTPS 和 HTTP 脚本或内容，Web 浏览器会显示该网站的混合内容错误。错误消息的措辞取决于您正在使用的 Web 浏览器，但会通知您与站点的连接不安全或不完全安全。您的 Web 浏览器会阻止访问混合内容。

**重要**  
默认情况下，您在 AWS Cloud9 IDE 的应用程序预览选项卡中访问的所有网页都会自动使用 HTTPS 协议。如果页面的 URI 具有不安全的 `http` 协议，则会自动替换为 `https`。并且您无法通过将 `https` 手动更改回 `http` 的方式来访问不安全的内容。  
有关为您的网站实施 HTTPS 的指导，请参阅[WordPress文档](https://wordpress.org/support/article/https-for-wordpress/)。