AWS LightsailでWordPressのマルチサイトを複数のドメインで利用する

流行り?に乗ってCloudflare Pagesにしたものの、気軽に投稿できないのを言い訳に放置してました。この度WordPressに戻してまたブログの投稿を再開するすることにしました。

しょうもない報告はここまでにして、今回、AWSのLightsailでWordPressのマルチサイト機能を使って複数のサイトを動かしてみたんで、そのやった内容を書きたいと思います。

最初に注意点としてLightsailのWordPressからはメールが送信できないようです。WP Mail SMTPってプラグインが最初から入ってて、これを有効にしてSMTPの設定を行えば送信できるみたいですが、マルチサイトで利用するには有料となります。これは何とかできたらまたお知らせします。
上記、嘘でした。WP Mail SMTPを「サイトネットワークで有効化」するのは有料みたいですが、サイト毎に有効化すれば使えました。

もう一つ、今回、matome.pageってドメインをメイン?にして、そのサブドメイン付きのとoyamazaki.devってサイトを登録したのですが、Let’s EncryptのSSLを設定すると証明書には全てのホスト名(FQDN)が並びます。これが困る場合は止めときましょう。

小ネタですが、上の画像、Windows 10でShift + Windows + S を押したら起動する「切り取り & スケッチ」って機能でキャプチャして、ブロックエディタに貼り付けたものです。貼り付けただけでメディアに保存されてるとか素敵ですね。編集した内容も含めて貼り付けられます!(下の画像の蛍光ペンのとこ)
書き込みしない場合でも一度編集画面を開いてから貼り付けると枠線が付きます!

AWSのLightsailでインスタンスを作成し色々と設定する

WordPress Multisiteって設計図?を選択してください。SSHキーペアも勝手に作ってくれます。もちろん自分で作成またはアップロードすることも可能です。

インスタンスの作成、をクリックしてしばらくすると実行中になりますのでインスタンス名のとこをクリックしてください。

インスタンスの詳細画面になり、接続の情報が表示されます。SSHのユーザー名は bitnami です。SSHを使用して接続ってオレンジのボタンを押すとブラウザベースのコンソール画面が開きますが、適当なSSHクライアントで接続するのをおすすめします。ポートを開けたりとかは不要です。
なお、SSHクライアントの設定は下記の静的IPに切り替え後に行ってください。以下、SSHクライアントって書いてあっても、ブラウザベースのコンソールでもちろんOKです。

この時点で書いてあるIPアドレスにアクセスすると http://IPアドレス.nip.io/ というURLに転送されWordPressのトップページが表示されます。このIPアドレスはインスタンスの再起動で変わってしまう一時的なものですので、ネットワーキングで静的IPの作成を行ってください。リンクをクリックして必要なら名前を変更し作成を押すだけです。

IPアドレスが変わるとWordPressの画面は開かなくなりますが気にしなくてOKです。

これでサーバー?側の準備はできましたので使用するドメインのAレコードに割り当てられた静的IPアドレスを設定してください。Amazon Route 53やお名前.comなどで行う作業の話しです。SSHクライアントで ping ドメイン してみて、静的IPアドレスが表示されたら次に進んで大丈夫だと思います。

続いてSSHクライアントでサイトのURLを変更します。下記のコマンドを実行してください。your.siteのとこは書き換えてくださいね。

sudo /opt/bitnami/configure_app_domain --domain your.site

コマンドが正常に終わるとcomやjpなどのドメインなら、アクセスするとWordPressの画面が表示されると思います。私が使ったpageやdevなどのSSL必須のドメインだと下記のSSL証明書取得が終わらないとアクセスしてもエラーになったような気がします……すみません、忘れました。

Lightsail マルチサイト WordPressに複数サイトのSSL証明書を取得

下記のコマンドをSSHクライアントで実行してください。

sudo /opt/bitnami/bncert-tool

一度、Enterすると下記の表示になると思いますので、SSLを設定するドメイン(ホスト名?)をスペース区切りで入力してEnterしてください。Aレコードがサーバーを向いてないとエラーになります。

Domain list []: your.site aaa.your.site xxx.your.site another.site

この後、www.付きも登録する?など英語で聞かれますので適当に進めてください。このSSL証明書作成は常に上書きされます。追加する場合は下記のように登録済みの+追加のを全て入力してください。

Domain list []: your.site aaa.your.site xxx.your.site another.site additional.your.site

正常にSSL証明書が作成されたら、メインの(この説明ではmatome.page)の管理画面にログインしてマルチサイトの設定を行っていきます。

WordPressでのマルチサイトの設定方法

上記のSSL証明書が正常に取得できたら、上~の方で設定したドメインにアクセスするとWordPressのサイトが表示されるかと思います。されない場合はどこか手順を間違ってるか、残念ならが説明が間違ってたかです。

それでは、URLの後ろに /wp-admin を足してログイン画面を表示させてください。ユーザー名は user です。パスワードは下記のコマンドで確認できます。

cat /home/bitnami/bitnami_application_password

ログインできたら、私はとりあえず日本語関連の設定をしました。Settings の General で Site Language を日本語に、Timezone を Tokyoに、一度保存してから日付と時刻の形式を一番上のを選んで再度保存です。

いよいよ、マルチサイトの追加を行います。another.site というメインの your.site とはまったく別のサイトを追加します。まずは左上、参加サイトのサイトネットワーク管理のメニューからサイトを選択してください。新規追加ボタンがありますので押してください。

この時点ではサイトアドレスはメインの your.site のサブドメインとなります。後ほど変更しますので anothersite など適当に入力でOKです。anothersite.your.site にAレコードが向いてなくても大丈夫でした。

サイトのタイトルおよびサイトの言語は好きに設定してください。

管理者のメールアドレスは重要です。この時点ではメールの送信設定をしていませんので、正しいメールアドレスを入力しても認証メールが届かずハマることになります。ですので user に登録されている user@example.com を入力してください。これでサイトの追加ができます。

追加できたら、再度、参加サイトのサイトネットワーク管理のメニューからサイトを選択し、追加したサイトを編集します。

サイトアドレス (URL)を https://another.site/ に変更して変更を保存、設定タブに切り替えて Siteurl と Home をhttps://another.site に変更して再度、変更を保存してください。これでサイトおよびログイン画面にアクセスできるようになります。

ただし管理画面にログインできないと思います。クッキーの影響らしく下記サイトの一番下の設定を wp-config.php に追加する必要がありました。wp-config.php の場所は /opt/bitnami/wordpress/wp-config.php の方でリンク元は /bitnami/wordpress にあります。

https://docs.bitnami.com/aws/apps/wordpress-multisite/configuration/configure-wordpress-multisite#add-several-wordpress-multisite-blogs-with-different-domains

サブドメインのサイトの追加の場合は上記のURLの変更が不要になるだけです。

ユーザー bitnami でSFTPでファイルをアップロードしたい場合

当ブログは昔のWordPressのバックアップから投稿とファイルのみを復旧したんですが、ファイルのアップロード先の所有者とグループが daemon だったため所有者をbitnami変更する必要がありました。下記コマンドの最後の3は例です。

sudo chown bitnami.daemon /bitnami/wordpress/wp-content/uploads/sites/3

長くなったんで今回はここまで。