AWS for WordPress の CloudFront をエラーなく使う設定方法

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 を設定すると、一見できたように思えるが、色々バグってる。

AWS の CloudFront で WordPress を稼働してて、かつ ec2 間に SSL 通信をしている場合

Amazon Web Service で ec2 と CloudFront で WordPress を稼働している、かつ Let’s Encrypt で CloudFront – ec2 間を SSL 通信している場合。

これはハマる気がした。
certbot renew が失敗する。
WordPress が勝手にリダイレクトするから。

3ヶ月に1回、ダミーの静的ウェブサイトに接続先変えて証明書を取得するもの面倒くさいなー。

Twitter API で特定のアカウントのツイートを取得する方法

Twitter API を使って、特定の(指定した)アカウントのツイートを取得する方法です。
作ってみたのが以下のサイトです。

https://www.bass-world.net/itawotweet/

https://developer.twitter.com/en.html からAPI キーを取得する

https://developer.twitter.com/en.html からアクセスして、

  • consumer_key
  • consumer_secret
  • access_token
  • access_token_secret

を取得します。どんなアプリを作るのか、英作文しないといけないけどがんばって!

TwistOAuth の取得

https://github.com/mpyw/TwistOAuth から TwistOAuth を入手します。
TwistOAuth.phar を今から作るプログラムと同階層においてください。

“Twitter API で特定のアカウントのツイートを取得する方法” の続きを読む

AWS で ec2 + RDS で WordPress 作る時の備忘録

  • amazon-linux-extras で PHP7.2 と MariaDB をインストールする。
  • データベースもユーザも「localhost」で作らない。
  • Amazon Polly + WordPress のアマゾン公式ドキュメントはポリシーの JSON が間違っている。
  • 同じく、プラグインの設定がちょっとおかしい。一周遅れで来る感じ。日英中に翻訳させたいなら、一度日英中で保存した後、日英だけにして保存すると、投稿が日英中になる。

SiteLockが出すエラーの対処 – (SMART)によるスキャンが実行されましたが、貴社のファイルにアクセスすることができませんでした

脆弱性診断&マルウェア駆除のWebセキュリティサービス「SiteLock」でこんなエラー(Critical)が出ました。

Type: security | Severity: critical

本日、SiteLockのSecure Malware Alert Removal Tool (SMART)によるスキャンが実行されましたが、貴社のファイルにアクセスすることができませんでした。 SiteLockダッシュボードのSMART設定で、すべての情報が最新かつ正確であることを確認してください。 SiteLockは、初回の通知から10日が経過しても貴社のファイルにアクセスすることができない場合、貴社のSMARTツールを無効化します。
この設定はいつでも、SiteLockダッシュボードから再有効化していただくことができます。

“SiteLockが出すエラーの対処 – (SMART)によるスキャンが実行されましたが、貴社のファイルにアクセスすることができませんでした” の続きを読む

Apacheウェブサーバで画像ファイル等をブラウザにキャッシュさせる

ブラウザのキャッシュを活用する

Google アナリティクスのレポート→行動→サイトの速度→速度の提案で、

ブラウザのキャッシュを活用する
静的リソースの HTTP ヘッダー内で、有効期日や最大経過時間を設定すると、ブラウザがネットワークからではなくローカル ディスクから以前にダウンロードしたリソースを読み込むようになります。
次のキャッシュ可能なリソースでブラウザのキャッシュを活用してください:

で、どうすればキャッシュさせるか調べてみました。

“Apacheウェブサーバで画像ファイル等をブラウザにキャッシュさせる” の続きを読む