Webサーバーエラーの1つである500エラー。なんらかのエラーにより要求を完了できなかった場合に表示されるエラーっメッセージとなっていますが、500エラーがでたらどうすればいいのでしょうか。今回は500エラーへの対処法を解説します。
目次
500Errorの意味は?
では早速500エラーについて見ていきます。
そもそも500エラーにはどんな意味があるのでしょうか。
サーバー内部エラーの一つ
500エラーはWebサーバー内で発生しているエラーの一つです。
一般的に要求をサーバーへ送り、サーバーからレスポンスがあるのですが、500エラーが出ているということはなんらかの不具合でWebサーバーが要求を完了できなかったということを意味しています。
インターネットの世界では、
- Webサーバー
- Webブラウザ
の間にはHTTPというプロトコルを使ってデータの送受信を行なっています。
その際にエラーが発生するとHTTPステータスコードを表示するようになっているのですが、その一種が500エラーです。
サーバの違いで表記は変わるが、内容は同じ
HTTPステータスメッセージとして表示される500エラーは、Webサーバーによって以下の表記に変わることがあります。
- Internal Server Error
- 500 Internal Server Error
- HTTP 500
- 500 Error
- 500 – Internal Server Error
- HTTP 500 – Internal Server Error
あくまでWebサーバーが違うだけでエラーの内容は意味合いに違いはありません。
500エラーの原因は?
さて、ここからは500エラーの原因についてみていきます。
原因はたくさんあるのでそれぞれみておきましょう。
アクセスが集中している
まずは、アクセスが集中しているからです。
一般的にいう「サーバーが落ちました」というのは500エラーを意味しており、Webサイトへ急激にアクセスが増えた場合などに表示されます。
500エラーと同じく503エラーも発生することが多いですが、
- PHP
- CGI
の処理に異常が発生した時は500エラーが表示されます。
クローラーの負荷で発生
次は、クローラーの負荷で発生します。
我々が利用しているGoogleでは「クローリング」というWebサイト内の情報を収集するために行われる作業があります。
ただ、このクローリングの頻度が高くなってしまうとWebサイトへアクセスが集中している状態になってしまうので500エラーが表示されることがあります。
数百記事が公開されているようなWebサイト内を一気にクローリングするとほとんどの確率で500エラーが表示されるでしょう。
ちなみにクローリングがどれくらいの頻度で行われているのかは、
- サーバーログファイル
- クロールの統計情報
などより確認することが可能です。
PHP等のプログラム処理ミス
次は、PHP等のプログラム処理ミスです。
500エラーの原因となりうるプログラムとしては、
- PHP:プログラミング言語
- CGI:プログラミング言語で制作したWebサイトを動作させる仕組み
の2つが挙げられます。
PHPとCGIは組み合わせて利用しているユーザーも多くおり、このどちらかに異常をきたすと500エラーが発生することが多いです。
ここでいう「異常」というのは、
- 記述ミス
- ファイルの容量不足
- PHP・CGIのバージョン相違
などが挙げられます。
.htaccessの記述が間違っている
次は、.htaccessの記述が間違っていることです。
パス記述をフルパスにしていない場合、.htaccessの記述ミスで正しくプログラムを呼び出すことができません。
また.htaccessの記述ミス以外にも、
- ファイル内に全角文字や全角スペースが存在している
- アップロードのパーミッション設定ミス
- 最後に一行空白を入れていない
などがあります。
パーミッションの間違い
次は、パーミッションの間違いです。
CGIファイルのパーミッション設定が間違っているとファイルを正常に読み込むことができませんので、500エラーが表示されます。
普通はそういったミスはないのですが、レンタルサーバーによってはセキュリティの観点より違うパーミッション値が設定されていることがあります。
そのため、アップロードする前に指定されているパーミッションに変更できているかどうかを確認するようにしてください。
500エラーを解決するには?
様々な原因で発生する500エラー。
そんな500エラーを解決するにはどうすればいいのでしょうか。
集中しても耐えれるサーバーに変更する
まずは、集中しても耐えれるサーバーに変更することです。
本当に一時的なエラーの場合は、アクセスが落ち着くまで待機すればWebサイトは500エラーから解放されます。
しかし、何度も何度も500エラーが表示されるということはそもそもサーバーの容量が小さいことが考えられますので、アクセス数に耐えられるサーバーに変更することをおすすめします。
ある程度アクセスが集まっているということはそれだけWebサイトが成長してることの証でもありますから、サーバーをアップグレードするだけの投資を惜しまないようにしましょう。
クローラーの頻度を見直す
次は、クローラーの頻度を見直す方法です。
Googlebotのクローリング頻度が高すぎると500エラーが多発してしまう可能性があります。
そのため、
- クロール頻度の設定ページを開く
- 「Google の最大クロール頻度を制限する」にチェックを入れる
でクローリング頻度を下げておきましょう。
ただ、クローリング頻度を下げるということはそれだけWebサイトがGoogleへ認識してもらうスピードが遅くなるということですから根本的な解決ではありません。
一時的に500エラーを解決したいときに利用しましょう。
PHPをバージョンアップさせる
次は、PHPをバージョンアップさせる方法です。
そもそも500エラーの原因がPHPのバージョン不足である場合は、PHPをバージョンアップさせることで原因は解決します。
バージョンが古くなっているとサーバー画面より「バージョンが古くなっています。」などと警告メッセージが表示されることもあります。
WordPress推奨環境に合うようにPHPを更新しておきましょう。
パーミッションを直す(ディレクトリ・CGI)
次は、パーミッションを直す方法です。
主に、CGIの
- ディレクトリ
- パーミッション
を修正することで原因が解決することがあります。
500エラーが発生しているときのパーミッションは「777 (rwxrwxrwx)」となっていることが多いので、「755 (rwxr-xr-x)」に変更しましょう。
.htaccessの記述を直す
次は、.htaccessの記述を直す方法です。
.htaccessの記述ミスがあるとどうしてもエラーが解決できないので、
- admin
- nofile.html
など、デイレクトリ内に不必要な記述は消しておいてください。
まとめ
今回は500エラーについてみていきました。
500エラーが発生してしまう原因は様々で、「これ!」と特定することが難しいエラーでもあります。
そのため原因になりうるステータスを全て変更し、再度Webサイトへアクセスをして500エラーが解消されているかどうかを見る必要があります。