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です。
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 です。
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関係のマニュアルに書いてありませんか
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";
ですが、これが間違っているということですか?
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を書くと表示できますか
No.11556 投稿時間:2003年08月04日(Mon) 19:02 投稿者名:マルモ URL:
Alias "/~mk/cgi-bin/" "/home/mk/public_html/cgi-bin/"
をhttpd.confへ追加することで解決することができました。
APACHEさんOAKさんレスありがとうございました。
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:
もう一度実行して見ましたら、
見間違えていることがわかりました。
引用を間違えて行っていました。
紛らわしい引用文を書いてしまって
すいませんでした。今度から気をつけます。