記事No | : 8654 |
投稿日 | : 2011/06/28(Tue) 08:33:46 |
タイトル | : CGI エラー |
ID情報 | : uyoyo |
投稿者 | : uyoyo |
URL | : http://○○(コンピューター名)\cgi-bin\combbs.cgi |
イントラネット内のWEBサーバーでこちらのcombbs.cgiを動作させたいと考えています。
ネット等を参照しながら、windows2003サーバにIISをインストール後、ActivePerlをインストールしました。
*その際、plファイルのマッピングができていなかったので、手動でしました。またIISの拡張機能にもperl関係の項目がなかったので手動で設定しています。
combbsをダウンロードし、C:\Inetpub\cgi-bin(cgi-binは仮想ディレクトリにしています)にそのまま展開し、IEからhttp://○○(コンピューター名)/cgi-bin/combbs.cgiと指定して実行してみました。
すると次のようなエラーメッセージが出てきます
CGI Error
The specified CGI application misbehaved by not returning a complete set of HTTP headers
こちらのcgi自体はいじっていません。
cgi-binのセキュリティは、
everyoneフルアクセスにしてあります。
同じフォルダに置いてあるテキストを表示させる簡単なcgi
# hello.cgi
print "Content-type: text/html\n\n";
print '<HTML><HEAD><TITLE>Hello World</TITLE></HEAD>';
print '<BODY>';
print '<H1>Hello World</H1>';
print '</BODY></HTML>';
exit;
は動いていますし、同様にindex.htmlファイルも表示されます。
エラーを解消するには、どのような方法が考えられるでしょうか?
よろしくお願いします。
記事No | : 8663 |
投稿日 | : 2011/06/28(Tue) 20:32:24 |
タイトル | : Re: CGI エラー |
ID情報 | : kent |
投稿者 | : KENT |
> イントラネット内のWEBサーバーでこちらのcombbs.cgiを動作させたいと考えています。
>
> ネット等を参照しながら、windows2003サーバにIISをインストール後、ActivePerlをインストールしました。
>
> *その際、plファイルのマッピングができていなかったので、手動でしました。またIISの拡張機能にもperl関係の項目がなかったので手動で設定しています。
>
> combbsをダウンロードし、C:\Inetpub\cgi-bin(cgi-binは仮想ディレクトリにしています)にそのまま展開し、IEからhttp://○○(コンピューター名)/cgi-bin/combbs.cgiと指定して実行してみました。
>
> すると次のようなエラーメッセージが出てきます
>
> CGI Error
> The specified CGI application misbehaved by not returning a complete set of HTTP headers
この辺が参考になりませんか?
http://www.google.com/search?hl=ja&q=The+specified+CGI+application+misbehaved+by+not+returning+a+complete+set+of+HTTP+headers&btng=google
記事No | : 8666 |
投稿日 | : 2011/06/29(Wed) 08:28:55 |
タイトル | : Re^2: CGI エラー |
ID情報 | : uyoyo |
投稿者 | : uyoyo |
URL | : http://○○(コンピューター名)\cgi-bin\combbs.cgi |
お示しいただいたリンクを元に、
require 'C:\Inetpub\cgi-bin\jcode.pl';
のように絶対パスにしてみましたが、相変わらず、エラーが出ています。
*cgi-binの中にcombss関連のファイルを展開しています。
このことでかれこれ1ヶ月近く悩んでおり袋小路に入っています。ほかの掲示板でも尋ねてみましたが、解決できませんでした。
何卒、よろしくお願いします。
記事No | : 8670 |
投稿日 | : 2011/06/29(Wed) 17:43:36 |
タイトル | : Re^3: CGI エラー |
ID情報 | : kent |
投稿者 | : KENT |
> お示しいただいたリンクを元に、
>
> require 'C:\Inetpub\cgi-bin\jcode.pl';
>
> のように絶対パスにしてみましたが、相変わらず、エラーが出ています。
>
> *cgi-binの中にcombss関連のファイルを展開しています。
>
> このことでかれこれ1ヶ月近く悩んでおり袋小路に入っています。ほかの掲示板でも尋ねてみましたが、解決できませんでした。
これはIISの設定上の問題ではないのでしょうか?
IIS特有の問題であれば、それをアプリケーション側に求められても、難しいところがありますね。
ちなみに、以下のQAもだめですか?
http://support.microsoft.com/kb/145661/ja
また、Perl Checkerを試すとどうなりますか?
http://www.kent-web.com/utility/index.html
記事No | : 8676 |
投稿日 | : 2011/06/29(Wed) 19:36:15 |
タイトル | : Re^4: CGI エラー |
ID情報 | : uyoyo |
投稿者 | : uyoyo |
URL | : http://○○(コンピューター名)\cgi-bin\combbs.cgi |
> > お示しいただいたリンクを元に、
> >
> > require 'C:\Inetpub\cgi-bin\jcode.pl';
> >
> > のように絶対パスにしてみましたが、相変わらず、エラーが出ています。
> >
> > *cgi-binの中にcombss関連のファイルを展開しています。
> >
> > このことでかれこれ1ヶ月近く悩んでおり袋小路に入っています。ほかの掲示板でも尋ねてみましたが、解決できませんでした。
>
> これはIISの設定上の問題ではないのでしょうか?
> IIS特有の問題であれば、それをアプリケーション側に求められても、難しいところがありますね。
>
> ちなみに、以下のQAもだめですか?
>
> http://support.microsoft.com/kb/145661/ja
>
> また、Perl Checkerを試すとどうなりますか?
>
> http://www.kent-web.com/utility/index.html
>
>
KENT 様
ご回答ありがとうございます。
お示しいただいたリンクを元に
print "HTTP/1.0 200 OK\n";
print "Content-Type: text/html\n\n\n";
を
#-------------------------------------------------
# HTMLのヘッダー
#-------------------------------------------------
sub header {
if ($headflag) { return; }
print "Content-type: text/html\n\n";
print <<EOM;
の部分に置き換えてみましたが、解決しませんでした。
PERLチェッカーの内容は、
改行形式 LF (UNIX形式)
Perlのパス #!/usr/local/bin/perl
サーバのPerl
とのチェック パスが不正のようです。
/usr/local/bin/perl
パーミッション 実行権がありません。
文法チェック combbs.cgi syntax OK
でした。
これを見ると、PERLの実行ファイルの指定がおかしいようです。
解決策がありましたら、ご教授ください。
よろしくお願いします。
記事No | : 8683 |
投稿日 | : 2011/06/30(Thu) 20:35:45 |
タイトル | : Re^5: CGI エラー |
ID情報 | : kent |
投稿者 | : KENT |
> これを見ると、PERLの実行ファイルの指定がおかしいようです。
ここでいうパーミッションは、UNIX系のパーミッションですので、IISだと無視していいと思います。
実物も見れない状況ですし、これは分からないですね。
試しに、Perlパスの直下に以下の文字列を入れてみると、もう少し具体的なエラーメッセージが出るかもしれません。
BEGIN {
use CGI::Carp qw(carpout fatalsToBrowser);
carpout(STDOUT);
}
記事No | : 8693 |
投稿日 | : 2011/07/01(Fri) 17:11:29 |
タイトル | : Re^6: CGI エラー |
ID情報 | : uyoyo |
投稿者 | : uyoyo |
> > これを見ると、PERLの実行ファイルの指定がおかしいようです。
>
> ここでいうパーミッションは、UNIX系のパーミッションですので、IISだと無視していいと思います。
> 実物も見れない状況ですし、これは分からないですね。
> 試しに、Perlパスの直下に以下の文字列を入れてみると、もう少し具体的なエラーメッセージが出るかもしれません。
>
> BEGIN {
> use CGI::Carp qw(carpout fatalsToBrowser);
> carpout(STDOUT);
> }
KENT 様
教えていただいたテキストを入力しましたが、改善されませんでした。
発想を転換し、IISを諦め、以前使ったことのある
Black Jumbo Dog
というソフトで試してみました。
このソフトでWebサーバーを立ち上げ、cgiを動かしたところ、
簡単に動作してくれました。
学校内での、イントラネット内で使用するだけの掲示板ですので、これで十二分に利用できます。
セキュリティが少し不安ですが、これからドキュメント等を見て研究したいと思います。
お忙しいところ、いろいろご教授いただきありがとうございました。