WordPress で管理しているWebサイトが次々にエラー。何事か。プラグイン apcu-manager でした。そして、その後。
・・・かのように思われましたが、そうでもなかったです。後述。
管理しているサイトに何かが起きて、すべて表示できない状態になっていました。
これは少し前までの、いわゆる「真っ白になって何も表示されない」エラーと同じものだそうです。
何もしてないのにこうなるのは、多くの場合キャッシュやプラグインが原因です。他の原因もあり得ますが、複数のサイトが次々とこの状態になるということは個別の事情によるエラーとは考えにくい。思い当たるのはプラグインの「自動更新」しかありません。
どれかプラグインが更新で下手をうったのでしょう。少し調べれば判りました。
犯人はAPCu Manager です。
FTPでプラグインをすべて無効にした後、一つずつ戻しながら確認する定番テストを行っていると APCu Manager で答え出ました。名前が A で始まるから最初の数個目でいきなり犯人が特定できてありがたかったです。
管理サイトのうち、エラーに見舞われていないところでは自動更新をしていませんでした。
これはちょうど良い。試しに更新してみたら、サイトは重大なエラーになりました。
裏が取れたということです。
ということで、APCu Manager 3.8.3 ( 3.8.2 かな?) に更新すると、重大なエラーが発生する可能性が高いので、更新しないか、プラグインを外しましょう。
サイトによっては、プラグイン無効化だけでは効果が得られず、削除して対処しました。
プラグインの自動更新、楽ができますが危険も伴いますね。
尚、APCu Manager を悪人と責め立てることを意図していません。他のプラグインとの競合も考えられますし、サーバーとの相性とか他の原因もあり得るでしょう。単純な失敗なら修正されるでしょう。
治ったのか?
この件は、サポートフォーラムで早速報告されていました。担当者が間違ったファイルをアップロードしてしまったのだとか。
https://wordpress.org/support/topic/crash-dashboard/
3.8.3 が修正されたバージョンっぽいです。ということはエラーが出たのは3.8.2であったか。そうなのか?そうでしょうか。
で、これを受けて、各サイトに APCu Manager を再びインストールしてみました。
結果、重大なエラーが起きて有効化できませんでした。
当方の管理している環境では 概ね 3.8.3 もアウト。一部のサイトは無事でした。ちょっとまだ様子見です。
※ その後ですが、3.8.3 でエラーが出るサイトでは何をどうやっても復帰しませんでした。担当者によると、apcu-manager フォルダとwp-content\object-cache.php を一旦削除してから再度インストールすると直るかも、ということですが、治りません。これは以前のバージョンに戻すか、さらなる修正バージョンを待つ以外になさそうです。
※ さらにその後 2024.05.07 バージョン 3.9.0 が配布されていました。対応が早かったですね。しばらく様子を見ます。
※ 以下に続きを・・・
3.9.0 まだ怪しい
しばらく経過して、怪しさ満開であることを確認しています。
ひょんなことでサイトがひどく重くなる現象がおきます。下書き保存したときとか、そんなタイミングです。
Query Monitor で確認したところ、クエリの数が尋常じゃない、重複クエリが数千に膨れ上がっていました。酷いときには万を超えます。中身を見ると普通に wordpress core を1000回読み込んだりしています。wp_options を2700回読み込んでます。これはいったい、何をしとるんでしょう?
一旦こうなるとAPCuのキャッシュを削除しまくってもまったく効果がなく、許容できないレベルの遅さに達します。
最初原因がわからなくてかなりジタバタしましたが、APCu Manager を無効にすると嘘のように治りました。「犯人はお前か」と口走ったほどでした。
ここで思い出話ですが、初めて APCu Manager を知ってインストールしたとき、ずっこけるほどサイトが遅くなって「駄目だこりゃ」とすぐに捨てました。その後、改良されて安心して利用できるレベルに達していましたが、先日の不具合のあと、あのときと同じ症状が舞い戻ったのです。
以前の投稿 [WordPress] APCu オブジェクトキャッシュで高速化 に書いたように、再び自家製の object-cache.php に戻ることにしました。以下をご参照のほど。
[WordPress] APCu オブジェクトキャッシュで高速化