centos6 apache の suexec の docroot を強引に書きかえる
よいこはやってはいけません(笑)。
CentOS 6 標準の yum で取れる apache / suexec で VirtualHost なんかを /home以下で運用したいな、みたいなときの話です。
suexec.logに
command not in docroot
と出るようなときの強引な対処法です。
もう一度書きますが、よいこはやってはいけません。人におすすめすることはできないやりかたです。
# cp /usr/sbin/suexec /root/sec/suexec # cd /root/sec # cp suexec suexec.org # vi -b suexec
-bがポイントです
そしたら 、/var\/www として該当箇所を探します。
仮に /home 以下で実行させたいなら
var/
までを
home
に書きかえます。で、このあと重要。vi上で '^@' と表示されるNULLを
www
の部分に上書きします。vi的には一番はじめのwの上にカーソルがきたら、xxxxPPPP でいいんじゃないかな?もしかしたら、xxxxpppp になるのかもしれない(実際につかわないとそのへんわかんないタイプです)。
:wq! で抜けたら
# ls -l suexec* サイズが同じか見る # cmp -l suexec* 7つだけちがうか見る # cd /usr/sbin # mv suexec suexec.org # mv /root/sec/suexec . # chown root:apache suexec # chmod 4510 suexec