

 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 開發環境。**本範例假設您已具備 EC2 環境，且該環境已連線到執行 Amazon Linux 或 Ubuntu Server 的 Amazon EC2 執行個體。如果您有不同類型的環境或作業系統，您可能需要依照此範例的說明來設定相關工具。如需詳細資訊，請參閱[在 中建立環境 AWS Cloud9](create-environment.md)。
+ **您已開啟現有環境的 AWS Cloud9 IDE。**當您開啟環境時，請在 Web 瀏覽器中 AWS Cloud9 開啟該環境的 IDE。如需詳細資訊，請參閱[在 中開啟環境 AWS Cloud9](open-environment.md)。
+ **您的最新 EC2 執行個體中包含所有最新的軟體套件**。在 AWS Cloud9 IDE 終端機視窗中，您可以使用 `yum update` `-y`選項執行 來安裝更新，而無需要求確認。如果您要先檢查更新再安裝，則可以略過此選項。

  ```
  sudo yum update -y
  ```

## 安裝概觀
<a name="task-overview"></a>

在您環境的 EC2 執行個體上安裝 WordPress 必須按照以下步驟操作：

1. 安裝和設定 MariaDB 伺服器，這是一種開源的關聯式資料庫，用於存放 WordPress 安裝資訊 

1. 安裝和設定 WordPress，包括編輯 `wordpress.conf` 組態檔案

1. 設定代管 WordPress 網站的 Apache 伺服器

1. 預覽由 Apache 伺服器代管的 WordPress Web 內容

## 步驟 1：安裝與設定 MariaDB 伺服器
<a name="wp-install-configure-mariadb"></a>

1. 在 AWS Cloud9 IDE 中，選擇**視窗**、**新終端機**，然後輸入下列命令來安裝和啟動 MariaDB Server 安裝：

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

1. 然後，執行 `mysql_secure_installation` 指令碼來加強 MariaDB 伺服器安裝的安全性。

   向指令碼提供回應時，請對第一個問題按下 **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 伺服器
<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 Web 內容
<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`檔案 ，然後選擇**預覽**、**預覽執行中的應用程式**。

   應用程式預覽標籤中會出現 web 頁面，顯示 *Hello World！* 訊息。若要在偏好的瀏覽器中檢視 Web 內容，請選擇 **Pop Out Into a New Window** (在新視窗中彈出)。

   如果您刪除 `index.html` 檔案並重新整理應用程式預覽標籤，則 WordPress 組態頁面就會顯示。

## 管理混合內容錯誤
<a name="wp-allow-mixed"></a>

如果 Web 瀏覽器同時載入 HTTPS 和 HTTP 指令碼或內容，就會顯示 WordPress 網站的混合內容錯誤。錯誤訊息的用詞視您使用的 Web 瀏覽器而定，但系統會通知您與網站的連線不安全，或安全性不完整。且您的 Web 瀏覽器會封鎖混合內容的存取權。

**重要**  
根據預設，您在 AWS Cloud9 IDE 應用程式預覽標籤中存取的所有 web 頁面會自動使用 HTTPS 通訊協定。如果頁面的 URI 具有不安全的 `http` 通訊協定，就會自動由 `https` 替代。而且您無法藉由手動將 `https` 改回 `http` 來存取不安全的內容。  
如需了解如何為網站實作 HTTPS，請參閱 [WordPress 文件](https://wordpress.org/support/article/https-for-wordpress/)。