【超・大至急】Linuxベースではきちんと動くCGI(http://www.pris.jp/moon-web/cgiworld/designbbs/)があるのですが、Windows2003サーバ上(IIS・Perl5)では動きません。どのような原因があるのでしょうか。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:--
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答15件)

id:paxil No.1

回答回数375ベストアンサー獲得回数2

ポイント14pt

多分お分かりと思いますが、マッピング等のIISの設定上の問題ですね。

このサイトを参考に。

もしくは、もう少し詳しい状況を教えてください。

id:hiroaki0718

実は、他のCGI(例えば振り分けCGI)などは普通に動くのですが、このCGIだけ動かないのです・・・。

2004/09/30 20:42:23
id:pandanaotan No.2

回答回数71ベストアンサー獲得回数0

ポイント14pt

エラーログなどはチェックされましたでしょうか?動かないからには何らかのエラーが出ていると思うのですがその情報を教えていただけないでしょうか?

他のCGIが動作している、という事から考えると、PerlのPATH変更はされていると思いますし・・・。あとは、UNIX固有のコマンドを内部的に使っていたりとか、Perl関数を使っている部分があるとか。コマンドプロンプトからCGIを実行した時どうなるかなどもチェックされてはいかがでしょうか?

id:hiroaki0718

CGI Error

The specified CGI application misbehaved by not returning a complete set of HTTP headers.

というエラーが出ているんです・・・

2004/09/30 21:10:13
id:paxil No.3

回答回数375ベストアンサー獲得回数2

ポイント14pt

”bbs.cgi”を軽く見てみました。

sendmailがなくて、

# ■sendmailのパス(メール通知する場合)

#

$sendmail = ’/usr/lib/sendmail’;

がエラーになるとか…?

ブラウザで見たとき、どんなエラーが表示されるんですか??

id:pandanaotan No.4

回答回数71ベストアンサー獲得回数0

ポイント14pt

エラーログなどはチェックされましたでしょうか?動かないからには何らかのエラーが出ていると思うのですがその情報を教えていただけないでしょうか?

他のCGIが動作している、という事から考えると、PerlのPATH変更はされていると思いますし・・・。あとは、UNIX固有のコマンドを内部的に使っていたりとか、Perl関数を使っている部分があるとか。コマンドプロンプトからCGIを実行した時どうなるかなどもチェックされてはいかがでしょうか?

id:kaori_no18 No.5

回答回数6ベストアンサー獲得回数0

ポイント14pt

#!/usr/local/bin/perl

↑の下に以下を記述して動作確認して見てください。

# IIS対策

if ($ENV{’SERVER_SOFTWARE’} =~ /IIS/i) {

local($chdir) = $0;

$chdir =~ s/[^¥¥]*$//;

chdir($chdir);

}

id:GEN111 No.6

回答回数472ベストアンサー獲得回数58

ポイント14pt

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__

と入れてみると原因がつかめるかもしれません。

id:kitty777 No.7

回答回数30ベストアンサー獲得回数0

ポイント14pt

わたしはXPですがSP2を

インスト−ルしてえらいこちゃです。

2003も何か欠陥あるとおもいます。

id:esseesse No.8

回答回数192ベストアンサー獲得回数0

ポイント14pt

とりあえず、

>CGI Error

>The specified CGI application misbehaved by not returning a complete set of HTTP headers.

この続きがあるはずですが、なんと書いてありますか?

実際のエラーの原因と行番号まで出てきてるはずですが。

id:hiroaki0718

いえ、これしかでてないんです。で、前のお二人の構文を入れても何も変わらないんです・・・

2004/09/30 21:40:42
id:kaori_no18 No.9

回答回数6ベストアンサー獲得回数0

ポイント14pt

CGIのフォルダのアクセス権を確認してみてください。

 everyone フルコン

にすると動くかもしれません。

id:esseesse No.10

回答回数192ベストアンサー獲得回数0

ポイント14pt

行番号等が出てないとのことなので、ちょっと特定が難しいですが、似たような環境で参考URLのようなものがありました。

>Perl内でjcode.plや他のCGIスクリプトなどの場所を指定して読み込む場合

>は、最上位のフォルダからの絶対パスで指定して頂く必要があります。相対

>パスでの指定はできませんのでご注意下さい。

>

>(例) ルートフォルダの下に「cgi-bin」フォルダが作成されていて、

>「cgi-bin」フォルダの中にあるtest.cgiを読み込む場合

>→「’./cgi-bin/test.cgi’」と記述して下さい。

>

>※ 読み込む元のCGIがどの階層にあっても記述は変わりません。

>※ 読み込む元のCGIが「cgi-bin」フォルダにある場合でも、単に

>「’test.cgi’」と指定しただけでは読み込むことはできません。

この質問での環境はお名前ドットコムのプレミアムサーバーなんですが、Windows2003とのことです。

これで解決できるかは不明ですが、参考までに。

id:hiroaki0718

だめでした・・・

2004/09/30 22:04:45

質問者が未読の回答一覧

 回答者回答受取ベストアンサー回答時間
1 nekogo 113 110 2 2004-09-30 22:03:25
2 MERCY 68 61 0 2004-09-30 22:34:29
3 afternoontea 9 6 0 2004-09-30 22:31:01
4 afternoontea 9 6 0 2004-09-30 22:56:53
5 kibitaki 53 46 4 2004-10-01 11:17:00

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません