電子書籍の厳選無料作品が豊富!

ホームページにCGIを設定したら下記エラーが発生したのですが、どこの行がエラーになったかが表示されません…
もしわかりましたら教えて下さい。

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

A 回答 (6件)

■結論


今回のサーバー(お名前.com の プレミアサーバー)では設置できません。
サーバーソフトは Microsoft-IIS/6.0


と、同じ様な内容の質問を見つけました。
参考になればいいのですが。。

参考URL:http://www1.anx.co.jp/~kuwahara/cgi-bin/cgi/supp …
    • good
    • 0
この回答へのお礼

ありがとうございます。
まさしく同じ状況に陥っている状態です…私もWindows ServerではなくUnix ServerでのレンタルServerを借ります。

お礼日時:2004/06/22 04:49

えーっと、スクリプトの配布先というのはたとえば


大きいところで言えばKENTWEBさんとかそういうところで、
どこから借りられていますか?ということなんですが。

色々考えたのですがそちらのプレミアムサーバのHPのヘルプでCGIの設定をもう一度見られてはいかがでしょうか?

そちらでは、相対パスがつかえず絶対パスしか使えないためにエラーが起こっているような気もします。

・1行目のPerlのパスはあっていますか?
・設定ファイルの全てのパスはあっていますか?(jcode.plや./lib/pc.plなど)
一度ご確認くださいね。

この回答への補足

度々のご連絡ありがとうございます
HELPを確認したところ下記記述が存在しておりました。

*行数一行目の#!/usr/bin/perlに関してはWindows2003の為、必要なし
その為、#!/usr/bin/perlの削除を行いました。

*次に相対パスがつかえず絶対パスしか指定が出来ないためrequire 'config.pl';の部分をrequire './XXXX/XXXXX/config.pl';に変更を行いましたが現象はかわらない状態となっております…

補足日時:2004/06/22 04:04
    • good
    • 0
この回答へのお礼

丁寧な対応誠にありがとうございます。
原因が判明致しました。私のレンタルServerの知識不足による設定不可能なServerに登録した事が判明しました…本当にお手数をおかけいたしました。

お礼日時:2004/06/22 04:50

再び登場です。


お名前COMのプレミアムサーバーとはどんなものか存じ上げないのですが
そちらにCGIの設定についてかかれていないでしょうか?

プロバイダーによってパーミッションの変更をしなくては成りません。

ちなみにスクリプト配布先はどこなのでしょうか?
スクリプトによっても変わってきますが・・・。

この回答への補足

お名前COMのプレミアムサーバーに関してなんですが、ベースがWindows Serverとなっております。
その為、パーミッションの設定に関しては不要のはずなんですが…ちなみにスクリプトの配布先なんですがcgi-binの中に設定してあります。

補足日時:2004/06/22 03:15
    • good
    • 0

どこかのCGIを借りてきてされていますか?


NIFTYとか特殊なプロバイダーの場合は変えないといけないところもありますし
ソースがないとどこが間違っているかわからないです^^;

この回答への補足

ご連絡ありがとうございます。
使用しているのはレンタルサーバーでお名前COMのプレミアムサーバーを使用しています。

補足日時:2004/06/22 02:42
    • good
    • 0

CGIの文法やパーミッションの設定をチェックしてくれるCGIを使ってみたらどうですか?



参考URL:http://www.kent-web.com/utility/index.html

この回答への補足

ご連絡ありがとうございます
インストールして使用してみましたところ下記エラーが発生しました。

改行形式 LF (UNIX形式)
Perlのパス #!/usr/bin/perl
サーバのPerl
とのチェック パスが不正のようです
/usr/bin/perl
パーミッション 実行権がありません
文法チェック

これはどういう事なのかが上手く理解していないのですが…よかったら教えていただけないでしょうか?

補足日時:2004/06/22 02:43
    • good
    • 0

ソースがあったほうが回答し易いかも知れませんね。

この回答への補足

#!/usr/bin/perl

require 'config.pl';

#■HTMLのタグ(<html>~</html>まで)
$HTML_TAG = "
<html><head><title>$TITLE</title></head>
<body>
<form method=post action=$TM_CGI>
<input type=hidden name=M value=S>
<input type=hidden name=U value=N>
□掲示板<HR>
□登録ユーザー<BR>
□ユーザー名<BR>
<input name=NAME size=8><BR>
□パスワード<BR>
<input name=PASS size=8 istyle=4><BR>
<input type=submit value=入室>
</form><HR>

□<a href=$IMG_CGI>画像設定</a><BR>
□<a href=$R_CGI?M=PC1>パスワード確認</a><BR>
□<a href=$R_CGI?M=SD1>仮登録キャンセル</a><BR>
□<a href=$R_CGI?M=PT1>ポイント追加申\請</a><BR>
□<a href=http://www.hotspeed.jp>ホームへ</a><BR>
</body>
</html>
\n";

###############################
#ここから下は変更しないでください
###############################

#▼時刻取得(時間毎でユニークなID作成)
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
$wday = ('日','月','火','水','木','金','土')[$wday];
$DATE1 = sprintf("%02d/%02d(%s)%02d:%02d",$mon +1,$mday,$wday,$hour,$min);
$DATE2 = sprintf("%02d%02d%02d%02d%02d%02d",$year-100,$mon+1,$mday,$hour,$min,$sec);
$DATE3 = sprintf("%02d%02d%02d",$year-100,$mon+1,$mday);

$LOGFILE="$LOG$DATE3.txt";

$HOST = $ENV{'REMOTE_HOST'};
$ADDR = $ENV{'REMOTE_ADDR'};
$UA = $ENV{'HTTP_USER_AGENT'};
if ($HOST eq '') { $HOST = $ADDR; }
if ($HOST eq $ADDR) { $HOST =
gethostbyaddr(pack('C4',split(/\./,$HOST)),2) || $ADDR; }
($d,$d,$AGEN,$d) = split(/\//,$UA);
if ($AGEN eq "") { $AGEN="Other";}

&lock;
if (!open(OUT,">>$LOGFILE")) { &error('error'); }
print OUT "$DATE1,$HOST,$ADDR,$UA,$AGEN\n";
close(OUT);
if (!open(IN,"$CNT")) { &error('error'); }
$CT = <IN>;
close(IN);
$CT++;
if (!open(OUT,">$CNT")) { &error('error'); }
print OUT $CT;
close(OUT);
unlink($LOC);

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

#▼ロックファイル
sub lock {
$symlink_check = (eval { symlink("",""); }, $@ eq "");
if (!$symlink_check) {
$c = 0;
while(-f "$LOC") {
$c++;
if ($c >= 3) { &error("error"); }
sleep(2);
}
open(LOCK,">$LOC");
close(LOCK);
}
else {
local($retry) = 3;
while (!symlink(".", $LOC)) {
if (--$retry <= 0) { &error("error"); }
sleep(2);
}
}
}

sub error {
if (-e "$LOC") { unlink($LOC); }
print "Content-type: text/html\n\n";
print "<html><head><title>$TITLE</title></head>\n";
print "<body>\n";
print "■エラー<hr>\n";
print "$_[0]\n";
print "</body></html>\n";
exit;
}

補足日時:2004/06/22 02:46
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!