多分お分かりと思いますが、マッピング等のIISの設定上の問題ですね。
このサイトを参考に。
もしくは、もう少し詳しい状況を教えてください。
エラーログなどはチェックされましたでしょうか?動かないからには何らかのエラーが出ていると思うのですがその情報を教えていただけないでしょうか?
他のCGIが動作している、という事から考えると、PerlのPATH変更はされていると思いますし・・・。あとは、UNIX固有のコマンドを内部的に使っていたりとか、Perl関数を使っている部分があるとか。コマンドプロンプトからCGIを実行した時どうなるかなどもチェックされてはいかがでしょうか?
CGI Error
The specified CGI application misbehaved by not returning a complete set of HTTP headers.
というエラーが出ているんです・・・
”bbs.cgi”を軽く見てみました。
sendmailがなくて、
# ■sendmailのパス(メール通知する場合)
#
$sendmail = ’/usr/lib/sendmail’;
がエラーになるとか…?
ブラウザで見たとき、どんなエラーが表示されるんですか??
エラーログなどはチェックされましたでしょうか?動かないからには何らかのエラーが出ていると思うのですがその情報を教えていただけないでしょうか?
他のCGIが動作している、という事から考えると、PerlのPATH変更はされていると思いますし・・・。あとは、UNIX固有のコマンドを内部的に使っていたりとか、Perl関数を使っている部分があるとか。コマンドプロンプトからCGIを実行した時どうなるかなどもチェックされてはいかがでしょうか?
#!/usr/local/bin/perl
↑の下に以下を記述して動作確認して見てください。
# IIS対策
if ($ENV{’SERVER_SOFTWARE’} =~ /IIS/i) {
local($chdir) = $0;
$chdir =~ s/[^¥¥]*$//;
chdir($chdir);
}
http://www.kawa.net/works/perl/catch/news.html
[Perl] KCatch.pm/CGI エラーメッセージをブラウザに表示
Windows2000 + Apache2.052 + ActivePerl では動いているようです。
「動きません」の意味が動作がおかしいのではなく全く動かないのなら、KCatch を導入して 2行目(Perlのパスの下)に
no strict ;
use KCatch qw( execdata );__DATA__
と入れてみると原因がつかめるかもしれません。
とりあえず、
>CGI Error
>The specified CGI application misbehaved by not returning a complete set of HTTP headers.
この続きがあるはずですが、なんと書いてありますか?
実際のエラーの原因と行番号まで出てきてるはずですが。
いえ、これしかでてないんです。で、前のお二人の構文を入れても何も変わらないんです・・・
行番号等が出てないとのことなので、ちょっと特定が難しいですが、似たような環境で参考URLのようなものがありました。
>Perl内でjcode.plや他のCGIスクリプトなどの場所を指定して読み込む場合
>は、最上位のフォルダからの絶対パスで指定して頂く必要があります。相対
>パスでの指定はできませんのでご注意下さい。
>
>(例) ルートフォルダの下に「cgi-bin」フォルダが作成されていて、
>「cgi-bin」フォルダの中にあるtest.cgiを読み込む場合
>→「’./cgi-bin/test.cgi’」と記述して下さい。
>
>※ 読み込む元のCGIがどの階層にあっても記述は変わりません。
>※ 読み込む元のCGIが「cgi-bin」フォルダにある場合でも、単に
>「’test.cgi’」と指定しただけでは読み込むことはできません。
この質問での環境はお名前ドットコムのプレミアムサーバーなんですが、Windows2003とのことです。
これで解決できるかは不明ですが、参考までに。
だめでした・・・
実は、他のCGI(例えば振り分けCGI)などは普通に動くのですが、このCGIだけ動かないのです・・・。