このチュートリアルでは、小規模な WordPress サイトを App Engine フレキシブル環境にデプロイする方法を示します。
目標
- Cloud SQL 第 2 世代インスタンスを作成する。
- WordPress のサンプルサイトを構成する。
- WordPress のサンプルサイトを App Engine フレキシブル環境にデプロイする。
費用
始める前に
- アカウントにログインします。 Google Cloud を初めて使用する場合は、 アカウントを作成して、 実際のシナリオでプロダクトがどのように機能するかを評価してください。 Google Cloud新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud 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 Google Cloud 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 プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。
-
gcloud CLI を初期化するには、次のコマンドを実行します:
gcloud init -
In the Google Cloud console, on the project selector page, select or create a Google Cloud 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 Google Cloud 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 プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。
-
gcloud CLI を初期化するには、次のコマンドを実行します:
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 をダウンロードして実行します。
./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]は 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-projectWordPress プロジェクトをデプロイします。
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 アカウントに課金されないようにするには、リソースを含むプロジェクトを削除するか、プロジェクトを維持して個々のリソースを削除します。
プロジェクトの削除
課金されないようにする最も簡単な方法は、チュートリアル用に作成したプロジェクトを削除することです。
プロジェクトを削除するには:
- コンソールで [**リソースの管理**] ページに移動します。 Google Cloud
- プロジェクト リストで、削除するプロジェクトを選択し、[削除] をクリックします。
- ダイアログでプロジェクト ID を入力し、 [Shut down] をクリックしてプロジェクトを削除します。
アプリのデフォルト以外のバージョンの削除
プロジェクトを削除しない場合、アプリのデフォルト以外のバージョンを削除すると、コストを抑えることができます。
アプリのバージョンを削除するには:
- コンソールで、App Engine の [**バージョン**] ページに移動します。 Google Cloud
- 削除するデフォルト以外のアプリ バージョンのチェックボックスをオンにします。 削除します。
- アプリのバージョンを削除するには、 delete [Delete] をクリックします。
Cloud SQL インスタンスの削除
Cloud SQL インスタンスを削除するには:
- コンソールで、 [インスタンス] ページに移動します。 Google Cloud
- 削除する SQL インスタンスの名前をクリックします。
- インスタンスを削除するには、 delete [Delete] をクリックして、指示に従います。
次のステップ
WordPress について学ぶ。
Google Cloud に関するリファレンス アーキテクチャ、図、ベスト プラクティスを確認する。Cloud アーキテクチャ センターをご覧ください。