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

No.9531 redhat8+Apache2.0でCGIが動かない。



redhat8+Apache2.0でCGIが動かない。

No.9531 投稿時間:2003年04月10日(Thu) 23:36 投稿者名:taka URL:http://web-labo.ddo.jp/

いつもお世話になります。
上記環境で家サバ構築中です。
この環境でCGIが正確に動作しません。
まず、DocumentRootの、/var/www/html/に簡単なCGI
----------------
#!/usr/bin/perl
print "content-type: text/html\n\n";
print "hello";
---------------
を置きます。
そうすると、ちゃんと、「hello」と表示します。
それをそのままコピーして、home/username/public_html/に置きます。
それを表示させると500エラーが出ます。
Error message: Premature end of script headers: test.cgi と表示されます。
方々で聞いてみたのですが、500エラーはCGIに問題があるとの事(改行コードが違うとか…)。
しかし、、/var/www/htmlではちゃんと表示するので、CGIの方に問題は無い様に思えるのですが…
アクセス権はhomeよりすべて777に設定してあります。
<Directory /home/*/public_html>の項目には、
「Options MultiViews SymLinksIfOwnerMatch ExecCGI IncludesNoExec」の書き込みをしています。
ほかに何か必要な情報があれば書き込みします。

どこが間違っているのでしょうか…
よろしくお願いします。


設定を拾ってみました。

No.9541 投稿時間:2003年04月11日(Fri) 10:14 投稿者名:wallabyss URL:http://www.kolinahr.net/

はじめまして
public_htmlの設定を拾ってみました。既に確認していると思いますが。がんばってください。

500 Internal Server Error サーバは、リクエストの実行を妨げる予測しない状態に遭遇した。

# UserDir: The name of the directory which is appended onto a user's home
# directory if a ~user request is received.
#
<IfModule mod_userdir.c>
UserDir public_html
</IfModule>

<Directory /home/*/public_html>
Options ExecCGI
#...
</Directory>


確認してみましたが、やっぱり動かないです。

No.9577 投稿時間:2003年04月13日(Sun) 01:13 投稿者名:taka URL:http://web-labo.ddo.jp/

返信ありがとうございます。
確認してみましたが、やっぱり動かないです。
私の環境では以下のようになっています。
<IfModule mod_userdir.c>
UserDir public_html
</IfModule>

<Directory /home/*/public_html>
AllowOverride FileInfo AuthConfig Limit
Options MultiViews SymLinksIfOwnerMatch ExecCGI IncludesNoExec
<Limit GET POST OPTIONS>
Order allow,deny
Allow from all
</Limit>
<LimitExcept GET POST OPTIONS>
Order deny,allow
Deny from all
</LimitExcept>
</Directory>

ほかに何か確認すべきところはありますか?


このあたりはどうでしょう?

No.9578 投稿時間:2003年04月13日(Sun) 01:54 投稿者名:さすらいのGさん URL:

8.0で試したことはないですが、7.2の時はデフォルトで、以下の部分がコメントアウトされていました。
もし、#がついているようでしたら外してみてください。

AddHandler cgi-script .cgi


ユーザー違い

No.9617 投稿時間:2003年04月14日(Mon) 10:06 投稿者名:wallabyss URL:http://www.kolinahr.net/

>AddHandler cgi-script .cgi
DocumentRootで動いているので、ユーザーとの違いの部分かと思われますよね。

>ほかに何か確認すべきところはありますか?

ふと、疑問に思ったのですが、

>そうすると、ちゃんと、「hello」と表示します。
>それをそのままコピーして、home/username/public_html/に置きます。
>それを表示させると500エラーが出ます。

この「そのままコピーして」というのを文字通りに受け止めると、/var/www/htmlでの作業をrootでやって、オーナーがrootになっていませんか?
オーナーがrootのままだとCGIが動きません(Secureのためみたいです)。試してみました500 Errorになります。


これは、2.0以降からこのような仕様になったんですかね?

No.9618 投稿時間:2003年04月14日(Mon) 10:45 投稿者名:さすらいのGさん URL:

> DocumentRootで動いているので、ユーザーとの違いの部分かと思われますよね。

これ自分の勘違いでした^^;てっきり、shellで実行して動いたのかと思ってました。
DocRootではちゃんと表示されてるんですね^^;

> この「そのままコピーして」というのを文字通りに受け止めると、
> /var/www/htmlでの作業をrootでやって、オーナーがrootになっていませんか?
> オーナーがrootのままだとCGIが動きません(Secureのためみたいです)。試してみました500 Errorになります。

これは、2.0以降からこのような仕様になったんですかね?RH7.2あたりのときは、とくに問題なかったように
思いましたが…


ちと調べてみましたが、

No.9619 投稿時間:2003年04月14日(Mon) 13:16 投稿者名:さすらいのGさん URL:

CGIのオーナとグループが関係しているのは間違いなさそうですね。

どうやら、apcheのsuexecあたりの設定みたいなのですが、デフォルトでoffに
なったのでしょうかね?

http://mm.apache.or.jp/pipermail/apache-users/2002-November/002125.html

このあたりから解決方法が見つかりそうなんですが、apache2.0入れてないのでわかりません。


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