(perl)telnetで動くのにブラウザで動かない?

[上に] [前に] [次に]
茶しぶ男 2000/03/01(水) 18:35:03
perl内でhtmlを出力するスクリプト「hoge.cgi」があるのですが、
telnet上で
hoge.cgiと入力すると、ちゃんとhtmlソースを出力するのに
ブラウザでURLを入力して実行するとサーバーエラーになってしまいます。
telnet上での
perl -c hoge.cgi
も、
hoge.cgi syntax OK
と出て、問題ないようにみえます。
いったいどのような原因が考えられるでしょうか?

わけあってスクリプトのソースを公開できなくてスミマセン。

SABA 2000/03/01(水) 18:44:04
Content-type を出してない
STDOUT にprintしてない
とか…

ラウォッチ 2000/03/01(水) 19:19:56
オラクル系だと親プロセスに環境変数がセットされていないとNGのケースがあります。
(昨日それで、半日つぶした...。)

seltza 2000/03/01(水) 20:54:10
私もヒントを。

コマンドラインから実行するとき、

#> perl hoge.cgi
とせずに、
#> ./hoge.cgi

として動作するかどうかを確認すると、
・実行権が(とりあえず自分に)ついているか
・perlのパスがあっているか
を確かめられます。

上記でもokならば、
SABAさんがおっしゃるように、

print "Content-type: text/html\n\n";

となっていないか、

あと今の場合は関係ないと思いますけど、
STDOUTなどをファイル等に対して開こうとするとCGIとしては動作しなかったような記憶があります。(apache)
#→ selectを使用しないといけない。

ご参考まで〜。

茶しぶ男 2000/03/02(木) 09:10:11
[[解決]]
print "Content-type: …

を忘れていたのが原因でした…。
でも、会社のサーバー(CERN)で実験した時には、それでもHTML出力されていた…、なんでだろ?

なにはともあれ、ありがとうございました!

[上に] [前に] [次に]