ブログの更新時に、ワードプレスの動作がどうも変。
というのも、記事の投稿や更新、プラグインの設定変更など、それ自体は出来るんですが、編集画面に戻ってこれず何分か経って以下のような「500 Internal Server Error」が表示されます。
数時間のうちに何万とアクセスが集中する場合などに(確か)503エラー(上の画像のような似たような表示がされる)が出て「ブログにアクセスできない!やばいぞ!」というのは、これまで何度か経験してますが、今回のように、
- ブログ自体は普通にアクセスでき、
- 投稿や更新自体は出来ても、
- 編集画面に戻ってこれず、そこで上に見るようなエラー画面が表示される、
というのは初めてのこと。
今回はこういった時の対処法をメモしておきます。
原因はキャッシュ系のプラグイン
ネットで色々と情報を集めましたが、私の場合、原因は「W3 Total Cache」というプラグイン。
このプラグインを一旦「停止」してみたら、あら不思議、問題なく、記事の投稿や更新、プラグインの設定変更ができました。(ひとまずホッ ^◇^)ゞ)
このプラグインはデータをキャッシュしてくれて、記事などを短時間で表示させる、という、いわゆるキャッシュ系プラグインの有名どころの1つです。
通常は、記事などにアクセスされた際には、ワードプレスのデータベースから記事や画像のデータを探して持ってきて、サーバーを経由してそれを表示する、ということになります。
これをキャッシュ系のプラグインを使うと、「ワードプレスのデータベースから記事や画像のデータを探して持ってくる」のではなく、あらかじめサーバにデータを保持しておいて(キャッシュしておいて)、それを表示する、ということをします。
こうすることで、データベースにアクセスしなくても、記事などを素早く表示することができ、これがキャッシュ系プラグインの役割になりますね。
実際の現象の詳細
ワードプレスの動作がどうも変だ、となった時の実際の現象は以下のようなもの。
- 記事の投稿自体は出来る
- 「公開」または「更新」ボタンを押したのち、通常は暫くすると再び記事の編集画面が再表示される(記事の投稿や更新が完了する)が、数分ぐらいたっても、編集画面が再表示されない
- ブラウザ(グーグルクローム使ってます)のタブを見ると、データを送信しているときは時計と反対回りのグルグル表示がされ、データ送信が終わり、データを受信しようとグルグル表示が時計回りに変わった後、そのままの状態がしばらく続く(数分程度)
- で、しばらくほっておき、気が付くと、500エラーが画面上に表示される
- 投稿や更新に失敗したのか、と思い、ブログを表示させてみると、記事の投稿や更新自体は出来ている
- プラグインの設定を変えて更新しても、同じ現象が見られる
ブログ自体は問題なさそう、でも、記事の投稿や更新時にだけエラーが表示される、といった不思議な現象です。
原因に行き着いた流れ
経験上、ブログの動作がおかしい場合に疑うべきは、以下3点ぐらい。
- 1)PHP
- テーマ自体、またはテーマのの編集をしていたり、独自でプログラムなどしている場合
- 2)アクセスが集中
- 3)プラグイン
PHPに誤動作やプログラムに不具合があったりすると、そもそもブログが表示させずに、画面上には得体のしれない文字列のメッセージが表示されます。
(今回はブログは正常に動作しているので、この可能性は低い)
アクセスが集中しているか、といっても、ブログは普通に見れるので、この可能性も低い。
ということは、プラグインが最も怪しそう、ということになります。
原因の特定と対処
プラグインが最も怪しそう、という場合の一般的な対処法は、
- 一般的な対処法
- プラグインをすべて一旦停止してみる
というものですが、この場合、
- プラグインを一旦すべて停止してみて、問題がなくなっているか確認
- その後、1つ1つ有効化していく
- 1つ1つ有効化していく中で、問題がでたら、その有効化したプラグインが原因
- そのプラグインは使わずに、同じ機能を実現する別のプラグインを探す
という流れが確実ですが、プラグインを全て一旦停止するのはウイジェットの設定などに関係してたりして、ちょっと気が重い。(というか、単に面倒がり屋)
今回の症状は、
- ブログ自体は動作している
- 記事の投稿や更新時のデータの読み込み時のみにエラー画面が表示される
ということから、
- 記事やプラグインの設定など、編集画面で動作するプラグイン、が怪しい、
- 更に、データの受信にのみ関連する、と考えると、使っているプラグインを一通り見渡した時に、この「キャッシュ系のプラグイン(W3 Total Cache)が最も怪しそう」、
となりました。
で、実際に「W3 Total Cache」を停止してワードプレスの動作を確認してみると、問題が解消されていた、という流れです。
参考までに、私が利用しているのはエックスサーバーですが、エックスサーバーの500エラーに関する情報は以下に説明されてます。
よくある質問 - 「500 Internal Server Error」というエラーが表示されてホームページが見られません。 | 【エックスサーバービジネス】サポートサイト
キャッシュ系プラグインの対応
以上のように、原因が割と短時間で特定できたので良かったですが、1つ問題が「キャッシュ系のプラグイン」をどうするか。
私のブログでは「W3 Total Cache」が相性が悪いのか、またはプラグインのアップデートにより、今回の問題が新たに出たのか分かりませんが、キャッシュ系プラグインの乗り換えをする必要がありそうです。
が、この乗り換えに課題があるんですね。
以前も以下の記事で書いてますが、キャッシュ系プラグインを削除するのには注意が必要です。
【WordPressプラグイン】WP Super Cache をエラー無しに削除
(この記事にあるように、ここから「W3 Total Cache」に乗り換えたんですが ^-^;))
キャッシュ系プラグインを単純に削除すると、ブログが正しく表示できなくなる場合もあり、今回も以前同様、削除の仕方をしっかり調べた上で削除し、別のものに乗り換える、ということになりそうです。
他のブログでつかってる「WP Fastest Cache」あたりが良いかもしれませんね。
500エラーが変に出たら、以上の順で原因などを調べてみてください。
「W3 Total Cache」を使っていたとしたら、同じ原因かもしれませんよ。