- 締切済み
エラー表示
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
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- trumphouse
- ベストアンサー率53% (66/124)
一度は調べましたが、Custom error response 使っても普通のエラーログに500ってのこってるわけです。 デバッグのエラーがづらりとログに並ぶのもみっともないですからね。 cgiの中でエラー処理までしてやったほうがすっきりします。 …とはいっても最近はWinでアパッチ動かしてデバッグしてるので 気にせずがんがん500出してますけど(笑)
- trumphouse
- ベストアンサー率53% (66/124)
マニュアルを見てもそれらしい記述は出ていないので Custom error response ではできないのではないでしょうか? 少なくともそういったcgiは見たことがありません。 そういうアイデアや「製作中という文字」は見たことがありますが…。 最近は下で紹介したページにのってるKCatch.pmを使うのが一般的になりつつあります。
お礼
回答ありがとうございます。 そうですか~。 わかりました。 経験者ってことは、一度こういうことを試みたってことですか? やっぱり、同じようなことを考える方はいるんですね。 これからもよろしくお願いします。
- trumphouse
- ベストアンサー率53% (66/124)
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
お礼
回答ありがとうございます. 管理者ではないので、ログは見られないのです。 また、代用の方法がほしいわけではないのです。
お礼
いえ、私も公開前にエラーを調べる手段として、用意してみたかったのですよ。 terminalでやると、%ENVの中身が違ったりして、うまく動かないので。 かといって、ブラウザ上でやっても、何が怒られてるのかわからないので、困っていたところです。