翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
ステップ 2: Amazon Linux または Red Hat エンタープライズ Linux Amazon EC2 インスタンスにデプロイされるようにソースコンテンツを設定する
ここでは、アプリケーションのソースコンテンツを設定し、インスタンスにデプロイできるものを用意します。
ソースコードの入手
このチュートリアルでは、開発マシンからターゲット Amazon EC2 インスタンスに WordPress コンテンツ発行プラットフォームをデプロイします。WordPress のソースコードを入手するには、組み込みのコマンドラインの呼び出しを使用できます。または、開発マシンに Git をインストールしている場合は、代わりにそれを使用します。
これらのステップでは、WordPress ソースコードのコピーを開発マシンの /tmp ディレクトリにダウンロードすることを前提としています (任意のディレクトリを選択できますが、ステップで /tmp が指定されている場合は、その場所に必ず置き換えてください)。
次の 2 つのオプションのいずれかを選択して、開発マシンに WordPress ソースファイルをコピーします。最初のオプションでは、組み込みのコマンドラインの呼び出しを使用します。2 番目のオプションでは、Git を使用します。
WordPress のソースコード (組み込みのコマンドライン呼び出し) のコピーを入手するには
-
wget コマンドを呼び出して、WordPress のソースコードのコピーを .zip ファイル形式で現在のディレクトリにダウンロードします。
wget https://github.com/WordPress/WordPress/archive/master.zip -
unzip、mkdir、cp、rm コマンドを呼び出して、以下を実行します。
-
master.zip ファイルを/tmp/WordPress_Tempディレクトリ (フォルダ) に解凍します。 -
解凍された内容を、
/tmp/WordPress宛先フォルダにコピーします。 -
一時的な
/tmp/WordPress_Tempフォルダとmasterファイルを削除します。
コマンドを一度に 1 つずつ実行します。
unzip master -d /tmp/WordPress_Tempmkdir -p /tmp/WordPresscp -paf /tmp/WordPress_Temp/WordPress-master/* /tmp/WordPressrm -rf /tmp/WordPress_Temprm -f masterこれにより、
/tmp/WordPressフォルダに WordPress ソースコードファイルのクリーンなセットが配置されます。 -
WordPress ソースコード (Git) のコピーを入手するには
-
開発マシンで Git
をダウンロードしてインストールします。 -
/tmp/WordPressフォルダで git init コマンドを呼び出します。 -
git clone コマンドを呼び出してパブリック WordPress レポジトリのクローンを作成し、その独自のコピーを
/tmp/WordPress宛先フォルダで作成します。git clone https://github.com/WordPress/WordPress.git /tmp/WordPressこれにより、
/tmp/WordPressフォルダに WordPress ソースコードファイルのクリーンなセットが配置されます。
アプリケーションを実行するスクリプトの作成
次に、ディレクトリでフォルダとスクリプトを作成します。CodeDeploy はこれらのスクリプトを使用して、ターゲット Amazon EC2 インスタンスでアプリケーションリビジョンをセットアップし、デプロイします。スクリプトの作成には任意のテキストエディタを使用できます。
-
WordPress ソースコードのコピーでスクリプトディレクトリを作成します。
mkdir -p /tmp/WordPress/scripts -
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 -
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 -
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 -
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 -
最後に、
/tmp/WordPress/scriptsにchange_permissions.shスクリプトファイルを作成します。これは Apache のフォルダのアクセス権限を変更するために使用されます。重要
このスクリプトにより、誰でも書き込めるように、
/tmp/WordPressフォルダのアクセス権限が更新されました。これは、「ステップ 5: WordPress アプリケーションを更新して再デプロイする」で WordPress がそのデータベースに書き込みを行うために必要です。WordPress アプリケーションがセットアップされたら、次のコマンドを実行して、アクセス権限をよりセキュアな設定に更新します。chmod -R 755 /var/www/html/WordPress#!/bin/bash chmod -R 777 /var/www/html/WordPress -
すべてのスクリプトに実行可能権限を付与します。コマンドラインで、次のように入力します。
chmod +x /tmp/WordPress/scripts/*
アプリケーション仕様ファイルの追加
次に、アプリケーション仕様ファイル (AppSpec ファイル) YAML
-
アプリケーションリビジョンのソースファイルを、ターゲット 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 ファイルのリファレンス」を参照してください。
重要
このファイルの項目間のスペースの場所と数は重要です。間隔が正しくない場合、CodeDeploy はデバッグが困難な可能性のあるエラーを発生させます。詳細については、「AppSpec ファイルの間隔」を参照してください。