WordPressサイトでプラグイン更新後にHTTP ERROR 500エラーが発生してログインすらできない時の対処法~WordPress覚書き~

個人的に運営しているワードプレスのサイトでHTTP ERROR 500が発生して管理画面にアクセスできなくなったので、解決策の覚書。

自分の場合、WPをバージョンアップした後、さらにプラグインを更新した直後にエラーが発生したので、どちらかに原因があると見て対処したところ、W3 Total Cache(W3TC)が悪さしていたことが判明。

advanced-cache.phpを削除して再インストールしたところ、無事に解決しました。

ということで、以下がその時に踏んだ手順。

最初に.htaccessを確認

プラグインが悪さする以外によくある原因として、「.htaccessが書き換えられた際にバグが発生」というものがあります。
ということで、まずは.htaccessをチェック。

参考:WordPress サイトで 500 Internal Server Error が発生したときのメモ

ところが、WPのバージョンアップ時にとってあったバックアップの.htaccessと比較しても、特に書き換えられた痕跡はみられず。ここで解決したら一瞬だったのだけど、、、

ただ、.htaccess内にW3TCに関係する記述があったので、W3TCのプラグイン更新に問題があったとすれば、HTTP ERROR 500も発生するのでは?とこの時点で勘ぐってみました。

FTP経由でプラグインを一括停止する

管理画面に入れなくなっても、FTPやサーバーのファイルマネージャーからプラグインを停止する方法があります。これを使ってすべてのプラグインを強制的に停止させました。

  1. FTP やホスティングサーバーのファイルマネージャーから、wp-contents フォルダ (ディレクトリ) に移動する。
  2. FTP やホスティングサーバーのファイルマネージャーから、フォルダ “plugins” を “plugins.hold” に名前を変更する。
  3. WordPress 管理画面のプラグインのページ /wp-admin/plugins.php にログインする。この操作により「見つからない」プラグインはすべて無効化されます。
  4. FTP やホスティングサーバーのファイルマネージャーから、フォルダ “plugins.hold” を “plugins” に名前を戻す。

引用 – FAQ/トラブルシューティング – WordPress Codex 日本語版

2.の時点でエラー発生が収まって、管理画面にアクセスできた!ってことで、いずれかのプラグインが原因ということが判明。

4.の操作後に、再度管理画面のプラグインのページにアクセスすると、インストールされているすべてのプラグインが停止中になった状態で表示されています。
ここで、一度すべてのプラグインを有効化してみました。

すると、、、

やはりHTTP ERROR 500が発生。

間違いなく、プラグインが原因のエラーですな。

W3 Total Cacheプラグインをバックアップから復元

一度サーバーの plugins > w3-total-cache ディレクトリを削除した後、WPバージョンアップ時にとってあったバックアップデータから同ディレクトリをコピー。

このタイミングで HTTP ERROR 500 は発生せずに入れたので、W3 Total Cacheを更新してみる。

ここで更新エラー発生!!直後にもれなくHTTP ERROR 500 も付いてきました☆
(すぐに画面遷移をしたので、更新エラーのメッセージは何か覚えていません、、)
(本来の復元は plugins > w3-total-cache ディレクトリだけではいけないかも?)

advanced-cache.phpを削除→W3 Total Cacheの再インストール

復元しても更新したらエラーが出るんじゃ、復元もあまり意味なしだから再インストールか~

ということで、また plugins > w3-total-cache ディレクトリを削除して(FTP経由で削除すると時間がかかる場合は、適当な名前のディレクトリを作成してそこにw3-total-cache ディレクトリを移動すると早いです。解決したら削除すればおけ。)再度、管理画面へ。

プラグインのページに入って、W3TCを新規インストールし直そうとした時、上部に何やら怪しげなメッセージを発見。

メッセージそのものが、表示がおかしくて一部隠れていたので正確ではないですが、「W3TCがエラー吐いてるから、一旦削除してインストールし直すか、wp-content/advanced-cache.php を削除してください」的な内容でした。

早速、advanced-cache.php を削除。この時点で、エラーは特に出ず。

そして、W3TC を再インストール。

結果は、、、

無事に成功!!

これにて一件落着しました。

いや~、なんとなくW3TCが原因なんじゃないかと思って実際にそうだったからよかったけど、もし違ったら一つ一つしらみつぶしに元凶を探さなきゃならなかったなぁ、、

それは恐ろしすぎる、、、

プラグインが原因だと思われる方の一助になれば嬉しいです。

参考:
WordPressのダッシュボード・管理画面に500エラーで入れなくなった時の解決方法
WordPress でプラグインを更新後に「500 エラー」が起きて管理画面が開かないときの対処方法

追記

翌日、W3TCの有効化していなかったことに気づいて有効化したところ、PHPのバージョンが古くて使えない~とエラーが出ました。。

そういえば、サーバーの設定変えてなかったなぁと思いつつ、最新のものに変更。これでようやく全て解決です。