WordPress の AWS for WordPress プラグインに CloudFront を設定できる画面がありますが、画面の指示通りにやってもエラーが出ます。
この画面でエラーなく設定する方法は以下の通りです。
origin も dest も普通の WordPress サイトとして表示できるようにする。
origin も (取りあえず)dest も EC2 の IP アドレスを指すように、DNS サーバの設定で A レコードの設定をします。
Apache の httpd.conf で、origin も dest も同じサイトを指すように設定します。
<VirtualHost *:80> DocumentRoot "/home/{your-home-directory}/wordpress" Servername "orgin.bass-world.net" ServerAlias "origin.bass-world.net" ServerAlias "dest.bass-world.net" (以下略) </VirtualHost>
origin と dest の両方を含む SSL 認証書を取得する
# certbot certonly --webroot -w /home/{your-home-directory}/wordpress Saving debug log to /var/log/letsencrypt/letsencrypt.log Plugins selected: Authenticator webroot, Installer None Please enter in your domain name(s) (comma and/or space separated) (Enter 'c' to cancel): origin.bass-world.net dest.bass-world.net (以下略)
取得したら、origin/dest の両方でウェブサイトが表示できるか確認する。
確認したら、dest の A レコードを DNS 設定から削除する。
AWS for WordPress の CloudFront を実行する
origin の WordPress の AWS 設定画面で、CloudFront の設定をする。(画面に書かれてある 3 ステップ)
CloudFront のディストリビューションアドレスを dest の CNAME に設定する。
WordPress のサイトアドレスを dest に変更する
WordPress 設定画面の「設定」→「一般」で、「WordPress アドレス (URL)」「サイトアドレス (URL)」を、dest の URL に変更する。
追記・マルチサイト化
サブディレクトリ型のマルチサイト化は無理。
CloudFront の設定が終わってからマルチサイト化すると、サブドメイン型しか選択できなくなる。
先にサブドメイン型のマルチサイトを作っておいて CloudFront を設定すると、一見できたように思えるが、色々バグってる。