• 締切済み

エラー表示

CGIがエラーを出すと、サーバーが500番エラーを表示しますよね。 そのページを.htaccessのErrorDocumentを使って、自分で定義したものにできたのですが、そのエラーページをCGIにして、どこかにエラーになったページが吐いたエラー出力が入ってないかと思ったのですが、入ってないのでしょうか? -------- #!/usr/bin/perl # hoge.cgi # エラーするCGI die "hoge!"; -------- #!/usr/bin/perl # error.cgi # 500エラーページなCGI print "$_: $ENV{$_}<br>\n" foreach(sort keys %ENV); # ここでもない print foreach(<STDIN>); # ここでもない print foreach(<STDERR>); # ここでもない print ・・・どこかに "hoge!" が入ってないでしょうか? -------- # .htaccess ErrorDocument 500 /error.cgi Apache/1.3.24 Server perl 5.005_03 built for sun4-solaris

みんなの回答

回答No.3

一度は調べましたが、Custom error response 使っても普通のエラーログに500ってのこってるわけです。 デバッグのエラーがづらりとログに並ぶのもみっともないですからね。 cgiの中でエラー処理までしてやったほうがすっきりします。 …とはいっても最近はWinでアパッチ動かしてデバッグしてるので 気にせずがんがん500出してますけど(笑)

haporun
質問者

お礼

いえ、私も公開前にエラーを調べる手段として、用意してみたかったのですよ。 terminalでやると、%ENVの中身が違ったりして、うまく動かないので。 かといって、ブラウザ上でやっても、何が怒られてるのかわからないので、困っていたところです。

回答No.2

マニュアルを見てもそれらしい記述は出ていないので Custom error response ではできないのではないでしょうか? 少なくともそういったcgiは見たことがありません。 そういうアイデアや「製作中という文字」は見たことがありますが…。 最近は下で紹介したページにのってるKCatch.pmを使うのが一般的になりつつあります。

参考URL:
http://japache.infoscience.co.jp/japanese_1_3/manual/custom-error.html
haporun
質問者

お礼

回答ありがとうございます。 そうですか~。 わかりました。 経験者ってことは、一度こういうことを試みたってことですか? やっぱり、同じようなことを考える方はいるんですね。 これからもよろしくお願いします。

回答No.1

Apacheをお使いでしたらオプションでエラーログを記録することができます。 以下のサイトの方法はどうでしょうか? http://www.cgi-club.com/im/main/club/pcweb/apache/cgiconf.shtml ここも参考になるかと思います。 http://www.harukaze.net/~mishima/perl/cgi-debug-env/deb-tech.html

haporun
質問者

お礼

回答ありがとうございます. 管理者ではないので、ログは見られないのです。 また、代用の方法がほしいわけではないのです。

関連するQ&A