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になります。
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入れてないのでわかりません。