このチュートリアルでは、小規模な WordPress サイトを App Engine フレキシブル環境にデプロイする方法を示します。
目標
- Cloud SQL 第 2 世代インスタンスを作成する。
- WordPress のサンプルサイトを構成する。
- WordPress のサンプルサイトを App Engine フレキシブル環境にデプロイする。
費用
料金計算ツールを使うと、予想使用量に基づいて費用の見積もりを生成できます。
始める前に
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the required APIs.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the required APIs.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
次の手順で認証情報を作成します。
Google Cloud コンソールで、[認証情報] ページに移動します。
- [認証情報を作成] をクリックし、[サービス アカウント キー] を選択します。
- [サービス アカウント] > App Engine のデフォルトのサービス アカウントを選択します。
- [作成] をクリックします。
- ダウンロードしたキーを安全な場所に保存します。
- PHP と Composer をインストールします。
-
Cloud SQL Proxy をダウンロードして、実行可能ファイルにします。また、Cloud SQL Proxy の実行可能ファイルの場所を
PATH
環境変数に追加します。 -
MySQL クライアントをインストールし、
mysql
実行可能ファイルの場所がPATH
環境変数に含まれていることを確認します。
Cloud SQL 第 2 世代インスタンスの作成と構成
Cloud SQL 第 2 世代インスタンスを作成します。
gcloud sql instances create tutorial-sql-instance \ --activation-policy=ALWAYS \ --tier=db-n1-standard-1 \ --region=us-central1
インスタンスに root パスワードを設定します。
gcloud sql users set-password root --instance tutorial-sql-instance \ --password [YOUR_SQL_ROOT_PASSWORD] \ --host %
[YOUR_SQL_ROOT_PASSWORD]
は任意の安全なパスワードです。Cloud SQL Proxy をダウンロードして実行します。
wget https://dl.google.com/cloudsql/cloud_sql_proxy.linux.amd64 -O cloud_sql_proxy cloud_sql_proxy \ -dir /tmp/cloudsql \ -instances=[YOUR_PROJECT_ID]:us-central1:tutorial-sql-instance=tcp:3306 \ -credential_file=[PATH_TO_YOUR_SERVICE_ACCOUNT_JSON]
ここで
[YOUR_PROJECT_ID]
はユーザーの Google Cloud プロジェクト ID です。[PATH_TO_YOUR_SERVICE_ACCOUNT_JSON]
は、前にダウンロードしたサービス アカウント JSON ファイルのパスです。
次の出力は、新しい接続に対してプロキシの準備ができていることを示します。
Listening on 127.0.0.1:3306 for [YOUR_PROJECT_ID]:us-central1:tutorial-sql-instance Ready for new connections
別のターミナル ウィンドウで、新しいデータベースとユーザーを作成します。
mysql -h 127.0.0.1 -u root --password=[YOUR_SQL_ROOT_PASSWORD] mysql> create database tutorialdb; mysql> create user 'tutorial-user'@'%' identified by '[YOUR_DATABASE_PASSWORD]'; mysql> grant all on tutorialdb.* to 'tutorial-user'@'%'; mysql> exit
ここで
[YOUR_SQL_ROOT_PASSWORD]
は、Cloud SQL インスタンスの root パスワードです。[YOUR_DATABASE_PASSWORD]
は、任意の安全なパスワードです。
WordPress プロジェクトの設定
サンプル リポジトリのクローンを作成します。
git clone https://github.com/GoogleCloudPlatform/php-docs-samples.git
サンプルコードのあるディレクトリに移動します。
cd php-docs-samples/appengine/flexible/wordpress
依存関係をインストールします。
composer install
ヘルパー スクリプトを実行します。
php wordpress.php setup -n \ --dir=./wordpress-project \ --db_instance=tutorial-sql-instance \ --db_name=tutorialdb \ --db_user=tutorial-user \ --project_id=[YOUR_PROJECT_ID] \ --db_password=[YOUR_DATABASE_PASSWORD]
ここで
[YOUR_PROJECT_ID]
はプロジェクト ID です。[YOUR_DATABASE_PASSWORD]
はデータベース パスワードです。
-dir
パラメータは、WordPress プロジェクトの場所を指定します。ヘルパー スクリプトは
wordpress-project/wordpress/wp-config.php
に情報を書き込みます。wp-config.php
の内容を調べて、名前、プロジェクト ID、データベース パスワードが正しいことを確認します。if ($onGae) { /** Production environment */ define('DB_HOST', ':/cloudsql/[YOUR_PROJECT_ID]:us-central1:tutorial-sql-instance'); /** The name of the database for WordPress */ define('DB_NAME', 'tutorialdb'); /** MySQL database username */ define('DB_USER', 'tutorial-user'); /** MySQL database password */ define('DB_PASSWORD', '[YOUR_DATABASE_PASSWORD]'); } else { /** Local environment */ define('DB_HOST', '127.0.0.1'); /** The name of the database for WordPress */ define('DB_NAME', 'tutorialdb'); /** MySQL database username */ define('DB_USER', 'tutorial-user'); /** MySQL database password */ define('DB_PASSWORD', '[YOUR_DATABASE_PASSWORD]'); }
App Engine フレキシブル環境への WordPress プロジェクトのデプロイ
WordPress のプロジェクト ディレクトリに移動します。
cd wordpress-project
WordPress プロジェクトをデプロイします。
gcloud app deploy \ --promote --stop-previous-version app.yaml cron.yaml
ブラウザに次の URL を入力します。
https://PROJECT_ID.REGION_ID.r.appspot.com
以下を置き換えます。
PROJECT_ID
: Google Cloud プロジェクト IDREGION_ID
: App Engine がアプリに割り当てるコード
WordPress、プラグイン、テーマの更新
WordPress、プラグイン、テーマは常に最新の状態に保つことが重要です。wp
ツールを使用して、これらのアイテムを最新の状態に更新できます。更新後に、WordPress プロジェクトを再デプロイする必要があります。
WordPress 自体を更新します。
vendor/bin/wp core update --path=wordpress
プラグインを更新します。
vendor/bin/wp plugin update --all --path=wordpress # Just in case it updates any of the dropins, copy the files: cp wordpress/wp-content/plugins/batcache/advanced-cache.php \ wordpress/wp-content/plugins/memcached/object-cache.php \ wordpress/wp-content
テーマを更新します。
vendor/bin/wp theme update --all --path=wordpress
プロジェクトを再度デプロイします。
gcloud app deploy \ --promote --stop-previous-version app.yaml cron.yaml
クリーンアップ
このチュートリアルで使用したリソースについて、Google Cloud アカウントに課金されないようにするには、リソースを含むプロジェクトを削除するか、プロジェクトを維持して個々のリソースを削除します。
プロジェクトの削除
課金をなくす最も簡単な方法は、チュートリアル用に作成したプロジェクトを削除することです。
プロジェクトを削除するには:
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
アプリのデフォルト以外のバージョンの削除
プロジェクトを削除しない場合、アプリのデフォルト以外のバージョンを削除すると、コストを抑えることができます。
アプリのバージョンを削除するには:
- In the Google Cloud console, go to the Versions page for App Engine.
- Select the checkbox for the non-default app version that you want to delete.
- アプリのバージョンを削除するには、[ 削除] をクリックします。
Cloud SQL インスタンスの削除
Cloud SQL インスタンスを削除するには:
- In the Google Cloud console, go to the Instances page.
- Click the name of the SQL instance you that want to delete.
- To delete the instance, click Delete, and then follow the instructions.
次のステップ
WordPress について学ぶ。
Google Cloud に関するリファレンス アーキテクチャ、図、ベスト プラクティスを確認する。Cloud アーキテクチャ センター をご覧ください。