Google Cloud Platform上でWordPressサーバを引っ越しする

Google Compute Engine(GCE)で動かしているWordPressを別のGCEサーバに引っ越した。

そもそも、先日レンタルサーバからGCEに引っ越したばかりなんだけど、なぜかgoogle-fluentdがバージョンアップの度にコケる不具合が起きたりしたので、この際サーバごと変えてしまおうと思ったのがきっかけ。

新サーバの起動

今まではMarketplaceから素の(Google Click to Deployの)WordPressを使って、ApacheをNginxに変えたりしてたけど、今回は初めからNginx化されている「WordPress with NGINX and SSL Certified by Bitnami」を使う。

作成時に気をつけることは次の3つくらい。

  • 移行元のサーバと同じリージョンを選択
  • マシンタイプはmicro
  • ディスクサイズは30GB

SSHの設定

ここで紹介されているようにSSHのポートをデフォルトの22から変更する。既にファイアウォールを作っていればサーバの/etc/ssh/sshd_configを変えるだけで済む。

外部IPアドレスの変更

移行元に割り振っている外部IPアドレスを移行先に変更する。GCPのVCPネットワーク設定から簡単に変更できる。このとき、同じリージョンでないと同一IPを使用できない。

移行元WordPressでデータのエクスポート

移行するデータをエクスポートする。前回レンタルサーバから移行したときに使った「All-in-One WP Migration」を今回も使う。エクスポート先としてオンラインストレージなども選べたけど無難にローカル(ファイル)を選択。

移行先WordPressでデータのインポート

移行先のWordPressにログインし、先程エクスポートしたデータをインポートする。Bitnami版だったら最初から「All-in-One WP Migration」がインストールされている。ただデータサイズが30MBを超える場合エクステンションを追加する必要がある。エクステンションによって512MBまでインポートできるようになる。

CloudFlareから証明書のダウンロード

Crypto設定の「Origin Certificates」から証明書を発行する。それぞれ「cloudflare.pem」「cloudflare.key」という名前にして、サーバの「/opt/bitnami/nginx/conf/bitnami/」直下に保存する。

ちなみにその他のCrypto設定は以下の記事参照。

CloudFlareの無料プランで個人サイトをHTTPS化する
Google Cloud Storage(GCS)記事の派生記事。これまでメイン...

Nginx設定変更

サーバにログインしてNginxの設定を変更する。

/opt/bitnami/nginx/conf/bitnami/bitnami.conf

ssl関連やserver_nameを変更する。デフォルトの設定は便宜上割愛。なおHTTP/2(dhparam.pemの生成)についてはこの記事を参照のこと。

server {
    listen       80;
    server_name  yusukesakai.com;
    return       301 https://$host$request_uri;
}

server {
   listen       443 ssl http2;
   server_name  yusukesakai.com;

   ssl_certificate      cloudflare.pem;
   ssl_certificate_key  cloudflare.key;
   ssl_dhparam          dhparam.pem;
}

/opt/bitnami/nginx/conf/nginx.conf

Nginxのバージョンを見えなくする。セキュリティ対策。

http {
  server_tokens off;
}

/opt/bitnami/apps/wordpress/conf/nginx-app.conf

アップロードファイルサイズの上限を2MBから8MBに。

client_max_body_size 8m;

Bitnamiロゴの削除

デフォルトのままだとサイトの左下に「Bitnami」のロゴが表示されてダサい&邪魔なので以下のコマンドで消す。

$ sudo /opt/bitnami/apps/wordpress/bnconfig --disable_banner 1

Nginx再起動

もろもろ終わったらNginxを再起動して設定を反映する。

$ sudo /opt/bitnami/ctlscript.sh restart nginx

あとは適当に

ここまで来ればほぼ完成で、あとはプリインストールされた不要なプラグインを削除したり、SSH公開鍵認証でログインできるようにしたり、念のため「apt update / upgrade」したり、Adsense用のads.txtを配置したりするだけ。ちなみにads.txtを置くルートディレクトリは以下にある。

/opt/bitnami/apps/wordpress/htdocs/

初めてGCE間を引っ越したけど、新しいサーバも問題なさそうだし、案外苦労することもなく実働1時間くらいでできた。ここ数日でGCP/GCEの扱いにも少し慣れてきた気がする。

コメント