

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# ステップ 2: Amazon Linux または Red Hat エンタープライズ Linux Amazon EC2 インスタンスにデプロイされるようにソースコンテンツを設定する
<a name="tutorials-wordpress-configure-content"></a>

ここでは、アプリケーションのソースコンテンツを設定し、インスタンスにデプロイできるものを用意します。

**Topics**
+ [ソースコードの入手](#tutorials-wordpress-configure-content-download-code)
+ [アプリケーションを実行するスクリプトの作成](#tutorials-wordpress-configure-content-create-scripts)
+ [アプリケーション仕様ファイルの追加](#tutorials-wordpress-configure-content-add-appspec-file)

## ソースコードの入手
<a name="tutorials-wordpress-configure-content-download-code"></a>

このチュートリアルでは、開発マシンからターゲット Amazon EC2 インスタンスに WordPress コンテンツ発行プラットフォームをデプロイします。WordPress のソースコードを入手するには、組み込みのコマンドラインの呼び出しを使用できます。または、開発マシンに Git をインストールしている場合は、代わりにそれを使用します。

これらのステップでは、WordPress ソースコードのコピーを開発マシンの `/tmp` ディレクトリにダウンロードすることを前提としています (任意のディレクトリを選択できますが、ステップで `/tmp` が指定されている場合は、その場所に必ず置き換えてください)。

次の 2 つのオプションのいずれかを選択して、開発マシンに WordPress ソースファイルをコピーします。最初のオプションでは、組み込みのコマンドラインの呼び出しを使用します。2 番目のオプションでは、Git を使用します。

**Topics**
+ [WordPress のソースコード (組み込みのコマンドライン呼び出し) のコピーを入手するには](#tutorials-wordpress-configure-content-download-code-command-line)
+ [WordPress ソースコード (Git) のコピーを入手するには](#tutorials-wordpress-configure-content-download-code-git)

### WordPress のソースコード (組み込みのコマンドライン呼び出し) のコピーを入手するには
<a name="tutorials-wordpress-configure-content-download-code-command-line"></a>

1. **wget** コマンドを呼び出して、WordPress のソースコードのコピーを .zip ファイル形式で現在のディレクトリにダウンロードします。

   ```
   wget https://github.com/WordPress/WordPress/archive/master.zip
   ```

1. **unzip**、**mkdir**、**cp**、**rm** コマンドを呼び出して、以下を実行します。
   + `master`.zip ファイルを `/tmp/WordPress_Temp` ディレクトリ (フォルダ) に解凍します。
   + 解凍された内容を、`/tmp/WordPress` 宛先フォルダにコピーします。
   + 一時的な `/tmp/WordPress_Temp` フォルダと `master` ファイルを削除します。

   コマンドを一度に 1 つずつ実行します。

   ```
   unzip master -d /tmp/WordPress_Temp
   ```

   ```
   mkdir -p /tmp/WordPress
   ```

   ```
   cp -paf /tmp/WordPress_Temp/WordPress-master/* /tmp/WordPress
   ```

   ```
   rm -rf /tmp/WordPress_Temp
   ```

   ```
   rm -f master
   ```

   これにより、`/tmp/WordPress` フォルダに WordPress ソースコードファイルのクリーンなセットが配置されます。

### WordPress ソースコード (Git) のコピーを入手するには
<a name="tutorials-wordpress-configure-content-download-code-git"></a>

1. 開発マシンで [Git](http://git-scm.com) をダウンロードしてインストールします。

1. `/tmp/WordPress` フォルダで **git init** コマンドを呼び出します。

1. **git clone** コマンドを呼び出してパブリック WordPress レポジトリのクローンを作成し、その独自のコピーを `/tmp/WordPress` 宛先フォルダで作成します。

   ```
   git clone https://github.com/WordPress/WordPress.git /tmp/WordPress
   ```

   これにより、`/tmp/WordPress` フォルダに WordPress ソースコードファイルのクリーンなセットが配置されます。

## アプリケーションを実行するスクリプトの作成
<a name="tutorials-wordpress-configure-content-create-scripts"></a>

次に、ディレクトリでフォルダとスクリプトを作成します。CodeDeploy はこれらのスクリプトを使用して、ターゲット Amazon EC2 インスタンスでアプリケーションリビジョンをセットアップし、デプロイします。スクリプトの作成には任意のテキストエディタを使用できます。

1. WordPress ソースコードのコピーでスクリプトディレクトリを作成します。

   ```
   mkdir -p /tmp/WordPress/scripts
   ```

1. `install_dependencies.sh` に `/tmp/WordPress/scripts` ファイルを作成します。ファイルに以下の行を追加します。この `install_dependencies.sh` スクリプトは Apache、MySQL、および PHP をインストールします。また、PHP に MySQL のサポートを追加します。

   ```
   #!/bin/bash
   sudo amazon-linux-extras install php7.4
   sudo yum install -y httpd mariadb-server php
   ```

1. `start_server.sh` に `/tmp/WordPress/scripts` ファイルを作成します。ファイルに以下の行を追加します。この `start_server.sh` スクリプトは Apache および MySQL を起動します。

   ```
   #!/bin/bash
   systemctl start mariadb.service
   systemctl start httpd.service
   systemctl start php-fpm.service
   ```

1. `stop_server.sh` に `/tmp/WordPress/scripts` ファイルを作成します。ファイルに以下の行を追加します。この `stop_server.sh` スクリプトは Apache および MySQL を停止します。

   ```
   #!/bin/bash
   isExistApp="pgrep httpd"
   if [[ -n $isExistApp ]]; then
   systemctl stop httpd.service
   fi
   isExistApp=pgrep mysqld
   if [[ -n $isExistApp ]]; then
   systemctl stop mariadb.service
   fi
   isExistApp=pgrep php-fpm
   if [[ -n $isExistApp ]]; then
   systemctl stop php-fpm.service
   
   fi
   ```

1. `create_test_db.sh` に `/tmp/WordPress/scripts` ファイルを作成します。ファイルに以下の行を追加します。この `create_test_db.sh` スクリプトは、MySQL を使用して、WordPress で使用する **test** データベースを作成します。

   ```
   #!/bin/bash
   mysql -uroot <<CREATE_TEST_DB
   CREATE DATABASE IF NOT EXISTS test;
   CREATE_TEST_DB
   ```

1. 最後に、`/tmp/WordPress/scripts` に `change_permissions.sh` スクリプトファイルを作成します。これは Apache のフォルダのアクセス権限を変更するために使用されます。
**重要**  
 このスクリプトにより、誰でも書き込めるように、`/tmp/WordPress` フォルダのアクセス権限が更新されました。これは、「[ステップ 5: WordPress アプリケーションを更新して再デプロイする](tutorials-wordpress-update-and-redeploy-application.md)」で WordPress がそのデータベースに書き込みを行うために必要です。WordPress アプリケーションがセットアップされたら、次のコマンドを実行して、アクセス権限をよりセキュアな設定に更新します。  

   ```
   chmod -R 755 /var/www/html/WordPress
   ```

   ```
   #!/bin/bash
   chmod -R 777 /var/www/html/WordPress
   ```

1. すべてのスクリプトに実行可能権限を付与します。コマンドラインで、次のように入力します。

   ```
   chmod +x /tmp/WordPress/scripts/*
   ```

## アプリケーション仕様ファイルの追加
<a name="tutorials-wordpress-configure-content-add-appspec-file"></a>

次に、アプリケーション仕様ファイル (AppSpec ファイル) [YAML](http://www.yaml.org) CodeDeploy によって使用されるフォーマットされたファイルを追加します。
+ アプリケーションリビジョンのソースファイルを、ターゲット Amazon EC2 インスタンスの宛先にマッピングする。
+ デプロイされたファイルのカスタムアクセス権限を指定する。
+ デプロイ中にターゲット Amazon EC2 インスタンスで実行するスクリプトを指定する。

AppSpec のファイル名は、`appspec.yml` とする必要があります。アプリケーションソースコードのルートディレクトリに配置する必要があります。このチュートリアルでは、ルートディレクトリは `/tmp/WordPress` です。

テキストエディタで `appspec.yml` という名前のファイルを作成します。このファイルに次の行を追加します。

```
version: 0.0
os: linux
files:
  - source: /
    destination: /var/www/html/WordPress
hooks:
  BeforeInstall:
    - location: scripts/install_dependencies.sh
      timeout: 300
      runas: root
  AfterInstall:
    - location: scripts/change_permissions.sh
      timeout: 300
      runas: root
  ApplicationStart:
    - location: scripts/start_server.sh
    - location: scripts/create_test_db.sh
      timeout: 300
      runas: root
  ApplicationStop:
    - location: scripts/stop_server.sh
      timeout: 300
      runas: root
```

CodeDeploy はこの AppSpec ファイルを使用して、開発マシンの `/tmp/WordPress` フォルダのすべてのファイルを、ターゲットの Amazon EC2 インスタンスの `/var/www/html/WordPress` フォルダにコピーします。デプロイ中に CodeDeploy は、デプロイライフサイクルで `root` や `/var/www/html/WordPress/scripts` などの中に指定されたイベントで、指定するスクリプトをターゲットの Amazon EC2 インスタンスの **BeforeInstall**、**AfterInstall** のフォルダとして実行します。これらのスクリプトのいずれかで実行に 300 秒 (5 分) 以上かかる場合、CodeDeploy はデプロイを停止し、デプロイを失敗としてマークします。

これらの設定の詳細については、「[CodeDeploy AppSpec ファイルのリファレンス](reference-appspec-file.md)」を参照してください。

**重要**  
このファイルの項目間のスペースの場所と数は重要です。間隔が正しくない場合、CodeDeploy はデバッグが困難な可能性のあるエラーを発生させます。詳細については、「[AppSpec ファイルの間隔](reference-appspec-file.md#reference-appspec-file-spacing)」を参照してください。