今天安装postfix和extmail的时候发现不能正常运行CGI,赶紧检查log,发现是suexec出现错误了,我就说前几天的论坛附件怎么会出问题,赶紧查找原因,看suexec的log发现是user mismatch,上网一查原因,原来是配置APACHE的时候就出错了,好像只有重新编译了,又练手了
apache编译支持suexec功能
./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,否则被限制使用。