ここのWordPressでページを開くのに十秒以上かかる現象がだいぶ前から発生していました。同じサーバー上の他のWordPressブログでは発生していないのでサーバー側の問題というよりこのWordPressブログ固有の問題だろう。ブラウザの開発ツールで「ネットワーク」のタイムラインをみても、最初のHTMLの読み込みに時間がかかっているぽく、画像とか外部スクリプト、Webフォントとかの問題ではなさげ。ということはWordPressでPHPを処理してレンダリングするまでの問題か?と思い、いくつかあやしいプラグインを無効化しても変わらず。というところまでは時折検証していたんですが、一応動いているしということで放置していました(すみません)。
で、別件でサーバーログを眺める機会があり、たまたま目に付いたのが以下のエラーでした。ブログページを読み込む度に発生しています。WarningではなくErrorなのでよろしくないヤツです。
1 2 3 4 5 |
[Mon Feb 01 03:26:19.423652 2021] [proxy_fcgi:error] [pid 9526:tid 140486249486080] [client xxx.xxx.xxx.xxx:xxxxx] AH01071: Got error 'PHP message: WordPress \xe3\x83\x87\xe3\x83\xbc\xe3\x82\xbf\xe3\x83\x99\xe3\x83\xbc\xe3\x82\xb9\xe3\x82\xa8\xe3\x83\xa9\xe3\x83\xbc: Table 'wpxxxxx.wp_wpap_cache' doesn't exist for query DELETE FROM wp_wpap_cache WHERE expire_date_gmt < '2021-01-31 18:26:19'; made by require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), do_action('init'), WP_Hook->do_action, WP_Hook->apply_filters, WP_Associate_Post_R2\\Main->init, WP_Associate_Post_R2\\Cache->clean\n' |
AssociatesPostというのはAmazonや楽天のアフェリエイトリンクを生成するプラグインです。バリバリにお世話になっているので無効化は試していませんでした。
公式サイトをみると最終更新が2020.3ということで1年近く経っており、WordPressの互換性検証も「4.5以上」のままで「注意: このプラグインは現在使用中の WordPress バージョンではテストされていません。」という注意書きが出ています。もしかするとWordPress5.x系ででなにか問題が?と思いつつ、これだけメジャーなプラグインなら、ググればなにか出てくるくらい話題になってるだろうと。というか公式でもサポートが入るだろうと。
もう少しエラーを読んでみると、
1 2 |
Table 'wpxxxxx.wp_wpap_cache' doesn't exist for query DELETE FROM wp_wpap_cache WHERE expire_date_gmt < '2021-01-31 18:26:19' |
というSQL文を実行しようとしてエラーになってるぽい。つまりある時期より古いキャッシュを全て削除しようとして問題になってる。そもそもそのキャッシュを管理しているテーブルwpxxxxx.wp_wpap_cache自体が存在しない??(wpxxxxxは伏せ字にしてますが、このWordPressサイト用のDB名です)。
とりあえず久しぶりに設定画面を開いてみると、キャッシュに絡みそうなのは即時全削除のボタンがあるくらい。試しに実行してみると案の定、同じサーバーエラーが記録されるだけで変化なし。その下に設定のエクスポート/インポートがあるので、一旦プラグイン自体を削除して、再インストールすればキャッシュテーブルが再作成されるかも?と思いつつ、その前に一旦「無効化」->「有効化」を試したところ、あっさり解消しました。エラーも出なくなり、ブログの表示もほぼ瞬間的に出るようになりました。有効化の時点でもテーブル作成が実行されたのかも知れません。
こんな簡単なことならもっと速くやっておけば良かった。見に来てくださる方にも長いことご迷惑おかけしてすみませんでした。
たいしたことはやってないですが、どなたかの参考になればと書き留めておきます。