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