WordPress復旧後に501エラー|原因はプラグインではなく“これ”でした

WordPressを復旧したのに、
なぜかプラグインのアップロードで「501エラー」。

・サイトは表示される
・管理画面にも入れる
・でも、なぜか操作だけ失敗する

こんな状態にハマったことはありませんか?

実際に復旧作業中に、この問題に遭遇しました。
結論から言うと、原因は意外なところにありました。

目次

状況

今回の状況は以下の通りです。

・バックアップからWordPressを復旧
・サイト表示は正常
・管理画面もログイン可能

しかし、
プラグインをアップロードしようとすると…

「501 Not Implemented」エラーが発生

対応

原因は「WAF(Web Application Firewall)」か?!

XserverのWAF設定がONの状態だと、
プラグインのアップロードや一部のPOST通信がブロックされることがあります。

特にWordPress復旧直後は、
・ファイル構成の違い
・通信内容の変化

により、WAFが誤検知しやすい状態になります。

以下の手順で解決しました。

① Xserverのサーバーパネルにログイン
② 「WAF設定」を開く
③ 該当ドメインのWAFを一時的にOFF
④ 再度プラグインをアップロード

→ 正常にアップロード完了

まだ、501エラーがつづいている場合もあります。

WordPress復旧後に501エラーが出る原因は1つではありません。

今回のケースでは、
一見WAFによるブロックに見えましたが、

実際の原因は
「WordPressコアファイルの不足」でした。

一応、元のWPのVerを確かめて欲しいですが、こちらからコアファイルをダウンロードします。

コアファイルはこちら。1つづつ上書きでアップロードしていきます。削除してからアップロードだと白画面になる可能性があります。1つアップしたら、リロードして画面がもどればOK。余計なアップロードはしない方がいいです。

wordpress/
├ wp-admin ← コア(超重要)
├ wp-content ← ❌ここはコアじゃない(触らない)
├ wp-includes ← コア(超重要)
├ index.php ← コア
├ wp-login.php ← コア
├ wp-config-sample.php ← コア(参考用)
├ wp-settings.php ← コア
├ wp-load.php ← コア
├ xmlrpc.php ← コア
├ license.txt ← コア
├ readme.html ← コア

最低限これ

wp-admin
wp-includes
ルート直下のphp全部

結果

今回の事例では、「wp-admin」を1つアップロードして直りました。

直りましたら、さきほどのWAFの設定をONに戻すことを忘れずに。

結論から言うと、
今回の501エラーの原因は「プラグイン」ではありませんでした。

WAFはプラグインをブロックしていたのではなく、
異常なリクエストを検知してブロックしていました。

その異常の原因は、
WordPressコアファイルの不足でした。

「プラグインでもWAFでもありません。原因は、もっと基本的な部分でした。」

この記事を書いた人

目次