サーバーエラーとは?概要や500エラーへの対処法と防止策を解説

サーバーエラーとは、サーバーに問題が発生していることを示しています。
サーバーエラーが発生すると、ユーザーがWebサイトを利用できない状態となってしまうため、早期解決が求められます。
この記事では、サーバーエラーの概要のほか、原因と対処法について詳しく解説します。
サーバーエラーの防止策やHTTPステータスコード500番台エラーについてもご紹介しますので、ぜひ最後までご覧ください。
執筆者

マーケティングサポート「バンソウ」のメディア管理人
株式会社クリエイティブバンクのマーケティングサポート「バンソウ」のメディア管理人。得意分野は、SEO全般・サイト分析・オウンドメディア・コンテンツマーケティング。バンソウはクライアント様のBtoBマーケティングをサポートするサービスです。詳しい内容はこちらをご覧ください。
サーバーエラーとは
サーバーエラーとは、サーバーの内部でなんらかの問題が発生したことを示す言葉です。
ブラウザからリクエストに対するサーバー側のレスポンスを3桁の数字で示すHTTPステータスコードの500番台は、すべてサーバーエラーを表しています。
代表的なサーバーエラーに500 Internal Server Error(500エラー)があります。
500エラーは、サーバー内部にエラーが発生したことを意味するエラーです。
「Internal Server Error」という名称から、500エラーのことをサーバーエラーと呼ぶこともあります。
500エラーは、ブラウザからのリクエストをサーバーが処理する際に、何らかの問題が発生した影響で正常に処理ができなかった場合に表示されます。
このエラーの主な原因は、サーバー側に起因することが多いため、ユーザー側では対処が難しいケースがほとんどです。
次に、500エラーが発生した際の原因と対処法をご紹介します。
500エラーの原因と対処法
500エラーの原因は、多くの場合サーバー側にあることが多いため、ユーザー側では対処が難しいことは先に述べたとおりです。
そのため、ユーザーとしてWebサイトを利用中に500エラーが発生した場合は、サーバー側の対処を待つのが得策だといえるでしょう。
一方でWebサイトの運営者側であれば、早めにユーザーがWebサイトを利用できる状態に戻すためにも、原因を突き止め適切に対処する必要があります。
ここからは、500エラーの原因と対処法を解説します。
「 .htaccess」の記述に誤りがある場合
「 .htaccess」とは、サーバーの動作を制御するためのファイルです。
このファイルが正しく記述されていない場合、サーバー側がするべき動作を認識できないため、500エラーが発生する原因となります。
「 .htaccess」の記述では、特にミスが起こりやすい以下の点を確認しましょう。
- フルパス(ファイルの所在地をすべて記すこと)で記述されているかどうか
- ファイルに全角文字、全角スペースが含まれていないかどうか
- 最後の行に空行が設定されているかどうか
「 .htaccess」の記述に誤りがあった場合は、正しい内容を記述することが最善の対処法となります。
「PHP」「CGI」の記述に誤りがある場合
「PHP」とは、ユーザーの属性や閲覧する時間帯に応じて表示内容を変更する「動的コンテンツ」の生成に用いられるプログラミング言語です。
一方で「CGI」とは、サーバー上でプログラミングを正常に動作させるための仕組みのことを指します。
これらの記述に誤りがある際も、サーバーエラーの原因となります。
「PHP」「CGI」の記述に誤りがある場合も、「 .htaccess」のケースと同様、正しい内容を記述することが対処法となります。
パーミッション設定に誤りがある
パーミッション設定とは、リクエストを実行するための属性や権限の設定のことを指します。
「 .htaccess」や「CGI」のパーミッション設定に誤りがある場合、リクエストを正常に処理できなくなるため、500エラーの原因となります。
レンタルサーバーの場合、推奨されているパーミッション設定がホスティングサービスによって異なるケースもあるため、推奨設定を確認することをおすすめします。
パーミッション設定に誤りがあった場合は、これまでご紹介した内容と同様に修正することで500エラーが解消される可能性が高いといえるでしょう。
アクセス集中によりサーバー負荷が増大している
アクセス集中によってサーバー負荷が一時的に増大していることが原因で、500エラーが出ることがあります。
一時的なものであれば、時間経過とともにアクセスが落ち着くのを待てば解消されるケースがほとんどです。
クロール頻度が高い
Googleは、クローラーと呼ばれるロボットを巡回させることにより、Webサイトの情報収集をしています。
このように、クローラーがWebサイトを巡回することをクロールと呼びます。
クロールの頻度が高いことで、先に述べたアクセス集中のようにサーバー負荷が増大し、500エラーが発生することがあります。
Webサイトの運営者側でクロールの回数を設定することはできませんが、頻度を下げるように設定することは可能です。
詳しい設定方法については、Google 検索セントラルの「Googlebot のクロール頻度を下げる」をご覧ください。
サーバーのリソースが不足している
サーバーのリソースとは、動作に必要なメモリやハードウェアの容量、CPUの処理速度のことを指します。
サーバー負荷の増大による500エラーが頻発する場合、サーバーに負荷をかけている原因はアクセス集中ではない可能性があります。
このようなケースでは、サーバーのリソースが不足していることが多いため、サーバーを増設したりリソースを増やしたりして、サーバーにかかる負荷を軽減させましょう。
サーバーソフトウェアのバージョンが古い
サーバーソフトウェアを最新版へとアップデートしておらず、古いバージョンのまま使用していることが原因で、500エラーが発生することもあります。
サーバーソフトウェアのバージョンを確認し、最新版のものへとアップデートしましょう。
【WordPressの場合】プラグインとPHPのバージョンが合っていない
WordPressを使用している場合、WordPress本体や利用中のプラグインのバージョンと、PHPのバージョンが合っていないことが原因で500エラーが発生することがあります。
それぞれのバージョンを確認し、最新版へとアップデートしましょう。
また、WordPressのプラグインは数が多く、組み合わせ次第で500エラーを含めたエラーが発生する可能性があります。
バージョンを合わせても500エラーが発生する場合は、一度すべてのプラグインを無効化し、ひとつずつ有効にしながらエラーが解消されるかどうか確認しましょう。
サーバーエラーの防止策
ここまで、500エラーの原因と対処法をご紹介しました。500エラーは、ユーザーがWebサイトを利用できない状態となってしまうため、できる限り発生させないことが望ましいといえるでしょう。
ここでは、サーバーエラーを防止するための方法を解説します。
ソフトウェアやWordPressのバージョンを適切に管理する
「500エラーの原因と対処法」でも述べたように、サーバーソフトウェアやWordPress本体、プラグイン、PHP、それぞれのバージョンが最新版でない場合、500エラー発生の原因となります。
500エラーを防止するためには、これらのバージョンを適切に管理するようにしましょう。
余裕を持ったリソースを確保する
サーバーのリソースに余裕がない場合は、アクセス集中時のサーバー負荷や高頻度のクロールに耐えられなくなるため、余裕を持ったリソースの確保が必要となります。
現在使用しているサーバーのリソースを確認し、逼迫(ひっぱく)している場合はサーバーの容量を増やしたり、増設したりして500エラーを防止しましょう。
定期的にサーバーログをモニタリングする
定期的にサーバーログをモニタリングすることで、500エラーを含むサーバーエラー全般を早期発見できる可能性が高まります。
また、エラーが発生した際に自動で検知し、知らせしてくれる障害検知システムを導入すれば、モニタリングできていないタイミングでも早めにエラーを発見できます。
エラー防止策としても有効なので、導入を検討することをおすすめします。
公開・更新前に事前検証を行う
Webサイトを公開する前や、更新する前に、テスト環境を用意してエラーが発生していないか事前検証を行いましょう。
事前検証を行うことで、万が一エラーが発生していた場合も公開前に対処できます。
HTTPステータスコード500番台一覧
この記事で解説した500エラー以外にも、500番台で示されるサーバーエラーは数多く存在しています。
Webサイトの運営において、500エラー以外の500番エラーについての知識も身につけておくことをおすすめします。
最後に、500エラーを除く500番台のエラーをご紹介します。
HTTPステータスコード | 概要 |
501 Not Implemented | リクエストに対応できる機能がサーバーにない状態を示す |
502 Bad Gateway | アクセス集中などの原因でサーバーが対応できない状態を示す |
503 Service Temporarily Unavailable | アクセス集中、CGIプログラムの誤作動などが原因で一時的にWebサイトが利用できない状態を示す |
504 Gateway Timeout | クライアントとの接続がタイムアウトしたときに表示される |
505 HTTP Version Not Supported | 要求されているHTTPバージョンがサーバーのサポート対象外になっている状態を示す |
506 Variant Also Negotiates | サーバーが適切な応答ができない状態を示す |
507 Insufficient Storage | 一時的にサーバーのリソースが不足している状態を示す |
508 Loop Detected | 無限ループしている状態を示す |
510 Not Extended | HTTPリクエストが不足している状態を示す |
511 Network Authentication Required | ネットワーク認証が必要な状態を示す |
まとめ
この記事では、サーバーエラーとはどういったものなのかをご紹介しました。
サーバーエラーとは、サーバーの内部で何らかの問題が発生したことを示す言葉で、500 Internal Server Error(500エラー)のことをサーバーエラーと呼ぶこともあります。
500エラーは、ブラウザからのリクエストをサーバーが処理する際に、正常に処理ができなかった場合に表示されます。
500エラーの原因には、「 .htaccess」や「PHP」「CGI」の記述に誤りがある場合や、アクセス集中やクロール頻度が高いことによってサーバー負荷が増大したことなどがあげられます。
500エラーは、ユーザーがWebサイトを利用できない状態となってしまうため、早期発見して適切に対処することが大切です。
この記事でご紹介したサーバーエラーの防止策も参考に、500エラーを発生させない環境づくりに取り組みましょう。