安装apache的时候一定要把suexec、cgi安装上,不然后面你再安装suexec就很容易出错,这个问题很头大。所以开始安装的时候一定要把suexec安装上,不管用不用得上,先装上。
查看apache是否启用了suexec, -D SUEXEC_BIN="/usr/local/sbin/suexec"
FMS# httpd -V
Server version: Apache/2.2.6 (FreeBSD)
Server built: Mar 2 2008 18:14:00
Server's Module Magic Number: 20051115:5
Server loaded: APR 1.2.11, APR-Util 1.2.10
Compiled using: APR 1.2.11, APR-Util 1.2.10
Architecture: 32-bit
Server MPM: Prefork
threaded: no
forked: yes (variable process count)
Server compiled with....
-D APACHE_MPM_DIR="server/mpm/prefork"
-D APR_HAS_SENDFILE
-D APR_HAS_MMAP
-D APR_USE_FLOCK_SERIALIZE
-D APR_USE_PTHREAD_SERIALIZE
-D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
-D APR_HAS_OTHER_CHILD
-D AP_HAVE_RELIABLE_PIPED_LOGS
-D DYNAMIC_MODULE_LIMIT=128
-D HTTPD_ROOT="/usr/local"
-D SUEXEC_BIN="/usr/local/sbin/suexec"
-D DEFAULT_PIDLOG="/var/run/httpd.pid"
-D DEFAULT_SCOREBOARD="/var/run/apache_runtime_status"
-D DEFAULT_LOCKFILE="/var/run/accept.lock"
-D DEFAULT_ERRORLOG="/var/log/httpd-error.log"
-D AP_TYPES_CONFIG_FILE="etc/apache22/mime.types"
-D SERVER_CONFIG_FILE="etc/apache22/httpd.conf"
查看suexec的目录路径
FMS# suexec -V
-D AP_DOC_ROOT="/usr/local/www/data"
-D AP_GID_MIN=1000
-D AP_HTTPD_USER="www"
-D AP_LOG_EXEC="/var/log/httpd-suexec.log"
-D AP_SAFE_PATH="/usr/local/bin:/usr/local/bin:/usr/bin:/bin"
-D AP_UID_MIN=1000
-D AP_USERDIR_SUFFIX="public_html"
更改 CGI 文件的用户及组属性
# cd /usr/local/www/data/extmail
# chown -R vuser:vgroup cgi
# cd /usr/local/www/data/extman
# chown -R vuser:vgroup cgi
/usr/local/etc/rc.d/apache22 reload
其中碰到的一些问题及解决办法
[2008-08-11 16:11:05]: uid: (1000/vuser) gid: (1000/1000) cmd: index.cgi
[2008-08-11 16:11:05]: cannot get docroot information (/usr/local/www/data)
[2008-08-11 16:11:16]: uid: (1000/vuser) gid: (1000/1000) cmd: index.cgi
[2008-08-11 16:11:16]: cannot get docroot information (/usr/local/www/data)
FMS# ll /usr/local/sbin/suexec
-rwsr-xr-x 1 root wheel 12911 Mar 2 18:15 /usr/local/sbin/suexec
以下是extmail+suexec+cgi的apache配置文件中的配置:
######### Web Mail System Configure ##########################
ServerName mail9ye.3322.org
DocumentRoot /usr/local/www/data/extmail/html
Options Indexes
Allow from all
SuexecUserGroup vuser vgroup
ScriptAlias /extmail/cgi /usr/local/www/data/extmail/cgi
Alias /extmail /usr/local/www/data/extmail/html/
AllowOverride None
Options Indexes FollowSymLinks
Order allow,deny
Allow from all
Options Indexes
Allow from all
ScriptAlias /extman/cgi /usr/local/www/data/extman/cgi
Alias /extman /usr/local/www/data/extman/html/
AllowOverride None
Options Indexes FollowSymLinks
Order allow,deny
Allow from all
ErrorLog "/var/log/extmail.log"
成功将amavisd日志单独写入amavisd.log文件
可能有人会笑话我,这么简单!
我使用freebsd6.2,fengyong的自动安装,23000多学生帐户,经过几个月的磨合,垃圾邮件基本没有误伤了,有需要交流经验的朋友,呵呵!!
原来amavisd_new是将日志写入maillog的,每次查找垃圾邮件问题都十分不方便,今天决心给它独立出来,成功了:
1.在/usr/local/etc/amavisd.conf中,将
#$syslog_facility = 'mail'; # Syslog facility as a string
改成了
$syslog_facility = 'local0'; # Syslog facility as a string
2.在/etc/syslog.conf中增加了一行:
local0.info /var/log/amavisd.log
3.生成一下日志文件:touch /var/log/amavisd.log
4.重启一下amavisd和syslogd服务:
/usr/local/etc/rc.d/amavisd restart
/etc/rc.d/syslogd restart
5.验证一下,成功了:tail -f /var/log/amavisd.log 看到日志在增加。
呵呵,希望对你有用!
改进:
根据上面的配置,amavisd的日志还会写入到messages中,经过一番实验测试,做如下更改就可以解决。
修改/etc/syslog.conf
*.notice;authpriv.none;kern.debug;lpr.info;mail.crit;news.err /var/log/messages
改为
authpriv.none;kern.debug;lpr.info;mail.crit;news.err /var/log/messages
再添加一行
*.notice /var/log/notice.log
Touch /var/log/notice.log
这样就不会影响到系统记录*.notice日志了,当然amavisd的日志也会记录到/var/log/notice.log中去,但是这样就方便看messages日志了,毕竟这个日志是我们的重要日志。
mail系统要连接外部数据库需要修改如下几个文件
/usr/local/etc/postfix下面的mysql虚拟域文件
/usr/local/etc/authllib下面的authmysqlrc文件中的mysql地址
还有就是webmail配置文件中的mysql地址需要更改,一共两个配置文件
还有就是外部数据库需要配置iptables允许访问3306端口
extmail数据库授权需要改为相应该的IP地址
阅读(978) | 评论(0) | 转发(0) |