• 締切済み

perl構文チェックOKなのにCGIが作動しない

自分のパソコンでサーバーを(apache)を置いて、perlでCGIの勉強を始めたのですか、perlは -cw でOKが出ても、CGIを動かすと、サーバーエラーが出ます。どういった原因が考えられ、どう対処すればいいのか教えてください。htmlへのprint関数は表示されるのですが、time が出来ません。カウンターや掲示板も試すのですが、すべてエラーが出ます。また、一度出来た、入力文章を受けとるCGIもエラーがでます。perl初心者なのでいろいろ教えてくださるとうれしいです。

みんなの回答

  • dany
  • ベストアンサー率35% (27/77)
回答No.3

>kcatchについてもう少し詳しく教えてもらえませんか? 前に書いたやつをまず実際にやってみて、 それでもわからなかった質問してください。 エラーが出ればわかりますから。

  • dany
  • ベストアンサー率35% (27/77)
回答No.2

CGIのエラーを見るなら「KCatch」というモジュールがオススメです。 どの行でエラーになっているかなどをブラウザで確認できます。 CGIファイルと同じディレクトリにKCatch.pmを置いて、CGIの最初に #!/usr/local/bin/perl   ←環境によって違います BEGIN { use KCatch qw(source); } と記述するだけです。UNIX系OSの場合はファイルの大文字小文字を 判別するので必ず「KCatch.pm」にしてください。「kcatch.pm」 とかだとダメです。

参考URL:
http://www.kawa.net/works/perl/catch/KCatch-j.html
koujin
質問者

補足

返事が大変遅くなり申し訳ございませんでした。 アドバイスありがとうございました。 以前質問した内容はわかったのですが、kcatchについてもう少し詳しく教えてもらえませんか?参考URLだとそれが何物かわからなかったので。すみません。

  • cocky
  • ベストアンサー率57% (232/402)
回答No.1

文法的に問題がないのにエラーが出るということは、ファイルのopen/closeに失敗している可能性が一番高いですね。 プログラム中でファイルを操作する部分のディレクトリ指定が正しいかどうか確認してみるといいんじゃないでしょうか。 あとApache付属のサンプルCGIはちゃんと動いていますか? それが動いていないようであれば、Apacheのhttpd.confの設定が間違っているか、もしくはperlのパス指定が間違っている可能性を考えた方がいいですね。 最近のLinuxやFreeBSDだと、perlのデフォルトの場所が「/usr/local/bin/perl」ではなく「/usr/bin/perl」だったりして、「/usr/local/bin/perl」には全くファイルがなかったりすることもありますし。

koujin
質問者

お礼

大変お礼が遅くなりました。やっぱり分からなくて、ずっと考えていたのですが、やっとわかりました。ありがとうございました。

関連するQ&A