本概要は「オートスケーリングなWordPress を構築について」をご覧ください。
操作手順
GCP プロジェクトを作成している前提で進めます。
Cloud SQL でMySQL インスタンスを作成
- 左上のメニュー「≡」を選択し、「SQL」をクリックします。
- Cloud SQL インスタンスの作成を行います。
- 「MySQL を選択」をクリックします。
![GCP 管理コンソール:Cloud SQLを選択](https://storage.4watcher365.dev/1e100/5e38258b-gcp_created_cloud-sql-instance.gif)
各項目を入力し、Cloud SQL インスタンスを作成します。
- インスタンス ID:適当な名称を入力します。
- root パスワード:適当なパスワードを入力します
- リージョン:利用されるリージョンを選択します。
- データベースのバージョン:MySQL 5.7
- マシン タイプ:db-g1-small
今回は、「db-g1-small」「HDD 10GB」ですが「設定オプションを表示」をクリックし、用途に合わせて好きな設定に変更ください。
※ db-f1-micro、db-g1-small はCloud SQL SLA 対象外です。
![GCP 管理コンソール:Cloud SQLインスタンスの作成](https://storage.4watcher365.dev/1e100/c3b43729-gcp_create_cloud-sql-instance.jpg)
※ SQL インスタンスの作成には時間がかかります。
ユーザーの作成
作成したインスタンス をクリックします。
- 左のナビゲーションから「ユーザー」を選択します。
- 「ユーザー アカウントを作成」をクリックします。
- ユーザー名とパスワードを適当に入力し、「作成」をクリックします。
![GCP 管理コンソール:Cloud SQL:ユーザーアカウントの作成](https://storage.4watcher365.dev/1e100/18c5e034-gcp_create_cloud-sql_create-user-account.jpg)
データベースの作成
- 左のナビゲーションから「データベース」を選択します。
- 「データベースを作成」をクリックします。
- ユーザー名とパスワードを適当に入力し、「作成」をクリックします。
![GCP 管理コンソール:Cloud SQL:データベースの作成](https://storage.4watcher365.dev/1e100/535274e7-gcp_create_cloud-sql_create-database.jpg)
ターミナルを開く
※ コマンドに [〜〜〜〜] と記載してあります。正しい情報に書き換えてください。
Ex: [PROJECT_ID] → [weighty-nation-285706]
ターミナルでWordPressの設定とGAE へのデプロイを行います。
操作がしやすいようにターミナル専用ウィンドウを開きます。
また、エディターも開くことでディレクトリを可視化してわかりやすくします。
- 右上の「Cloud Shall」をクリックします。
- CloudShall バーから「エディターを開く」をクリックします。
- エディター バーから「新しいウィンドウを開く」をクリックします。
GCP プロジェクトが設定されていない場合は次のコマンドを入力し、使用するGCP プロジェクトを設定します。
※ [PROJECT_ID] はダッシュボードに載っているプロジェクト情報>プロジェクト ID です。
gcloud config set project [PROJECT_ID]
![ターミナル:GCP プロジェクトの指定](https://storage.4watcher365.dev/1e100/5ec2bd7e-terminal_setup-project.jpg)
WordPress を作成する
Composer をインストール
次のコマンドを実行して、Google Cloud 用のパッケージ管理システム composer をインストールします。
composer require google/cloud-tools
インストールが完了するとCloud Shell のHOME 領域に次の3つが作成されています。
- vendor
- composer.json
- composer.lock
![Cloud Shell:Composer が作成完了](https://storage.4watcher365.dev/1e100/797bbd79-gcp_cloud-shell-editor.jpg)
wp-gae を実行時にzip 解凍が行えない可能性があるので、
次のコマンドを実行して、php 7.2 をインストールします。
sudo apt-get install php7.2-zip php7.2-curl
インストール中に「360 kB of additional disk space will be used. Do you want to continue?(360KB の容量を使用しますが継続しますか?)」と尋ねられるので「Y」と返します。
次のコマンドを実行し、WordPress プロジェクトを作成します。
また、Cloud SQL のデータベースに接続するための同時に対話型で質問を返します。
php vendor/bin/wp-gae create
質問に返す情報を次になります。
[GCPプロジェクト ID] = project_id = gae-wordpress-285410 [Cloud SQL インスタンス名] = db_instance = wp2-sql-instance [インスタンス のデータベース] db_name = wp_db [ユーザー名] db_user = wp-user [パスワード] db_password = 285410
WordPress を作成するディレクトリ名を入力します。無記入の場合は、my-wordpress-project になります。
「ディレクトリが存在していた場合、上書きしますか?」と尋ねられるので「Y」と返します。
![ターミナル:WordPress プロジェクトの作成](https://storage.4watcher365.dev/1e100/90dc1021-terminal_wp-gae_create-wordpress.jpg)
作成したCloud SQL インスタンスのリージョンを尋ねられるので「6」を返します。
![ターミナル:作成したCloud SQL インスタンス リージョンを選択](https://storage.4watcher365.dev/1e100/ce7a8e7c-terminal_wp-gae_select-cloud-sql-region.jpg)
プロジェクト ID、データベース情報を尋ねられるので、それらの情報を入力して返します。
「ローカル環境でも同じデータベースとユーザー名を使用しますか?」と尋ねられるので、「Y」と返します。
![ターミナル:データベース情報を回答](https://storage.4watcher365.dev/1e100/220a109c-terminal_wp-gae_anser-database.jpg)
入力が間違ってしまった場合
回答が間違っていた場合、Cloud Shell のWordPress ディレクトリのwp-config.php から次の箇所を更新することでデータベース情報を変更することができます。
![wp-config.php:Cloud SQL データベースの情報](https://storage.4watcher365.dev/1e100/050cfe85-wp-config_database-info.jpg)
GAE 環境へのデプロイ
次のコマンドを実行し、WordPress ディレクトリに移動します。
cd [WORDPRESS_DIR]
次のコマンドを実行し、GAE にデプロイします。
gcloud app deploy app.yaml cron.yaml
「デプロイするGAE リージョンはどこですか」と尋ねられるので、「17」と返します。
![ターミナル:デプロイするGAE リージョンを選択](https://storage.4watcher365.dev/1e100/92b11038-terminal_deploy-gae-region.jpg)
デプロイされるGAE の情報が返されます。
「この情報でGAE をデプロイしますか?」と尋ねられるので「Y」と返します。
![ターミナル:デプロイされるGAE の情報](https://storage.4watcher365.dev/1e100/3e1912c5-terminal_deploy-gae-info.jpg)
デプロイしたWordPress のファイルをGCS への保存が行われ、GAE にWordPress がデプロイ完了となります。
![ターミナル:GAE のデプロイ完了](https://storage.4watcher365.dev/1e100/5f5579cf-terminal_done-deploy-gae.jpg)
次のコマンドを実行し、GAE のURLを表示します。
gcloud app browse
![ターミナル:GAEのURLを表示](https://storage.4watcher365.dev/1e100/e6ccba4f-terminal_gae-url.jpg)
問題なければWordPress にチュートリアル画面が表示されます。
![Welcome to the famous five-minute WordPress installation process](https://storage.4watcher365.dev/1e100/e731c105-wordpress-installation-process.jpg)
各項目に適当な情報を入力し、「Install WordPress」をクリックして、WordPress 管理コンソールを開きます。
データベース接続の確立中にエラー
wp-config.php のデータベース情報とCloud SQLのデータベース情報が異なっていた場合は「Error establishing a database connection」と表示されます。
![Error establishing a database connection](https://storage.4watcher365.dev/1e100/804785dd-error-establishing-a-database-connection.jpg)
wp-config.php を開き、Cloud SQLのデータベース情報に修正します。
Cloud SQL の情報を忘れた場合はGCP 管理コンソールに戻り、左上のメニュー「≡」を選択し、「SQL」をクリックします。
Google Cloud Storage プラグインを有効にする
GAE にはオブジェクトを保存することはできないため、WordPress にオブジェクト(メディア)をアップロードすることができません。
![WordPress:メディアのアップロード失敗](https://storage.4watcher365.dev/1e100/26defda9-wordpress_uploaded-media.jpg)
WordPress のアップロード先をGCS にする設定を行います。
GCP 管理コンソールに戻り、左上のメニュー「≡」を選択し、「ストレージ」をクリックします。
WordPress をGAE にデプロイするとGCSに次のバケットが作成されています。
- asia.artifacts.[YOUR_PROJECT_ID].appspot.com
- [YOUR_PROJECT_ID].appspot.com
- staging.[YOUR_PROJECT_ID].appspot.com
![GCP 管理コンソール:Storage:ブラウザ](https://storage.4watcher365.dev/1e100/8676fb74-gcp_storage.jpg)
Cloud Shell を開きます。
次のコマンドを実行して、バケット「[YOUR_PROJECT_ID].appspot.com」をすべてのユーザーがアクセスできるアクセス制御リスト(ACL)に変更します。
gsutil defacl ch -u AllUsers:R gs://[YOUR_PROJECT_ID].appspot.com
![ターミナル:バケットをACL に変更](https://storage.4watcher365.dev/1e100/5a01c1a2-terminal_change-acl-class.jpg)
WordPress 管理コンソールに戻り、プラグイン ページでGoogle Cloud Storage plugin をActivate にして、Settings をクリックします。
ACLに変更したGCS のバケット名 [YOUR_PROJECT_ID].appspot.comを入力します
適当なファイルをアップロードを行い、アップロードができる事を確認します。アップロードしたファイルはGCS に保存されています。
※ アップロードのディレクトリ構成は「日/年/月」になります。
[blogcard url=”https://1e100.4watcher365.dev/google-cloud/google-cloud-platform/gae-wordpress-cloudsql-proxy/”]
Leave a Reply
View Comments