LoginSignup
16
19

More than 5 years have passed since last update.

WordPress on App Engine Standard for PHP 7.2

Last updated at Posted at 2018-10-15

この記事は2019/2/1時点のこちらにあるコマンドラインツールを使用してWordPressをGAEにデプロイする手順を説明します。

前提条件

Cloud SQL for MySQL インスタンスの作成と設定

: このガイドでは, インスタンスとデータベース名に wordpress を使用します。データベースでは root ユーザーを使用します。

  1. 下記コマンドで、新規 Cloud SQL for MySQL Second Generation インスタンスを作成
$ gcloud sql instances create wordpress \
    --activation-policy=ALWAYS \
    --tier=db-n1-standard-1

2. 次に、WordPressで使うデータベースを作成します

$ gcloud sql databases create wordpress --instance wordpress
  1. 最後に、インスタンスの root パスワードを変更します
$ gcloud sql users set-password root \
    --host=% \
    --instance wordpress \
    --password=YOUR_INSTANCE_ROOT_PASSWORD # このパスワードは使ってはいけません!

Create or Update a WordPress project for App Engine

wp-age コマンドは新規に WordPress プロジェクトを作成するか、既に WordPress プロジェクトがある場合は必要な設定ファイルを追加します

Setup

  1. このリポジトリをダウンロードし cdappengine/php72/wordpress ディレクトリに入ります
$ git clone https://github.com/GoogleCloudPlatform/php-docs-samples.git
$ cd php-docs-samples/appengine/php72/wordpress
  1. このディレクトリで composer を使って依存パッケージをインストールします
$ composer install

エラーが発生したら, PHP拡張モジュールの pharzip をインストールし再実行してみてください

Create a new WordPress Project

Google Cloud に WordPress をダウンロードとセットアップするために、create コマンドを実行します

$ php vendor/bin/wp-gae create

実行するといくつか質問をするので回答してください。
完了すると、新しい WordPress プロジェクトを作成します。
デフォルトでは my-wordpress-project が現在のディレクトリに作成されます。

: データベースのリージョンを確認したい場合は、gcloud sql instances describe wordpressを実行する

Update an existing WordPress Project

もし既にある WordPress プロジェクトを Google Could に移行したい場合は、 update コマンドを使用します

$ php vendor/bin/wp-gae update path/to/your-wordpress-site

実行するといくつか質問をするので回答してください。
完了すると、files ディレクトリにファイルがコピーされ、設定が書き出されます。これで Google Could にデプロイする準備ができました!

Deploy to Google Cloud

cd で WordPress プロジェクトのルートに移動します

$ cd my-wordpress-project

App Engine にデプロイするために次のコマンドを実行します

$ gcloud app deploy app.yaml cron.yaml

これでサイトにアクセスできます。引き続きインストールStepを続けてください。
https://PROJECT_ID.appspot.com/

Enable the Google Cloud Storage plugin

メディアをアップロードするためにGoogle Cloud Storage pluginを使います。手順は以下です。

  1. あとで使うためにApp EngineのデフォルトGCSバケットを設定します。デフォルトの App Engine バケットは YOUR_PROJECT_ID.appspot.com です。このバケットのデフォルトのアクセスコントロールリスト(ACL)を以下のコマンドで変更します
$ gsutil defacl ch -u AllUsers:R gs://YOUR_PROJECT_ID.appspot.com
  1. ダッシュボードに行きます https://PROJECT_ID.appspot.com/wp-admin
  2. プラグインベージで Google Cloud Storage plugin をアクティブにします。
  3. プラグイン設定ページで、上記で設定したバケット名をセットします。

プラグインを有効化した後、メディアのアップロードを試すと、GCSバケットGoogle Cloud console's Storage pageに画像が確認できます。

Local Development

Cloud SQL Proxy を使用して、Cloud SQL の MySQL にアクセスします。はじめに ローカルマシン上でCloud SQL Proxy をダウンロードして、実行してください。

あなたのプロジェクトの認証情報を開き、'認証情報を作成する'をクリックしてください。そして'サービスアカウントキー'を選択してください。'App Engine app default service account'を選択して、'作成'をクリックし、JSONファイルをダウンロードしてください。

Proxyを実行するには以下のコマンドを使用します。

$ cloud_sql_proxy \
    -dir /cloudsql \
    -instances=YOUR_PROJECT_ID:us-central1:wordpress \
    -credential_file=/path/to/YOUR_SERVICE_ACCOUNT_JSON_FILE.json

Note: 実行ユーザーが/cloudsqlに書き込み可能なことを確認してください。このコマンドはここに Unix socketを作成します。

これで MySQL Client を使って Cloud SQL インスタンスにアクセスできるようになりました。
別タブを開き、下記のコマンドで確認できます。

$ mysql --socket /cloudsql/YOUR_PROJECT_ID:us-central1:wordpress -u root -p
mysql> use database wordpress;
mysql> show tables;
mysql> exit

ローカルでWordPressを起動する (mkamakura追記)

wp-config.phpにあるデータベースの接続設定を変更します。

if ($onGae) {
  /* 省略 */
} else {
    /** The name of the local database for WordPress */
    define('DB_NAME', 'wordpress');
    /** Local environment MySQL login info */
    /* define('DB_HOST', '127.0.0.1'); コメントアウト*/
    define('DB_HOST', ':/cloudsql/YOUR_PROJECT_ID:us-central1:wordpress'); /* 追加 */
    define('DB_USER', 'root');
    define('DB_PASSWORD', 'YOUR_INSTANCE_ROOT_PASSWORD');
}

phpビルドインサーバーを使用して起動する

php -S localhost:8000

Various Workflows

Install and Update WordPress, Plugins, and Themes

wp-contentディレクトリはサーバー上ではRead-Onlyのため、ローカル環境でコードのアップデートをする必要があります。WordPressをローカルで起動し、ダッシュボードからプラグインやテーマをアップデートし、コードをサーバーにデプロイします。そして、サーバー上のWordPressのダッシュボードから有効化をします。また wp-cli は以下のような機能を提供します。(Cloud SQL proxy が起動していることを確認してください)

# wp-cli のインストール
$ composer require wp-cli/wp-cli-bundle

# WoldPressのアップデート
$ vendor/bin/wp core update --path=wordpress

# すべてのプラグインのアップデート, すべてのテーマのアップデート
$ vendor/bin/wp plugin update --all
$ vendor/bin/wp theme update --all

もし、以下のエラーが発生した場合は、

Failed opening required 'google/appengine/api/urlfetch_service_pb.php'

WP_CLI_PHP_ARGS環境変数にinclude_pathを設定してください。

$ export WP_CLI_PHP_ARGS='-d include_path=vendor/google/appengine-php-sdk'

Remove Plugins and Themes

最初にサーバー上のダッシュボードで無効化してから、ローカルで削除してください。次にデプロイするとサーバー上でも完全に削除されます。

16
19
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
16
19