2004年04月10日

CGIのデバッグ

PerlでCGIの作成をしているときに手元じゃちゃんと動くのにサーバに上げると500 サーバーエラーがでてしまうときがあります。

こういうときはWEBサーバのエラーログにどのようなエラーが出たか書いてありますが、サーバによってはエラーログのファイルがユーザには見えないようにしてあることも多々あります。
そういう場合に下記のようなスクリプトをdebug.cgiなどとして保存しサーバにアップロード→パーミッションを755等にしてブラウザからアクセスすると、デバッグしたいCGIの何行目でエラーが起こったのか判るので、デバッグに役に立つかもしれません。
(なお、hoge.cgiの部分には自分がデバッグするcgiの名称に変えておいてください)

#!/usr/bin/perl
open PL, "hoge.cgi";
my @EVALarr = <PL>;
close PL;
my $EVALscript = join('',@arr);
eval $EVALscript;
if ($@) {
 print "Content-type: text/html\n\n";
 print "<html><body><pre>\n";
 print "$@\n";
 print "</pre></body></html>\n";
}
あと、上記のスクリプトは開発が終わったらちゃんと削除しておくのが良いです。 Posted by Takuchan at 2004年04月10日 23:59 | トラックバック(0)