このチュートリアルでは、小規模な WordPress サイトを App Engine フレキシブル環境にデプロイする方法を示します。
目標
- Cloud SQL 第 2 世代インスタンスを作成する。
- WordPress のサンプルサイトを構成する。
- WordPress のサンプルサイトを App Engine フレキシブル環境にデプロイする。
費用
始める前に
-
In the Cloud de Confiance console, on the project selector page, select or create a Cloud de Confiance project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Cloud de Confiance project.
Enable the required APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
Google Cloud CLI をインストールします。
-
フェデレーション ID(連携 ID)を使用するように gcloud CLI を構成します。
詳細については、連携 ID を使用して gcloud CLI にログインするをご覧ください。
-
gcloud CLI を初期化するには、次のコマンドを実行します:
gcloud init -
次の手順で認証情報を作成します。
コンソールで、[認証情報] ページに移動します。 Cloud de Confiance
- [認証情報を作成] をクリックし、[サービス アカウント キー] を選択します。
- [サービス アカウント] > 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 をダウンロードして実行します。
./cloud-sql-proxy \ -dir /tmp/cloudsql \ -instances=[YOUR_PROJECT_ID]:us-central1:tutorial-sql-instance \ -credential_file=[PATH_TO_YOUR_SERVICE_ACCOUNT_JSON]
ここで
[YOUR_PROJECT_ID]は Cloud de Confiance プロジェクト 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-projectWordPress プロジェクトをデプロイします。
gcloud app deploy \ --promote --stop-previous-version app.yaml cron.yamlブラウザに次の URL を入力します。
https://PROJECT_ID.REGION_ID.r.appspot.com次のように置き換えます。
PROJECT_ID: 実際の Cloud de Confiance プロジェクト 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 アカウントに課金されないようにするには、リソースを含むプロジェクトを削除するか、プロジェクトを維持して個々のリソースを削除します。
プロジェクトの削除
課金されないようにする最も簡単な方法は、チュートリアル用に作成したプロジェクトを削除することです。
プロジェクトを削除するには:
- コンソールで [**リソースの管理**] ページに移動します。 Cloud de Confiance
- プロジェクト リストで、削除するプロジェクトを選択し、[削除] をクリックします。
- ダイアログでプロジェクト ID を入力し、 [Shut down] をクリックしてプロジェクトを削除します。
アプリのデフォルト以外のバージョンの削除
プロジェクトを削除しない場合、アプリのデフォルト以外のバージョンを削除すると、コストを抑えることができます。
アプリのバージョンを削除するには:
- コンソールで、App Engine の [**バージョン**] ページに移動します。 Cloud de Confiance
- 削除するデフォルト以外のアプリ バージョンのチェックボックスをオンにします。 削除します。
- アプリのバージョンを削除するには、 delete [Delete] をクリックします。
Cloud SQL インスタンスの削除
Cloud SQL インスタンスを削除するには:
- コンソールで、 [インスタンス] ページに移動します。 Cloud de Confiance
- 削除する SQL インスタンスの名前をクリックします。
- インスタンスを削除するには、 delete [Delete] をクリックして、指示に従います。
次のステップ
WordPress について学ぶ。
Google Cloud に関するリファレンス アーキテクチャ、図、ベスト プラクティスを確認する。Cloud アーキテクチャ センターをご覧ください。