WordPress 環境構築 GCP マーケットプレイス WordPress with NGINX and SSL Certified by Bitnami and Automattic

この Qiita の投稿を参考に WordPress を構築したメモ 1時間で出来るWordPress環境構築(※永久無料・・・だった)【※2020/7/1より約300円/月が有料になります】

マーケットプレイス

  • WordPress with NGINX and SSL Certified by Bitnami and Automatticを指定してデプロイする。

  • 「運用開始」ボタンを押下する。

VM の設定

  • リージョンは、料金の安い、オレゴン (ゾーン: us-west1-c) を選択する。a, b c あるが、なんとなく c を選択
  • ストレージはとりあえず、30GB を設定
  • 東京のリージョンを指定していたが、アメリカのほうが安いので、今回はオレゴンを使ってみる。問題あればまた別のリージョンにしよう

デプロイ、ログイン情報

  • マーケットプレイスでWordPress with NGINX and SSL Certified by Bitnami and Automatticを指定してデプロイ
  • デプロイしたら、Admin user, Admin password をメモしておく

VM の設定 ssh でサーバーへ入れるようにしておく

新しく配備したサーバーの WordPress のバックアップ

  • 念のため、WinSCP, mac なら FileZilla などで、新しいサーバーの WordPress ファイルをバックアップしておく
  • 時間がかかるので途中であきらめた。

移行元の WordPress や SQL ファイルを含む zip ファイルを転送

  • FileZilla を使って home ディレクトリへ転送
  • zip を解凍するが、 解凍先ディレクトリ(wp ディレクトリ)を作成して解凍してみる。
# ディレクトリ作成
$ mkdir wp

# wp ディレクトリへ zip を解凍
$ unzip 2021-04-10_09-00-48_FVBNYY6I01.zip -d wp

WordPress のバックアップの SQL ファイルを移行先で実行する

  • MySQL の user password を確認する。sudo cat apps/wordpress/htdocs/wp-config.php
define( 'DB_NAME', 'bitnami_wordpress' );

/** MySQL database username */
define( 'DB_USER', 'bn_wordpress' );

/** MySQL database password */
define( 'DB_PASSWORD', 'xxxxxxxxxxx' );

  • 解凍した zip ファイルにある SQL ファイルをで DB を移行する。
# テーブルをDROPして、CREATE して INSERT している
$ mysql -u bn_wordpress -p bitnami_wordpress < wp/bitnami_wordpress.sql

移行元の WordPress で上書きする

  • まず不要そうなファイルは削除しておく
# wp-config.php は上書きしない
$ rm wp/wp-config.php

# wp-config.php のサンプルも削除しておく
$ rm wp/wp-config-sample.php

# sql ファイルは不要なので削除
$ rm wp/bitnami_wordpress.sql

# なんかよくわからないので削除
$ rm wp/manifest.json

# キャッシュは不要、そもそもバックアップから削除したい
$ rm -rf wp/cache

# ログは不要、そもそもバックアップから削除したい
$ rm -rf wp/logs
  • ディレクト内のファイルをまるっとコピー
cp -pR wp/* apps/wordpress/htdocs

権限の変更

  • オーナー、権限の変更
# 再起的にオーナー、グループを変更
$ sudo chown -R bitnami:daemon /opt/bitnami/apps/wordpress/htdocs

# ファイルの権限を全て変更
$ sudo find /opt/bitnami/apps/wordpress/htdocs/ -type f -exec chmod 664 {} \;

# ディレクトリの権限を全て変更
$ sudo find /opt/bitnami/apps/wordpress/htdocs/ -type d -exec chmod 2775 {} \;
  • wp-config.php は、オーナーのみ「読み取り」「書き込み」可能なパーミッションに変更する
$ sudo chmod 600 /opt/bitnami/apps/wordpress/htdocs/wp-config.php

子テーマの権限が原因で 500 エラーになった

  • 子テーマの権限確認
$ ls -la /opt/bitnami/apps/wordpress/htdocs/wp-content/themes/
total 24
drwxrwsr-x 7 bitnami daemon 4096 Apr 10 11:00 .
drwxrwsr-x 9 bitnami daemon 4096 Apr 10 13:06 ..
drwxrwsr-x 9 bitnami daemon 4096 Apr 10 11:00 hueman
drwxrwsr-x 3 bitnami daemon 4096 Apr 10 11:00 hueman-child
-rw-rw-r-- 1 bitnami daemon   28 Apr 10 00:02 index.php
drwxrwsr-x 9 bitnami daemon 4096 Mar 25 16:20 twentynineteen
  • 子テーマをカスタマイズしてて、権限が 777 でないとダメみたい。実装を見直したい。
# いったん 777 へしておく
$ sudo chmod 777 -R /opt/bitnami/apps/wordpress/htdocs/wp-content/themes/hueman-child/
  • 再度、子テーマの権限確認
$ ls -la /opt/bitnami/apps/wordpress/htdocs/wp-content/themes/
total 24
drwxrwsrwx 5 bitnami daemon 4096 Apr 10 15:30 .
drwxrwsr-x 9 bitnami daemon 4096 Apr 10 13:06 ..
drwxrwsr-x 9 bitnami daemon 4096 Apr 10 11:00 hueman
drwxrwsrwx 3 bitnami daemon 4096 Apr 10 11:00 hueman-child
-rw-rw-r-- 1 bitnami daemon   28 Apr 10 00:02 index.php
drwxrwsr-x 9 bitnami daemon 4096 Mar 25 16:20 twentynineteen

Site kit が動かない問題の修正

WordPress プラグイン「Site Kit by Google」インストールするとずっとChecking Compatibility…

  • http:// から https:// へ修正
define('WP_SITEURL', 'https://' . $_SERVER['HTTP_HOST'] . '/');
define('WP_HOME', 'https://' . $_SERVER['HTTP_HOST'] . '/');