2004/2/10

Apache2のSUEXEC(Web)

今はApacheは1.3系を利用しているが、そろそろ・・・と思い2.0系の最新版をportsからインストールした。1.3とは共存できないので、サーバ停止時間をなるべく短くと思って作業を行ったが、思わぬところでつまずいてしまった。

SUEXECオプションを入れてコンパイルしてインストールしたのだが、今まで設定してたhttpd.conf内のUser,Group指定はなくなって、新たにSuexecUserGroupに実行したい権限ユーザ名とグループを指定するらしいのだが、なんとこれを指定すると、/home/*/public_html配下のCGIの実行がSuexecUserGroupで指定したユーザで実行されてしまうみたい。

つまりhttpd-suexec.logをみる限り「実行できません」と怒られる(実際動いていないし)。

これを指定しないと、public_html配下は実行できるけど、今度は通常のDocumentRoot配下のCGIが実行できない。

いろいろなサイトを覗くとみんな同じ問題を抱えていて、VirtualHostを巧みに使って誤摩化している人が結構いたけど、別にApache2にこだわりはないので(SUEXECにはこだわりがある)、Apache13に戻しちゃいました。

今後に期待ということで・・・。役に立たないエントリで申し訳ない。

【後日談】
configureオプションで--with-suexec-callerを普段使っているUIDにセットして、SuexecUserGroupの指定をhttpd.confから全て取り除いて試してみたら、今度はsuexecモードで動作してくれませんでした。
やっぱり、suexecを使うにはconfigureオプションの他にSuexecUserGroupを指定しないと駄目みたいです。一応パッチもあるみたいですが、オフィシャルなものではないのでちょっと使うのに躊躇しています。

【後日談2(2004/3/21)】
Apache 2.0.49がリリースされましたが、変更履歴を見る限り、本問題は対処されていないようです。思想的に不要と判断されたのでしょうか。なぜ不要な機能と判断されているのか真相が分かりません。英語力と技術力の不足からです。どなたか分かる人、教えてください。

【後日談3(2005/8/6)】
久しぶりにApache 2.0.54_2で試してみたら、ちゃんと動くようになりました。
ディレクティブにSuexecUserGroupの指定があっても、ちゃんと中のpublic_html配下はそのユーザの権限で動作します。

これで2.xに上げるのを躊躇する必要はなくなりました。よかったよかった。

投稿者 yotan : 2004年2月10日 11:23| トラックバック(0)
アンケート
このエントリは・・・
とても役に立った
役に立った
どちらとも言えない
あまり役に立たなかった
全く役に立たなかった
コメント

suEXECってデフォだとそうなるのですか?(・_・;)
自分は運がいいのかそういうトラブルに当たりませんでした
VineLinuxからFreeBSDに変えたときapache2のドキュメントルートがhome内に無かったのでhttpdのユーザ、グループであるwwwのホームディレクトリを/home/wwwに設定したのがよかったのかも・・
もちろんhttpd.confでもドキュメントルートは/home/www/dataになってます
これだとsuEXECはドキュメントルートはwwwで実行し
/home/hoge/pulic_htmlはhogeで動いてます

Posted by: わい・えっち : 2004年7月12日 18:16

そうなんですよねぇ。
VineLinuxでaptでapache2を入れたとき、DocumentRootが/home/wwwで設定されました。でもって、suExecのrootが/homeになっているみたいで、全て問題なく動作出来そうでした。

出来れば近いうちにうちのFreeBSDも5.x系にしたいと思っているので、その時には今回の件を参考にして設定して、apache2を使いたいと思います。

コメントありがとうございました。

Posted by: よたん : 2004年7月16日 00:08
コメントする

※コメント内にURLを書くとSPAM扱いとなります。2ch風に表記はOKです










名前、アドレスを登録しますか?