WordPress × Google Cloud Platform

【アップデート 編】Composer でWordPress をアップデート

前回は、Cloud SQL を作成してGAE でWordPress をデプロイを行いました。

Google App Engine(GAE) でデプロイしたWordPress の言語が英語です。作業がしやすいようにWordPress 言語を日本語へと変更します。また、WordPress用のComposer を使ってWordPress アップグレード/ プラグインのアップデート/ テーマのアップデート 等を行いますが、Composer は外部からデータを取得するので、Google Cloud SQL に直接アップロードすることができません。そのため、Google Cloud SQL Proxy とサービスアカウント を作成します。

GAE の仕様について

GAE はPaaS型です。(厳密には違う)
ミドルウェアはGoogle が管理するため、ユーザーは自由度に制限があります。
その制限の一つにGAE にストレージ機能がありません。

WordPress 管理コンソール上でWordPress システムのアップグレードが表示されていても実行を行うことはできません。プラグインやテーマも同様です。
アップデートを行うにはそのアップデート データをローカル環境に保存してGAE にデプロイする必要があります。
これを一つ一つ/毎回に行うには手間がかかるのでWordPress用のパッケージ管理ツール Composer(wp-cli)を利用します。

Composer は外部からデータを持ってくるため、Cloud SQL のデータベース接続が拒否されます。そのため、Cloud SQL Proxy とサービスアカウントを作成し、それらを利用してアップデートを行えるようにします。

Cloud SQL Admin API を有効

GAE スタンダード環境には、Cloud SQL Proxy を使用して接続する仕組みが用意されていますがComposer には備わっていません。サービスアカウントを使用して接続するため、Cloud SQL Admin API を利用します。

  • GCP 管理コンソールの上部バーに「Cloud SQL Admin API」を入力し、「Cloud SQL Admin API」をクリックします。
  • 「有効にする」をクリックにします。
GCP 管理コンソール:Cloud SQL Admin APIを有効化

Cloud SQL Proxy の接続方法は後ほど説明します。

WordPress を日本語化

GAE でデプロイしたWordPress は言語:英語です。作業がしやすいようにWordPress 言語を日本語化します。

次のコマンドを実行し、HOME 領域に移動し、Composer でWordPress 日本語をインストールします。

cd
vendor/bin/wp core language install ja --activate --path=[WORDPRESS_PATH]

次のコマンドを実行し、WP Multibyte Patch プラグインをインストールして有効化します。

vendor/bin/wp plugin install wp-multibyte-patch --activate --path=[WORDPRESS_PATH]

WordPress 日本語をアップデートする場合は、
次のコマンドを実行して、WordPress 日本語パッケージをアップデートします。

vendor/bin/wp core language update --path=[WORDPRESS_PATH]

WordPress アップグレード/ プラグイン/ テーマの更新

次のコマンドを実行して、HOME 領域に移動し、wp-cli/wp-cli-bundle のcomposerをインストールします。

cd
composer require wp-cli/wp-cli-bundle

GCP 管理コンソールの「API とサービス」から「認証情報」に移動します。
GAE をデプロイすると「App Engine default service account(App Engine サービス管理者)」が付与されたサービス アカウントがあります。

GCP 管理コンソール:API とサービス:認証情報

次のコマンドを実行し、そのサービス アカウントのJSON ファイルを作成します。

gcloud iam service-accounts keys create [FILENAME].json --iam-account [YOUR_SERVICEACCOUNT]
ターミナル:JSON ファイルの作成

JSON ファイルの作成が完了するとCloud Shell のHOME 領域にそのJSON ファイルが格納されています。

次のコマンドを実行し、Cloud SQL Proxy をダウンロードし、MySQL インスタンスへのアクセス権限を変更します。

wget https://dl.google.com/cloudsql/cloud_sql_proxy.linux.amd64 -O cloud_sql_proxy
chmod +x cloud_sql_proxy
ターミナル:Cloud SQL Proxy の実行

次のコマンドを実行し、cloud_sql_proxy ファイルを実行してCloud SQL Proxy に接続します。

./cloud_sql_proxy -instances [_PROJECT_ID}:[DB_REGION]:[INSTANCE_NAME]=tcp:3306 &
ターミナル:cloud_sql_proxy を実行

Composer を利用して各アップデートを行うにはCloud SQL Proxy を実行しまままにする必要があります。

別タブで新しいCloud Shell を開きます。

次のコマンドを実行して、WordPress バージョンをアップデートします。

vendor/bin/wp core update --path=[WORDPRESS_PATH]

次のコマンドを実行して、WordPress プラグインのすべてをアップデートします。

vendor/bin/wp plugin update --all --path=[WORDPRESS_PATH]

次のコマンドを実行してWordPress テーマのすべてをアップデートします。

vendor/bin/wp theme update --all --path=[WORDPRESS_PATH]

Enter キーを押し、Cloud SQL Proxy への接続を解除します。

次のコマンドを実行し、古いバージョンを動かしたままプロモーション(トラフィックの切り替え)なしでアップデートした新しいバージョンをCAEにデプロイします。

cd [WORDPRESS_DIR]
gcloud app deploy -q --promote --stop-previous-version app.yaml cron.yaml

以上でWordPress の日本語化/ プラグインのインストール 等が完了しました。

Composer を使用するにはCloud SQL Proxy を毎回起動しなければなりませんが、一つ一つアップロードするより手間はかかりません。

次は、GAE オートスケール設定するためにapp.yaml を編集します

参考ページ