suexecの設定、備忘録
※追加で記述するかも
suexecのドキュメントルートはコンパイル時指定オプションとなっている。
--with-suexec-docroot
で指定する。
fedoracoreのrpmでインストールした場合は、
%define contentdir /var/www
が指定されている。
/home
VirtualHostとして運用し、ユーザーのディレクトリをVirtualHostのrootとしている場合はsuexecの使用ができない。
ソースからビルドすればいいのだが、rpm管理からはずしてしまうのは忍びない。
以下の方法で仮対応。
本対応は、別バージョンのパッケージが作成されたときに行うこととする。
1.SRPMを落としてインストール
2.SPECファイルを編集
3.rpmbuild
4.作成されたモジュールを置き換え
1.SRPMを落としてインストール
これは、適当なところから。(以下は理研)
rpm -ivh http://ftp.riken.go.jp/Linux/fedora/core/6/source/SRPMS/httpd-2.2.3-5.src.rpm
2.SPECファイルを編集
/usr/src/redhat/SPEC/httpd.specを編集
2行目に
%define suexec_docrootdir /home
を追加
185行目あたりにある
--with-suexec-docroot=%{contentdir}
となっているのを
--with-suexec-docroot=%{suexec_docrootdir}
に変更
3.rpmbuild
rpmbuild -bb /usr/src/redhat/SPEC/httpd.spec
マシンスペックにもよるが、5-20分くらいでbuild終了。
4.作成されたモジュールを置き換え
/usr/sbin/suexecをrenameし、ビルドされた/usr/src/redhat/BUILD/httpd-2.2.3/prefork/support/suexec
に置き換える。
selinuxを導入している場合は、単純に置き換えではだめなので
ls -Z /usr/sbin/suexec
で表示されたrole等をchconで設定してあげる必要があり。