WEB上のサービスは安定している限り、あまりアップデートしないようにしています。
これはWEBのサービスは様々なシステムを跨いで動作していることが多く、何かしらの問題が発生した場合は個人での解決が難しいことが多いためです。
しかし、セキュリティ上の問題から更新せざるを得ないこともあります。
自分の場合はこのblogがそうで、仕事が忙しいのもあって1年ほど問題解決が出来ませんでした。
原因追求
まずはキャッシュを疑う
自分のサイトはAWSのCloudfrontでキャッシュして表示を高速化しているのですが、まずはこれが原因かと思い確認しました。
サイトの新規投稿は出来なくても、既に書いた記事をリライトすれば何かしら変化はあるかと思い試してみましたが、変更が出来ませんでした。
しかし、AWS側は何かしらの変更があった、と判断してキャッシュを新しく作ろうとしていました。
これも失敗していたのですが、Cloudfront用のプラグインは正常に動作している事は分かりました。
データベースのトラブルを疑う
次にデータベースのトラブルを確認しました。
MySQLのデータベースにバージョン等の問題があるのではないかと、データを直接編集してみました。
結果、Cloudfrontはキャッシュを作り、サイトが更新された事を確認しました。
デバッグをオンにして、とりあえず情報を拾おうとする
config.phpにデバッグコードを挿入して、エラー情報を拾ってみようしました。
結果、更新に失敗してもlogが作成されません、どうしたものか……
原因判明、こんなん分かるか
友人とああでもないこうでもないと数日頭を痛めた結果、遂に原因が判明しました。
WordPress 4.7以降導入されたREST APIが悪さをしていました。こんなん分かるか。
/wp-json/ というエンドポイントが増え、そこが使うURLが問題でした。
origin-blogとblogドメイン(フロントとCloudfrontのURLを切り分けてます)どちらも混在していたので、こちらをblogに寄せて解決しました。
気づきのヒントとなったのは、AIOSEOがREST APIのエラーをずっと吐き続けていたことでした、サンキューAIOSEO。
更新出来なくなる原因はこれだけに限りませんが、解決方法の参考例のひとつとなれば幸いです。
解決に助力頂いた友人には、お寿司を奢らなきゃダメですね。