500
読み:ごひゃく
外語:500: Internal Server Error
HTTPが返すステータスコードの一つ。Internal Server Error。サーバー内エラー発生。
概要
CGIで稼働するプログラムを作っていれば、一度は出くわすエラーのひとつ。
サーバー内処理でエラーが発生してしまい、Webサーバーで必要とするデータが得られなかった場合にこのエラーが出力される。
次のような条件でよく発生する。
- Perl(などのスクリプト)の文法が間違っている
- Perl(などのスクリプト)から読み込むはずのファイルが実際には無い
- 改行コードがサーバー環境に合っていない(例えばCR/LF)
- ファイルのパーミッションが不正
- Content-Typeヘッダーを出力していない
- ヘッダーと本文中に改行が無い
- 標準出力への出力が空
特徴
つまり、CGIの出力が無効な場合は全てこのエラーになってしまうため、このエラーから原因を推測することは非常に難しい。
一般的に標準エラー出力に吐き出された実行時エラーメッセージがサーバーのエラーログ内に記録されているので、対処にはこれを参照する必要がある。
このログを閲覧できない環境にある場合はtelnetなどでシェルを使いコマンドライン上でCGIプログラムを動かしてみるか、あるいはローカル環境で動作テストするか、プログラムの標準エラー出力を開き直して標準出力かファイルに出力させるなどの対策を取る。
再検索