投稿日:2003年08月04日 作成鷹の巣

No.11542 Apache2.0.40で、CGI実行時にError 500が出る。



Apache2.0.40で、CGI実行時にError 500が出る。

No.11542 投稿時間:2003年08月04日(Mon) 14:10 投稿者名:マルモ URL:

apacheでwebサーバを公開しようとしています。
複数ユーザでweb公開ができるような仕様にしました。
通常のwebページは表示できるようになったのですが、
CGIが表示できません。以下に試したことを書きました。
私なりには最後のhttpd.confの設定があまり自信がないのですが、
抜けているところ等がありましたら教えてください。


エラーメッセージ
Server error!
The server encountered an internal error and was unable to complete your request.
Error 500

エラーログは、
Premature end of script headers: test.cgi

head ./index.cgi | cat -v
でチェック
各行の最後に“^M"はないので改行コードの問題はなし。

perlディレクトリパスも確認する。
#!/usr/bin/perl

パーミッション設定はわからなかったので
/home/user/public_html/cgi-bin/の
/user以下すべて777に設定。

perl -c test.cgi
実行結果
test.cgi syntax OK

perl test.cgi
実行結果
<HTML>
<HEAD>
<TITLE>Test CGI</TITLE>
</HEAD>
<BODY>
<p>This is test for CGI</p>
<p>この文章を見ることが出来ればCGIは動いています</p>
<br>
</BODY>
</HTML>

httpd.conf内容。フォルダ内容のみ抜粋。

<Directory "/home/mk/public_html/cgi-bin/">
Options Indexes MultiViews ExecCGI FollowSymLinks Includes
AllowOverride None
Order allow,deny
Allow from all
</Directory>
AddHandler cgi-script .cgi .pl

RedHad9使用。apacheバーョン2.0.40です。


まずApacheのバージョンアップを

No.11543 投稿時間:2003年08月04日(Mon) 14:32 投稿者名:APACHE URL:http://kemuri-net.dip.jp/~server/

> RedHad9使用。apacheバーョン2.0.40です。
設定云々の前にまずバージョンを上げてやってください。

投稿日時現在の2.0系最新バージョンは2.0.47 です。


Content-type: text/html

No.11546 投稿時間:2003年08月04日(Mon) 15:22 投稿者名:OAK URL:

> perl test.cgi

プログラム実行はUNIX系の場合
./test.cgi
で実行するように。

> 実行結果
> <HTML>
> <HEAD>

ここでの正解は
Content-type: text/html

<HTML>
(以下省略)

先頭2行はこれをだす。(2行目は空白)
とCGI関係のマニュアルに書いてありませんか


htmlソースが間違っているということですか?

No.11549 投稿時間:2003年08月04日(Mon) 15:59 投稿者名:マルモ URL:

ソースは、
#!/usr/bin/perl
print "Content-type: text/html\n\n";
print "<HTML>\n";
print "<HEAD>\n";
print "<TITLE>Test CGI</TITLE>\n";
print "</HEAD>\n";
print "<BODY>\n";
print "<p>This is test for CGI</p>\n";
print "<p>この文章を見ることが出来ればCGIは動いています</p>\n";
print "<br>\n";
print "</BODY>\n";
print "</HTML>\n";

ですが、これが間違っているということですか?


cgiと同じディレクトリーにindex.htmlを書くと表示できますか。

No.11550 投稿時間:2003年08月04日(Mon) 16:26 投稿者名:OAK URL:

> ソースは、
> #!/usr/bin/perl
> print "Content-type: text/html\n\n";
> print "<HTML>\n";
> print "<HEAD>\n";
> print "<TITLE>Test CGI</TITLE>\n";
> print "</HEAD>\n";
> print "<BODY>\n";
> print "<p>This is test for CGI</p>\n";
> print "<p>この文章を見ることが出来ればCGIは動いています</p>\n";
> print "<br>\n";
> print "</BODY>\n";
> print "</HTML>\n";
>
> ですが、これが間違っているということですか?

(1)そうであるなら実行結果の先頭に
Content-type: text/html

が出るはずです。はじめの文章にはないです。


(2)ScriptAlias /cgi-bin/
と言うのがデフォルトで入っていると思いますがこれは今は?

(3)<Directory "/home/mk/public_html/cgi-bin/">
の mk ユーザーでテストしてますね

(4)cgiと同じディレクトリーにindex.htmlを書くと表示できますか


Aliasをhttpd.confへ追加することで解決することができました。

No.11556 投稿時間:2003年08月04日(Mon) 19:02 投稿者名:マルモ URL:

Alias "/~mk/cgi-bin/" "/home/mk/public_html/cgi-bin/"
をhttpd.confへ追加することで解決することができました。
APACHEさんOAKさんレスありがとうございました。


こんな感じならば、OKということですね。

No.11551 投稿時間:2003年08月04日(Mon) 16:26 投稿者名:APACHE URL:http://kemuri-net.dip.jp/~server/

Z:\>Perl pw.cgi
Content-type: text/html

<HTML>
<HEAD>
<TITLE>Test CGI</TITLE>
</HEAD>
<BODY>
<p>This is test for CGI</p>
<p>この文章を見ることが出来ればCGIは動いています</p>
<br>
</BODY>
</HTML>

Z:\>
という感じにならばOKということですね。


引用を間違えて行っていました。

No.11555 投稿時間:2003年08月04日(Mon) 18:58 投稿者名:マルモ URL:

もう一度実行して見ましたら、
見間違えていることがわかりました。
引用を間違えて行っていました。
紛らわしい引用文を書いてしまって
すいませんでした。今度から気をつけます。


|目次|掲示板|過去ログ目次|▲頁先頭|