当方、Linuxは”ど”が付くほどの素人です。
サーバを立ちあげて3ヶ月ほど経ちましたがどうしてもこれだけうまくいかないのです。
DocumentRoot配下でのCGIは実行できるのですが、ユーザ領域でのCGI実行ができないのです。
http://www.kozakura-botan.com/~ryx/
見てのとおり、ERROR 500
となってしまいます。
httpd.confの記述が悪いんでしょうか?
チェックしていただける方おりましたらよろしくお願いします。
こんばんは。
> 当方、Linuxは”ど”が付くほどの素人です。
> サーバを立ちあげて3ヶ月ほど経ちましたがどうしてもこれだけうまくいかないのです。
> DocumentRoot配下でのCGIは実行できるのですが、ユーザ領域でのCGI実行ができないのです。
> http://www.kozakura-botan.com/~ryx/
> 見てのとおり、ERROR 500
> となってしまいます。
> httpd.confの記述が悪いんでしょうか?
FAQのCGIがうまく動かないの2番(500にはならないから違う?)か、3番(これは、ドキュメントルートでは問題ないという現象にはあわない?)かと思ったのですが。
> こんばんは。
>
> FAQのCGIがうまく動かないの2番(500にはならないから違う?)か、3番(これは、ドキュメントルートでは問題ないという現象にはあわない?)かと思ったのですが。
私が思うにはCGIその物に問題がある可能性が大です。
モードは755になっていますね。
そのディレクトリに移動し ./bbsnote.cgi とたたいて見てください。
DocumentRootをこの”ryx”というディレクトリに変えて実行するとCGIは動くのです。
しかし、ユーザディレクトリとするとCGIが実行できません。
ユーザ領域のOptions にExecCGIは追加してあります。
Logを見ると
Premature end of script headers:〜:http://192〜
failed to open log file,referror:http://192〜
fopen : Permission denied , referror : http://192〜
というエラーが書いてありました。
こんなところですが、いかがでしょう??
こんばんは。
> Logを見ると
> Premature end of script headers:〜:http://192〜
> failed to open log file,referror:http://192〜
> fopen : Permission denied , referror : http://192〜
> というエラーが書いてありました。
このエラーから調べたことはないのでしょうか?
書いてあるとおりですから、logファイルがopenできずその原因はpermissionnと
言っているのだと思うのですが。どのようにCGIをユーザディレクトリに設置したのか
わかりませんが、パーミッションと所有権があっていないのだと思います。
CGIのドキュメントを見直してみてください。
おはようございます。(こんにちはの方が正しいかな。)
Creです。
私もLinuxいじりはじめて間もないので、あまり参考には
ならないかもしれませんが、ユーザディレクトリでのみ
実行されないとのことで、私の症状と似てましたので
少しでも参考になればと思います。
まず、tailコマンドなどで
/etc/httpd/logs/suexec.log
を覗いてみて下さい。
そのログの中に
[2003-08-25 13:52:41]: cannot get docroot information (/home/xxxx)
というエラーがあればたぶんsuEXECの問題だと思います。(xxxxはユーザー名)
ユーザーディレクトリでのCGIの実行は、suEXECによって
管理されているそうです。(解釈が違うかも)
suEXECのディフォルトのユーザーディレクトリは「public_html」となっています。
ユーザディレクトリの設定がこれ以外になっていると、上のようなエラーコードが
出るようです。
suEXECインストール時に設定変更できるらしいですが、素直にユーザーディレクト
リを変更したほうが簡単です。
お力になれなかったら御免なさい。
↓参考
http://httpd.apache.org/docs-2.0/ja/suexec.html
すみません。仕事が急に忙しくなりまして、なかなかサーバをいじっている暇がなくてResも出来なくて申し訳ありませんでした。
suEXECのエラーについてですが
[2003-09-28 22:25:55]: user mismatch (nobody instead of apache)
などというエラーがでておりました。
本当によくわかっていなくて申し訳ないのですが、ご指導よろしくお願いします。
> すみません。仕事が急に忙しくなりまして、なかなかサーバをいじっている暇がなくてResも出来なくて申し訳ありませんでした。
>
> suEXECのエラーについてですが
> [2003-09-28 22:25:55]: user mismatch (nobody instead of apache)
> などというエラーがでておりました。
apacheをrpmで入れて、httpd.confのuserとgroupをnobodyに変更してませんか?
もしそうなら、userとgroupをapacheに戻してください。user mismatchしてますから
まず、これに違いないと思いますが。 suEXECの問題です。
ありがとうございます。
後で確認してみたいと思います。
そのとおり、nobodyからapacheにしました。
変更後、suExecのエラーが下記のようになりました
[2003-09-30 22:17:38]: uid: (501/ryx) gid: (502/502) cmd: bbsnote.cgi
[2003-09-30 22:17:38]: failed to setgid (502: bbsnote.cgi)
一応自分なりに調べているのですがよくわかりません。
このエラーがわかるようでしたらよろしくお願いします。
rpmから入れたので、apacheに戻したのですよね。(変更ではないですよ。元に戻す。ディストリビューションが何かかかれていないので、apacheと説明したのはまずかったかもしれませんが)結果オーライになっているようです。
このエラー原因としては、suexecのownerがいじっているうちにおかしくなっている可能性はないですかな。
suexecのownerはrootになってますか?なっていなかったら、「chown root suexec」とやってみてください。インストール後にあちこちいじった後だと、おやじもどうなっているのかの想像がつきません。
いずれにしても、はじめからやり直した方がいいと思いますが。rpmならuserとgroupは変更せず、パスは違いますがおやじのとおりやれば動きます。最初は、環境依存の問題を踏まえて良いとこ取りはできないでしょうから、極力同じ環境のサイトを参考にして、あちこちのページを参考にしないことを薦めます。まずは動かして、少しずつ改良していくのがいいと思います。後、最初にconfファイルのバックアップを取っておくことと、極力変更もダイレクトにしないで、もとの設定をコピーしてコメントアウトしておけば、いつでも前(初期状態)に戻れるので、おやじはこの方法を採っています。
suexecのownerを変更しましたら、なんとCGIが動いてしまいました。
半年悩んでいたのが一気に解決いたしました。ここで相談してよかったです。
またいろいろ分からないことが多々ありますので、おやじさまをはじめ、みなさまよろしくご指導ください。
このたびはありがとうございました。