Top過去ログ目次掲示板

作成日:2003年12月28日 作成:おやじ
掲示板で過去に質問された内容です。

No.2287 cgiとmodperl


No.2287 投稿時間:2003年12月28日(Sun) 05:07 投稿者名:hiro URL:
タイトル:cgiとmodperl

現在レッドハット9Apache2とperl5を利用しています。
なんといっていいのか説明しづらいのですが、うまくcgi動かないのです。
他のサーバーで動くものが上記の自サーバーでcgiスクリプトを動かそうとするとロックエラーがでたりして動きません。
私が思うにmod-perlが使用されているから上手く動かないのではと思っていますが。mod-perlを使用しない方法がわかりません。以下に現在の設定内容を張り付けます。
まず、perl.conf
LoadModule perl_module modules/mod_perl.so
Alias /cgi-bin /var/www/cgi-bin
<Directory /var/www/cgi-bin>
SetHandler perl-script
PerlHandler ModPerl::PerlRun::handler
PerlOptions +ParseHeaders
Options +ExecCGI
</Directory>

次にhttpd.confです。検索でcgiと出るものを張り付けます。

LoadModule cgi_module modules/mod_cgi.so
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
<IfModule mod_cgid.c>

</IfModule>
AddHandler cgi-script .cgi

<Directory "/var/www/cgi-bin">
Options ExecCGI
AllowOverride None
Allow from from all
Order allow,deny
</Directory>

ここで不思議に思うのが、AddHandler cgi-script .cgiの場所でこの設定でもtest.plを読むことです。

私のこのサーバーでは配布されているどのcgiでもうまく動きません。
一般的な設定にするにはどうすればいいのでしょうか。
レンタルされているサーバーにはちょっと修正するだけで動くのに。。。
セキュリティのことを意識しているのだと思いますが。mod-perlを使用せずに普通に動くならそうしたいと思います。皆さんはどうやって設定しているのでしょうか。
お助け下さい。よろしくお願い致します。


No.2289 投稿時間:2003年12月28日(Sun) 05:27 投稿者名:hiro URL:
タイトル:つけたし

httpd.conf設定のつけたしです。


<Directory />
Options FollowSymLinks ExecCGI
AllowOverride None
</Directory>


No.2290 投稿時間:2003年12月28日(Sun) 10:06 投稿者名:hiro URL:
タイトル:つけたし2

mod_perlをアンインストールしたらCGIが動かなくなってしまいました…(+_+)


No.2291 投稿時間:2003年12月28日(Sun) 10:44 投稿者名:おやじ URL:http://acorn.zive.net/
タイトル:LoadModuleとは何をするものでしょうか?

> 現在レッドハット9Apache2とperl5を利用しています。
> なんといっていいのか説明しづらいのですが、うまくcgi動かないのです。
> 他のサーバーで動くものが上記の自サーバーでcgiスクリプトを動かそうとするとロックエラーがでたりして動きません。
> 私が思うにmod-perlが使用されているから上手く動かないのではと思っていますが。mod-perlを使用しない方法がわかりません。以下に現在の設定内容を張り付けます。
> まず、perl.conf
> LoadModule perl_module modules/mod_perl.so

 LoadModuleとは何をするものでしょうか?
そう考えれば、アンインストールではなく、これをコメントアウトすればOKかな?
と気がつくはずです。マニュアルをよく見ましょう。
 後は、トップページからFAQを参考にしてください。


No.2292 投稿時間:2003年12月28日(Sun) 11:11 投稿者名:hiro URL:
タイトル:やってみました。

以下の設定をしたらCGIがそのまま表示される症状。つまり動かないです。
まずperl.conf
#LoadModule perl_module modules/mod_perl.so

Alias /cgi-bin /var/www/cgi-bin
<Directory /var/www/cgi-bin>
SetHandler perl-script
# PerlHandler ModPerl::PerlRun::handler
# PerlOptions +ParseHeaders
Options +ExecCGI
</Directory>
#LoadModule perl_module modules/mod_perl.so
だけだとエラーで再起動がでますので。Directoryの部分2行コメントします。

httpd.confはFAQにあったとおりにしました。
AddHandler cgi-script .cgi
AddHandler cgi-script .pl

>LoadModuleとは何をするものでしょうか?
は私もわかりません。

httpd.confでの設定でcgiを動かすのも調べてみたのですが、前に書いた設定で動かないようです。
何かお気づきの点はありますでしょうか。。


No.2296 投稿時間:2003年12月28日(Sun) 23:45 投稿者名:おやじ URL:http://www.aconus.com/~oyaji/
タイトル:perl.conf内を全てコメントアウトしてください。

> 以下の設定をしたらCGIがそのまま表示される症状。つまり動かないです。
> まずperl.conf
> #LoadModule perl_module modules/mod_perl.so
>
> Alias /cgi-bin /var/www/cgi-bin
> <Directory /var/www/cgi-bin>
> SetHandler perl-script
> # PerlHandler ModPerl::PerlRun::handler
> # PerlOptions +ParseHeaders
> Options +ExecCGI
> </Directory>
> #LoadModule perl_module modules/mod_perl.so
> だけだとエラーで再起動がでますので。Directoryの部分2行コメントします。
>
> httpd.confはFAQにあったとおりにしました。
> AddHandler cgi-script .cgi
> AddHandler cgi-script .pl
>
> >LoadModuleとは何をするものでしょうか?
> は私もわかりません。

 理解してくださいという意味で書いたのですが・・・。

> httpd.confでの設定でcgiを動かすのも調べてみたのですが、前に書いた設定で動かないようです。

 perl.conf内を全てコメントアウトしてください。これで、perlで動作するはずです。


No.2297 投稿時間:2003年12月29日(Mon) 00:23 投稿者名:hiro URL:
タイトル:たびたびありがとうございます。

>  perl.conf内を全てコメントアウトしてください。これで、perlで動作するはずです。
全てコメントアウトしてみたところ。次のエラーが出ました。
Premature end of script headers

ブラウザからみるとInternal Server Error500になりました。

回避する方法でCGIスクリプトに
#!/usr/local/bin/cgi
の後に 「--」を追加する方法があってこれをやってみても結果は同じでした。
httpd.confの設定が原因でしょうか?
スクリプトが悪いのでしょうか。
一応以下で実験しているのですが。perl.confをコメントアウトしていない状態では動作していました。
#!usr/bin/perl

print "content-type: text/html\r\n\r\n";

print "hellow,world.";

httpd.confの設定は書籍やHPを参考にしているのですが。
すいませんがまたお気づきの点がありましたらよろしくお願い致します。


No.2298 投稿時間:2003年12月29日(Mon) 01:17 投稿者名:hiro URL:
タイトル:Re: おやじさん(+_+)

大丈夫でした。
ちょっとスクリプトにケアレスミスがあったので無事修正して直りました!
ありがとうございましたm(__)m



掲示板▲頁先頭