35歳で会社を辞めてサイト運営で生計を立てているフリーランスのブログ

現役Webデザイナーがお答えします

WordPressの「500 Internal Server Error」の問題を一発で解決した方法

いつものようにWordPressで記事を作成していたら、突然に反応しなくなり、「500 Internal Server Error」が表示されました。

リロードしてもブラウザを変えてもエラーが出たまま。Google アナリティクスのリアルタイムがゼロになり「これは、マジでやばい」と思い速攻で対策をしました。

具体的には、htaccessを修正することで、すぐに復旧しましたよ。このページでは、「500 Internal Server Error」の問題を一発で解決した手順を紹介します。一つのモデルケースとして参考になれば幸いです。

なお、これはシビアな問題です。絶対にバックアップをとってから自己責任でお願いします。

スポンサードリンク

500 Internal Server Errorとは?原因と対策

500 Internal Server Error
これは、サイトの内部にエラーがあるときに起こる問題です。エラー内容に書かれているように以下のようなことが原因です。

・CGIの負荷が大きい
・CGIのパーミッション
・CGIのソースコード
・htaccessの記述

他にも、PHPの記述ミスやメモリ不足でも起こった事例もありました。

アクセスが集中してサーバー落ちたとかサーバー自体に問題があるといった外的な問題ではないでようです。

なので、時間が解決してくれる問題というよりかは、記述を変更するなどして、自分で解決しなければならない可能性が高いです。かなり、やっかいです。

今回の原因

私のケースでは、WordPressの投稿画面で、別のテキストエディタからコピーしたテキストをペーストしたときに様子がおかしくなりました。たぶん「&」が全角になっていたのを半角に修正したのが原因ではないかと予想してます。文字の表示が何か変な感じだったんですよね。

スポンサードリンク

解決方法

ここからは、私が試してみて一発で解決した方法を紹介します。

まず、解決するのに調べてわかったのが「htaccessが原因だ!」としている記事が多かったこと。なので、私も真っ先にhtaccessを疑いました。

WordPressの場合は、インストールしているディレクトリのルートにhtaccessファイルがあります。FileZillaなどのFTPソフトでサーバーにアクセスしましょう。

次に、htaccessをテキストエディタで開きます。

その一番上の行に以下のような記述がありました。

suPHP_ConfigPath /home/パスが入ります/xserver_php/
AddHandler x-httpd-php5.3 .php .phps

1行目は、php.iniが設置されている場所へのパス。2行目は、PHPのバージョンを設定しています。ちなみに、このレンタルサーバーはエックスサーバーです。

この記述を、削除してもう一度ペーストして保存すると復旧しました。たった、これだけです。なぜだ?という根拠はないのですが、解決策の一例として。

なお、完全に削除してしまうと別のエラーが起こるので、実行する前に、必ずバックアップをとってください。

追記

この記事を書いた後、またエラーが頻繁に起こるようになりました。試行錯誤した結果、エックスサーバーの「PHP高速化設定(FastCGI化)」をONにすると解決しました。