安装邮件服务器点滴: suexec问题
安装extmail邮件系统的时候,如果使用/var/www目录,不会出现问题。因为系统默认的apache的suexec的docroot目录是/var/www;
那么,当我们需要修改extmail目录的时候,就要重新编译apache 修改—with-suexec-docroot=/your/path

如果使用自己安装或者lamp套件的时候,例如使用lampp,它suexec的docroot目录是/opt/lampp/htdocs
使用 /opt/lampp/bin/suexec -V 来查看

所以如果修改extmail的目录,还是挺麻烦的:
尽量使用自己编译的apache,编译的时候就要事先指定suexec的docroot目录到你要放置的目录。
而且还要注意suexec的执行用户,配置虚拟主机SuexecUserGroup的时候,用户和组的UIP和GID要高于suexec默认的—with-suexec-uidmin —with-suexec-gidmin的UID和GID,不然suexec将被限制使用。

下面摘自张微波的 suexec FAQ

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

关于suexec的FAQ
apache编译支持suexec功能

1
2
3
./configure --enable-suexec—with-suexec-logfile=/www/logs/suexec.log \
--with-suexec-uidmin=500—with-suexec-gidmin=100 \
--with-suexec-caller=daemon—with-suexec-docroot=/www

关于suexec的FAQ
1.出现以下错误 command not in docroot
编译的时候加入—with-suexec-docroot 以后虚拟主机运行suexec的目录必须包含指定的目录里,通过suexec -V 可以察看docroot目录是哪儿

2.出现以下错误 user mismatch (daemon instead of www)
编译的时候加入—with-suexec-caller=daemon 默认是www,但一般apache的运行用户是nobody或者daemon,这里我们是httpd2.2.2,用户是daemon,所以指定这个参数,否则suexec不能被运行。

3.出现以下错误 cannot run as forbidden uid (1001/index.cgi)
在虚拟主机配置SuexecUserGroup时,指定的用户和组,必须高于—with-suexec-uidmin —with-suexec-gidmin 指定的用户uid和gid,否则被限制使用。