Bitnami WP Multisite For Google Cloud Platform

Google Computing Engine で WordPressを立てて、マルチサイト/マルチドメイン/SSL(Let’s Encrypt)を設定する。

「Cloud Lancher」で WP 「Multisite(Bitnami)」を探してランチ。
インストが完了すると、各種設定項目(初期ユーザーとパスワードなど)が表示される。
すぐに外部IDでアクセスできるので(色々触るまえに)Wordpress としてアクセスできるかを確認する。

外部IDは静的IPとして予約して(したもの)を関連付け、この時点でDNSでドメインを向けておきたい。

Bitnamiのマニュアル

Bitnami WP Multisite For Google Cloud Platform

Bitnami による構成はかなりクセがあるし、マニュアルにはチョコチョコ記載ミスがある。

メールの設定

SMTPが許可されていない

Google Cloud Platformでは、ポート 25,465,587 からのSMTPトラフィックは許可されません。VPNを使用してこれらの制限を回避する方法や、アプリケーションからメールを送信するために別のポートを使用する方法については、Googleクラウドのドキュメントをご覧ください。

さしあたり、「WP Mail SMTP」プラグインを利用して(GMailなどの外部メールサーバを使用する)
例えばGmailのSMTPを使用するなら…

  • SMTP Host:smtp.gmail.com
  • SMTP Port:587
  • Encryption:(チェック)Use TLS encryption.
  • Authentication:(チェック) SMTP認証を使用します。
  • (Username/Password は Gmailのもの)
  • (GMail側でSMTPが許可されている必要がある)

ドメインの設定

この作業に取り掛かる前に必要事項をチェック。

  • WordPressのマルチサイトをインストール済。
  • 静的IPアドレス。
  • SSHで接続できること。
  • 関連付けるドメインを持っている。

デフォルトの設定では、サイトURLは外部IPになっている。
この時点でサイトURLを設定しておかないと、のちのちIPを引きずるのでドメインに変更する。

SSHで接続して以下のコマンドを実行する

例えば「www.yambal.net」「life.yambal.net」といったサブドメインでのマルチサイトの場合、ここで設定するドメインは「yambal.net」となる

成功したらこのコマンドを無効化しておく(再起動ごとにリセットされてしまうから)

以後頻出するコマンド

サーバ設定を変更したあとはあわせてリブート

ログインして確認する

WordPressで基本的な設定を行う

  • 初期ユーザーのパスワード変更
  • アップデート(日本語化)
  • WP Multibyte Patch
  • サイトやユーザーを足してみたり

異なるドメインを追加する

プラグイン「WordPress MU Domain Mapping」を利用する。
利用方法はマニュアルで何とかわかる。

Let’s Encrypt で SSL を設定する

認証を保存するディレクトリを作成する

wp-config.phpを編集

/opt/bitnami/apps/wordpress/htdocs/wp-config.php の末尾に以下を追加

ようするにプラグイン「WP Encrypt」がよきにはからってくれるので、そいつがごにょごにょするディレクトリを作って、指定している。

プラグイン「WP Encrypt」を有効化

  1. Settings -> WP Encrypt -> Account Settings で必要事項を記入し Save Changes
  2. Register Account をクリック
  3. Generate Certificate をクリック

うまく成功すれば、各種認証ファイルのリストが表示される

SSLの設定を反映させる

/opt/bitnami/apache2/conf/bitnami/bitnami.conf のSSL関連のパスを変更

  • SSLCertificateFile “[Certificate のパス]”
  • SSLCertificateKeyFile “[Private Key のパス]”
  • SSLCertificateChainFile “[Certificate Chain のパス]”

HTTPSページにリダイレクトさせる(必要に応じて)

/opt/bitnami/apps/wordpress/conf/httpd-prefix.conf の冒頭に以下を追記

その他(必要に応じて)

マルチサイトを運用するとき、ケースによっては Wordpress の疑似CRON処理でサーバに負担がかかる可能性がある…という事と、その対応法。

Why WP-Cron sucks