フリーランス|WEB 制作経験丸7年、制作会社様からのご依頼に丁寧・高クオリティでお手伝いいたします。 IRODORI DESIGN

B L O G

【PHPエラー】500 Internal Server Errorの原因と解決方法

500 Internal Server Error
PHPエラー
バグ解消
プログラミング

こんにちは、岐阜・名古屋を拠点に全国各地からご依頼いただくWEBサイトを制作しているフリーランスエンジニアの寺井です。

ある日突然、「500 Internal Server Error」が発生してしまった場合、焦ってしまうのではないでしょうか?
このエラーの発生原因は多岐に渡ります。
今回の記事ではこの「500 Internal Server Error」に焦点を当て、一部となりますが発生原因と解決方法をご紹介したいと思います。

500 Internal Server Errorとは

「500 Internal Server Error」はWebサーバーが処理出来ない内部的なエラーが発生した際に返すエラーのことです。
このエラーは一般的に、サーバー側で何かが予期せぬ問題を引き起こしている場合に発生します。
PHPエラーの場合は、エラーが起こっている内容と場所を教えてくれるため、比較的解決するのが簡単ですが、この「500 Internal Server Error」の場合はそれとは異なるため、問題の解消には順番に思いたたる原因をひとつづつ検証していく必要があります。

500 Internal Server Errorの原因

「500 Internal Server Error」の発生原因はさまざまで一部となりますが以下のようなことが考えられます。

  • プログラムの構文エラー
  • パーミッションの問題
  • .htaccessの記述ミス
  • メモリが不足
  • ファイルパスの問題
  • サーバー側の問題
  • 他の作業者の問題

それでは、それぞれについて見ていきましょう。

【原因1】プログラムの構文エラー

PHPやCGIスクリプトの内部に構文エラーが見つかると、サーバーはスクリプトの実行を中止し、「500 Internal Server Error」が発生します。
コード内の括弧の閉じ忘れやセミコロンの不足など、基本的な構文の誤りが原因の可能性があります。
原因となる箇所のスクリプトの構文エラーを修正する必要があります。

【原因2】パーミッションの問題

ファイルやディレクトリのアクセス権限が不適切であると、サーバーはアクセスを制限し、「500 Internal Server Error」が発生します。
ファイルやディレクトリの適切なパーミッションを確認し、必要に応じてchmodコマンドを使用して設定を修正する必要があります。

【原因3】htaccessの記述ミス

.htaccessファイル内の設定に誤りがあると、「500 Internal Server Error」が発生します。
また、誤ったリダイレクトルールを含む.htaccessファイルは無限ループに陥り、「500 Internal Server Error」が発生します。
ファイル内の設定やルールを丁寧に確認し、正しい構文を使用するように修正する必要があります。

【原因4】メモリが不足

スクリプトの処理がサーバーの制限時間を超えると、「500 Internal Server Error」が発生します。
処理時間を短縮するか、サーバーのタイムアウト設定を調整する必要があります。

【原因5】ファイルパスの問題

ファイルのパスが正しくないか、存在しない場合、「500 Internal Server Error」が発生します。
ファイルの正確なパスを確認し、必要に応じてパスを修正したりアップする必要があります。

【原因6】サーバー側の問題

もし、さまざまな観点から原因を探ってみても「500 Internal Server Error」が解決しない場合、利用しているサーバー会社のWEBサイトを確認してみましょう。
サーバー会社により異なりますが、障害情報やメンテナンス情報等として告知している可能性があります。
その場合はこちら側ではどうすることも出来ないので大人しくサーバー側の作業や復旧が完了するのを待ちましょう。

【原因7】他の作業者の問題

ファイルを編集したタイミングでエラーが起こってしまい、自分自身の作業が原因でエラーが起こってしまったと思い込んでしまうかもしれませんが、
もしかしたら他の誰かがファイルを変更したりサーバーの設定を変更したりしたことが原因の可能性も考えられます。
まずは冷静になって自分自身の作業に誤りがないか確認し、思い当たる原因が無い場合は他の誰かの作業が原因ではないか確認してみましょう。

500 Internal Server Errorの解決方法

このように「500 Internal Server Error」が発生する原因を様々な角度からピックアップしましたが、原因は多岐にわたります。
なにかしら設定を変更したり、プログラムを編集した後に発生した場合は原因の特定はそれらにある可能性が高いため、その部分を見直すことで解決は比較的容易かもしれませんが、
そうではない場合はサーバーのログを確認してエラーを特定し、解決する必要があります。

原因の特定は根気が必要になる可能性もあります。自分自身で解決できない場合は他のプログラマーなどに状況を説明して一緒に考えてもらう必要があるかもしれません。

まとめ

いかがでしたか?
今回は「500 Internal Server Error」について解説してきました。
このエラーの発生原因は多岐に渡り、原因の特定・解決は難航する恐れもあります。
上で記載した発生原因はほんの一部となりますので、それぞれの環境や作業内容に合わせて適切に対応する必要がありますね。