WordPressのプラグインをアップデートしたらエラーが500エラー(Internal Server Error)が発生してページが表示できなくなってしまいました・・・。
たまーにあるのですが、今回は少し特殊だったので情報を残しておきますので何かあったら参考にしてもらえると嬉しいです。
環境
- さくらのレンタルサーバ
- wordpress 6.2
エラーの状況
Internal Server Error いわゆる500エラーが発生
対処法
とりあえず何が起こったのかログをエラーログを確認しましょう。
さくらのレンタルサーバの場合、
- サーバーコントロールパネルにログイン
- サーバーステータスをクリック
- 本日のエラーログをクリック
上記手順でエラーのログが確認できます。
今回出ていたエラーは、
[Mon Apr 24 23:10:47.830386 2023] [core:alert] [pid 12345] [client 0.0.0.0:55379] /home/hogefuga/www/.htaccess: Invalid command 'END', perhaps misspelled or defined by a module not included in the server configuration
※一部マスク化しています
というエラー。なにやら.htaccessファイルを読み込もうとしてエラーが発生しているようです。
とりあえず上記に記載のある、.htaccessファイルを覗いてみます。
.htaccessファイルは下記で参照できます。
- Webサイト/データをクリック
- ファイルマネージャーをクリック
するとファイルマネージャーが開くのでそこからエラーログに記載のあった.htaccessファイルを開きます。
.htaccessファイルの内容はセキュリティ上あまり記載できないので省略しますが、開けたらログにあった「END」という文字列を検索してみます。
すると・・・
END SAKURA Internet Inc.
# BEGIN WordPress
# "BEGIN WordPress" から "END WordPress" までのディレクティブ (行) は
# 動的に生成され、WordPress フィルターによってのみ修正が可能です。
# これらのマーカー間にあるディレクティブへのいかなる変更も上書きされてしまいます。
こんな記載が見つかりました。
んん???一番上の行、コメントの用に見えますがコメントアウト(#)がついていないですね!
どうやら、なにかの拍子にサーバサイドで.htaccessファイルが変更されたときに自動で挿入されたこのコメントが悪さしているようです。
ファイルマネージャーから上記「END SAKURA Internet Inc.」の先頭に、「#」をつけて下記のようにします。
#END SAKURA Internet Inc.
# BEGIN WordPress
# "BEGIN WordPress" から "END WordPress" までのディレクティブ (行) は
# 動的に生成され、WordPress フィルターによってのみ修正が可能です。
# これらのマーカー間にあるディレクティブへのいかなる変更も上書きされてしまいます。
これで、サイト(ページ)を改めて表示してみましょう。
無事に表示できました!
まとめ
WordPressでエラー画面が表示された場合はとりあえずエラーログを確認してみましょう。
有益な情報があることが多いです。
エラーログに何か出ていることを確認したら、その情報をもとに対応を行いましょう。
落ち着いて対応すればほぼ問題なく復旧できます。
焦ってファイルを削除してしまったり、データを消してしまうと取り返しが付かないので慎重に落ち着いて対応しましょう!