WordPressを使ってる自分のサイトが突然「500 Internal Server Error」で表示されなくなったり、記事の更新などをしたときにこのエラーが表示されたりした方に向けてここでは「500 Internal Server Error」の解決方法についてまとめて紹介していきたいと思います。
注意:以下で紹介する解決法を試す上で必ずバックアップをとってください。途中で間違ったことをしてしまうと取り返しのつかないことになる場合があります。以下でバックアップの方法についても紹介します。
500 Internal Server Errorとは
以下ウィキペディアの抜粋
”サーバ内部エラー。サーバ内部にエラーが発生した場合に返される。例として、CGIとして動作させているプログラムに文法エラーがあったり、設定に誤りがあった場合などに返される。”
上記の説明では「サーバ内部エラー」と書かれていますが大雑把すぎてどういうことかわかりにくいので簡単に言い換えると、サーバ自体は生きてるけどアップロードされたプログラムに問題があったりしてきちんと処理できないということです。
具体的な原因は?
こちらについてはさまざまな原因で起こりますが、WordPressを使用していてよくある原因としては「.htaccess」というファイルに問題がある場合多いです。
おそらくエラーが生じている人は多くの参考サイトを徘徊しこの記述を目にしたと思います。
ですが、「そんなファイルいじってないし、WordPressの設定もさまざまなサイトを参考にミスなく設定したからお手上げ・・・」という方がおおくいらっしゃるのではないかと思います。
現に、私もサイトが表示されていたのに突然サイトが表示されなくなり「500 Internal Server Error」が頻発するという事件が起こりました。
(これが出たときめちゃくちゃ焦っていろんなサイトを急いで調べましたがすぐには解決しませんでした。。。)
しかし、やはり自分の場合も原因は「.htaccess」にありました!!!!!
「W3 Total Cache」というプラグインを入れている方で性能が結構高めのレンタルサーバーを使っていない方はこのプラグインがうまく作動せず、結果的に「500 Internal Server Error」のエラーを吐くことがよくあるそうです。
以下では上記プラグインを入れている方で「500 Internal Server Error」の解決方法とそれを行う上でのバックアップの仕方を紹介したいと思います。
バックアップの仕方
バックアップの仕方といってもそんなたいそうなことではありません。
しかしバックアップをしていなければもし失敗して表示されなくなったりしても元にはもどせなくなってしまいます。
なのできちんとバックアップを取っておきましょう。
まず自分のレンタルサーバー内にあるバックアップを取りたいファイルを探します。
例えば「.htaccess」など
見つけたら、そのファイルをダウンロードして自分のパソコン内に保存します。
もしかしたら、レンタルサーバによってはバックアップを取得してくれるサービスがあるかもしれません。
保存したデータは誤って削除しないよう大切に保管してください。
「500 Internal Server Error」解決方法
まずはじめに自分が調べた参考サイトを紹介しておきたいと思います。自分もこの記事を参考にして解決することができました。
wpXレンタルサーバーで「W3 Total Cache」が500エラーになる問題の解消方法、ピンチから脱出方法!|NETAONE
ではこちらでも、説明していきたいと思います。なお、少し上記参考サイトに載ってない部分の説明も少しあるので、そちらだけでも見てもらえると幸いです。
まず前提条件として、「W3 Total Cache」というプラグインを利用していて「500 Internal Server Error」が表示される方をあくまで対象としています。
①レンタルサーバのFTPにログインして、以下のファイルのバックアップを取得する。
「.htaccess」
「wp-config.php」
②「.htaccess」の中身を編集する。
編集の仕方はFTP内で編集できればそれでいいのですが、一旦ダウンロードしてバックアップとは別で編集したものをアップロードする場合、編集ソフトはATOMなどのきちんとした編集ソフトを使用し、テキストエディタなどは使用しないようにしましょう。
編集内容は以下のようにします。
「# BEGIN W3TC Browser Cache
~略~
# END W3TC Browser Cache」
の部分を削除するだけです。
③「wp-config.php」を編集する。
上記と同様に以下の部分を削除します。
「/** Enable W3 Total Cache */
define('WP_CACHE', true); // Added by W3 Total Cache」
④「W3 Total Cache」のディレクトリ名を変更します。
参考サイトでは、「_____W3 Total Cache」のようにアンダーバーを前につけていましたが、この部分は元と違う名前になっていれば何でもいいです。
⑤ブラウザで確認し、プラグインの一覧から「W3 Total Cache」を削除します。
これで完了!
意外とあっさりしてます。
確認してみると「500 Internal Server Error」が無くなり、また再発することはとりあえず無くなりました!
しかし、この後通常通りにWordPressを使用できたのですが、2か所エラー表示があり、画像のアップロードができなくなるという症状が出ました。
このエラーには、「db.php」と「object-cache.php」のファイルを削除するかもう一度「W3 Total Cache」をインストールしろということが書かれています。
なので上記の2つのファイルを削除しましょう。今回も念のためさきほどと同様バックアップをとっておきましょう。
削除すると今までのように画像がきちんとアップロードされていました。
まとめ
「500 Internal Server Error」の原因はさまざまなので上記で紹介した解決方法は一例にすぎません。
調べていった中には、WordPressログインぺージがブルートフォース攻撃を受けてCPUダウンという例もあるようです。
上記の解決法で少しでも多くの方がこのエラーを解決できるよう願っています。