付録2 CGIでエラーがでたら


■CGIのエラーかどうか見分ける

ブラウザに「Internal Server Error」と表示されればCGIのエラー。「Not Found」や「ページが見つかりません」と表示された場合はアドレスが違うか、CGIのファイルがない。



■エラーログを見る
CGIのエラーの場合はエラーログを見て原因を確かめる。
Premature end of script headers
perlプログラムの先頭1行目のperlへのパスが間違っている。
syntax error at ・・・・.cgi line 13, near ・・・
該当する行のスペルミスなど。またはそれ以前の行でセミコロン(;)を忘れている。
Unrecognized character \241 at ・・・.cgi line 5.
該当する行に半角文字と間違えて全角文字や全角スペースが使用されている。
※ブラウザでWebサーバー(Apache)にアクセスされ、エラーが発生する度にエラーログの最後に追記されている。エディタでエラーログを開いて見ている場合は、新しいアクセスのエラーを見るためにいったんエラーログを閉じて、開き直す必要がある。


■perlで良くある間違い

・文末のセミコロン(;)を忘れている。
・文字列をダブルコーテーション(")やシングルコーテーション(')で囲っているか?
・(と)の対応を見失っている。(の数と)の数は同じですか?
・配列の中の1つの変数を表すのに$foo[1]ではなく、@foo[1]としている。
・プログラムをEUC文字コードで保存していなくて、日本語が文字化けしてエラーになっている。
・文字の比較でeqではなく==になっている。
・ifやelseの後のブロックを{}で囲っていない。



■何度修正してもダメな場合

修正したプログラムをApacheのhtdocsディレクトリへコピーしている?ブラウザで見ているのは修正していないプログラムかも。





戻る
メニューへ