Top過去ログ目次掲示板

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

No.7744 500 Internal Server Error


No.7744 投稿時間:2008年11月02日(Sun) 15:15 投稿者名:厨房 URL:http://http://sugachan.dip.jp/obsolete/snup/
タイトル:500 Internal Server Error

はじめまして、
OSはFedora7を使用しています。

Sn Uploaderと言う所から落として来た
upload.cgiを使用しています。

それを、設置してパーミッションをcgiと置いて有るフォルダ
共に755にしてブラウザでアクセスしたら、
500 Internal Server Errorと表示されます。
Apacheのエラーログを見ると、
Premature end of script headers: upload.cgiと記載されてます。

Perlのパスは問題無かったです。
改行コードとファイル転送モードは良く
分からないので何もしてません。
Suexecはhttpd -lで調べた結果、入って無い様です。
Compiled in modules:
core.c
prefork.c
http_core.c
mod_so.c
他のCGIは動いてるのですが、
Sn Uploaderのupload.cgiだけ動きません。
パーミッションはこの様に表示されてます。
-rwxr-xr-x 1 apache apache 50098 2008-11-02 14:37 upload.cgi
-rw-r--r-- 1 apache apache 50100 2007-12-19 05:21 upload.cgi~
この様な状態でupload.cgiを動かすには如何すれば良いでしょうか?
よろしくお願いします。


No.7745 投稿時間:2008年11月02日(Sun) 17:35 投稿者名:おやじ URL:
タイトル:uploaderに手を出すのは危険?

はじめに、この手の問題を自分で解決できない状況でuploaderに手を出すのは危険ではないかと思いますが・・・。
uploaderの怖さは、作者のサイトからもリンクされていますが承知していますよね。
大前提としてNoCGI.pm版を使用しているものとします。

> それを、設置してパーミッションをcgiと置いて有るフォルダ
> 共に755にしてブラウザでアクセスしたら、
> 500 Internal Server Errorと表示されます。
> Apacheのエラーログを見ると、
> Premature end of script headers: upload.cgiと記載されてます。
>
> Perlのパスは問題無かったです。

もともとが/usr/bin/perl なので、FedoraならデフォルトでOKのはず。

> 改行コードとファイル転送モードは良く
> 分からないので何もしてません。

FTPでASCIIモードで転送していれば問題ないですが、サーバでじかにダウンロードすると駄目です。

> Suexecはhttpd -lで調べた結果、入って無い様です。
> Compiled in modules:
> core.c
> prefork.c
> http_core.c
> mod_so.c

「mod_so.c」なのでSuEXECはDSOモジュールで組み込まれているため、これでは確認できません。
意識していなければ、デフォルトでSuEXECはロードされています。止めるなら、/etc/httpd/conf/httpd.confの「LoadModule suexec_module modules/mod_suexec.so」行をコメントアウトして再起動。

> 他のCGIは動いてるのですが、

但し、同じユーザや場所(階層)で他のCGIが動いているなら止める必要は全くありません。実は、ここでいう他のCGIというのが、uploaderとは違う場所というのがオチでは?
もし他のCGIは動いているなら、それと同じ設定で動かない理由はありません。というより、おやじのバックアップ機では、FTPで転送しただけで動きました。

> Sn Uploaderのupload.cgiだけ動きません。
> パーミッションはこの様に表示されてます。
> -rwxr-xr-x 1 apache apache 50098 2008-11-02 14:37 upload.cgi
> -rw-r--r-- 1 apache apache 50100 2007-12-19 05:21 upload.cgi~

uploaderは、どこに設置しているのですか? オーナがapache:apacheということは、/var/www/html配下ですか?
suEXECならパーミッション701にすべきでしょう。


No.7746 投稿時間:2008年11月02日(Sun) 18:02 投稿者名:厨房 URL:
タイトル:Re: uploaderに手を出すのは危険?

> はじめに、この手の問題を自分で解決できない状況でuploaderに手を出すのは危険ではないかと思いますが・・・。
> uploaderの怖さは、作者のサイトからもリンクされていますが承知していますよね。
> 大前提としてNoCGI.pm版を使用しているものとします。
>
> > それを、設置してパーミッションをcgiと置いて有るフォルダ
> > 共に755にしてブラウザでアクセスしたら、
> > 500 Internal Server Errorと表示されます。
> > Apacheのエラーログを見ると、
> > Premature end of script headers: upload.cgiと記載されてます。
> >
> > Perlのパスは問題無かったです。
>
> もともとが/usr/bin/perl なので、FedoraならデフォルトでOKのはず。
>
> > 改行コードとファイル転送モードは良く
> > 分からないので何もしてません。
>
> FTPでASCIIモードで転送していれば問題ないですが、サーバでじかにダウンロードすると駄目です。
>
> > Suexecはhttpd -lで調べた結果、入って無い様です。
> > Compiled in modules:
> > core.c
> > prefork.c
> > http_core.c
> > mod_so.c
>
> 「mod_so.c」なのでSuEXECはDSOモジュールで組み込まれているため、これでは確認できません。
> 意識していなければ、デフォルトでSuEXECはロードされています。止めるなら、/etc/httpd/conf/httpd.confの「LoadModule suexec_module modules/mod_suexec.so」行をコメントアウトして再起動。
>
> > 他のCGIは動いてるのですが、
>
> 但し、同じユーザや場所(階層)で他のCGIが動いているなら止める必要は全くありません。実は、ここでいう他のCGIというのが、uploaderとは違う場所というのがオチでは?
> もし他のCGIは動いているなら、それと同じ設定で動かない理由はありません。というより、おやじのバックアップ機では、FTPで転送しただけで動きました。
>
> > Sn Uploaderのupload.cgiだけ動きません。
> > パーミッションはこの様に表示されてます。
> > -rwxr-xr-x 1 apache apache 50098 2008-11-02 14:37 upload.cgi
> > -rw-r--r-- 1 apache apache 50100 2007-12-19 05:21 upload.cgi~
>
> uploaderは、どこに設置しているのですか? オーナがapache:apacheということは、/var/www/html配下ですか?
> suEXECならパーミッション701にすべきでしょう。
おやじ様
早速のご回答有り難うございます。
uploadの設置は勉強の為とLAN内で使いたいと思い設置しようとしてました。
私程の人間じゃマダマダwebに公開出来ません…(汗

upload.cgiはサーバーでじかにダウンロードした物です。
この時点でFTP等じゃないと設置は無理ですか?
それと、SuEXECはいちおapacheのhttpd.confの奴に
#を付けて再起動しましたがダメでした。

はい、おやじ様が仰ってるように他のcgiとは違う場所に
upload.cgiを設置しております。
設置場所は/var/www/html/up2です。
他のCGIが動いてる場所は/var/www/htmlです。
/var/www/htmlにupload.cgiを置いてみましたが動きませんでした。
今回はup2と言うディレクトリに置きたい為、htmlでは無くup2に置いてます。

オーナーは元々rootでしたが、色々試しててオーナーを
apacheにしてる方が居たので自分も試しにしてみただけです。
この場合、どうすれば良いでしょうか?


No.7747 投稿時間:2008年11月03日(Mon) 10:24 投稿者名:おやじ URL:
タイトル:結論は改行コードの問題です。

> upload.cgiはサーバーでじかにダウンロードした物です。
> この時点でFTP等じゃないと設置は無理ですか?

おやじは、

> > > 改行コードとファイル転送モードは良く
> > > 分からないので何もしてません。
> >
> > FTPでASCIIモードで転送していれば問題ないですが、サーバでじかにダウンロードすると駄目です。

といっているのに、再度無理ですか? と聞かれると回答する意味がないですよね。
ご自分で「改行コードとファイル転送モードは良く分からない」といっていることを放置していることが一番の問題。つまり、本質論が理解できていないので、おやじの答えだけでは先に進めなかったということだと思います。
その背景には、/var/www/html配下にFTPで転送するすべがないからだと思いますが、応用を利かせばいくらでも手はあります。
一旦、FTPで送れるユーザに送って(この時点で改行コードは変換される)から、サーバ上で移動する、という手は思いつきませんか? (オーナは変更要)

結論は改行コードの問題です。この問題ならsuEXECは関係ないです。

http://www.aconus.com/~oyaji/faq/apache_cgi3.htm

> はい、おやじ様が仰ってるように他のcgiとは違う場所に
> upload.cgiを設置しております。
> 設置場所は/var/www/html/up2です。
> 他のCGIが動いてる場所は/var/www/htmlです。
> /var/www/htmlにupload.cgiを置いてみましたが動きませんでした。
> 今回はup2と言うディレクトリに置きたい為、htmlでは無くup2に置いてます。
>
> オーナーは元々rootでしたが、色々試しててオーナーを
> apacheにしてる方が居たので自分も試しにしてみただけです。
> この場合、どうすれば良いでしょうか?

upload.cgiが設置してあるディレクトリで、以下のとおりやれば動くはずです。
下記が何をしているかは、調べて考えてください。

#cmod 755 /var/www/html/up2
#cd /var/www/html/up2
#tr -d '\r' < upload.cgi > upload2.cgi
#mv upload2.cgi upload.cgi
#chmod 755 upload.cgi


No.7748 投稿時間:2008年11月03日(Mon) 13:46 投稿者名:厨房 URL:http://http://sugachan.dip.jp/obsolete/snup/
タイトル:Re: 結論は改行コードの問題です。

> > upload.cgiはサーバーでじかにダウンロードした物です。
> > この時点でFTP等じゃないと設置は無理ですか?
>
> おやじは、
>
> > > > 改行コードとファイル転送モードは良く
> > > > 分からないので何もしてません。
> > >
> > > FTPでASCIIモードで転送していれば問題ないですが、サーバでじかにダウンロードすると駄目です。
>
> といっているのに、再度無理ですか? と聞かれると回答する意味がないですよね。
> ご自分で「改行コードとファイル転送モードは良く分からない」といっていることを放置していることが一番の問題。つまり、本質論が理解できていないので、おやじの答えだけでは先に進めなかったということだと思います。
> その背景には、/var/www/html配下にFTPで転送するすべがないからだと思いますが、応用を利かせばいくらでも手はあります。
> 一旦、FTPで送れるユーザに送って(この時点で改行コードは変換される)から、サーバ上で移動する、という手は思いつきませんか? (オーナは変更要)
>
> 結論は改行コードの問題です。この問題ならsuEXECは関係ないです。
>
> http://www.aconus.com/~oyaji/faq/apache_cgi3.htm
>
> > はい、おやじ様が仰ってるように他のcgiとは違う場所に
> > upload.cgiを設置しております。
> > 設置場所は/var/www/html/up2です。
> > 他のCGIが動いてる場所は/var/www/htmlです。
> > /var/www/htmlにupload.cgiを置いてみましたが動きませんでした。
> > 今回はup2と言うディレクトリに置きたい為、htmlでは無くup2に置いてます。
> >
> > オーナーは元々rootでしたが、色々試しててオーナーを
> > apacheにしてる方が居たので自分も試しにしてみただけです。
> > この場合、どうすれば良いでしょうか?
>
> upload.cgiが設置してあるディレクトリで、以下のとおりやれば動くはずです。
> 下記が何をしているかは、調べて考えてください。
>
> #cmod 755 /var/www/html/up2
> #cd /var/www/html/up2
> #tr -d '\r' < upload.cgi > upload2.cgi
> #mv upload2.cgi upload.cgi
> #chmod 755 upload.cgi

おやじ様
ご回答有難う御座います。

#cmod 755 /var/www/html/up2(up2のパーミッション変更)
#cd /var/www/html/up2(up2に移動)
#tr -d '\r' < upload.cgi > upload2.cgi(LFに改行)
#mv upload2.cgi upload.cgi(ファイル名変更)
#chmod 755 upload.cgi(upload.cgiのパーミッション変更)

この様に何とかおやじ様のお陰で理解出来ました。
お忙しい中回答して頂き有難う御座います。



掲示板▲頁先頭