前面的apache+php或者nginx+php-fpm就不在介绍!
记得把mysql的lib放进ld.so.conf里面,以免在后面编译sasl的时候出现问题
本次使用的软件:
准备工作:
1、安装一些perl的模块和其他的软件
DBI、DBI::Mysql、Unix:syslogd、perl-GD、Time::HiRes、File::Tail
rrdtool、giflib、libgdiplus、mono-core、dbus-sharp、dbus-sharp-devel、dbh、dbh-devel、pcre、pcre-devel
2、添加用户和属组
groupadd -g 1000 vgroup
useradd -g 1000 -u 1000 -M -s
/bin/false vuser
说明:vuser和vgroup是重要的用户和输组,而且uid、gid必须是1000(如果不是1000,后面很多地方都需要调整,有点麻烦而且很容易遗忘造成一些问题的出现)
groupadd postdrop
useradd -d /var/spool/postfix
-s /bin/true -g postfix -G postdrop postfix
3、安装courier-authlib
tar jxf
courier-authlib-0.61.0.tar.bz2
./configure
\
--prefix=/usr/local/courier-authlib \
--without-stdheaderdir \
--without-authuserdb \
--without-authpam \
--without-authldap \
--without-authpwd \
--without-authshadow \
--without-authvchkpw \
--without-authpgsql \
--without-authcustom \
--with-authmysql \
--with-mysql-libs=/usr/local/mysql/lib/mysql \
--with-mysql-includes=/usr/local/mysql/include/mysql \
--with-redhat \
--with-mailuser=vuser \
--with-mailgroup=vgroup
(因为改变了 courier-authlib 的安装位置,所以需要加选项
--without-stdheaderdir,不然找不到header之类)
编译 courier-authlib 必须要加入--with-mailuser,--with-mailgroup 这两项;否则在
postfix 收取邮件的时候就会出现错误,在 /var/log/maillog 日志文件中可以看到这个错误提示:
temporary failure. Command output: ERR: authdaemon: s_connect()
failed: Permission denied maildrop: Temporary authentication
failure. )
make && make install
make install-migrate
make install-configure
echo "/usr/local/courier-authlib/lib/courier-authlib"
>> /etc/ld.so.conf
ldconfig -v
记得在此运行ldconfig让刚才的ld.so.conf生效,不然在后面测试maildrop
-v时会报错:maildrop:error while loading shared libraries:
libcourierauth.so.0)
设置courier-authlib的开机启动
cp courier-authlib.sysvinit /etc/init.d/courier-authlib
chkconfig --add courier-authlib
chkconfig courier-authlib on
chmod 755 /usr/local/courier-authlib/var/spool/authdaemon
设置认证
cd /usr/local/courier-authlib/etc/authlib
vim authdaemonrc
修改
authmodulelist="authmysql"
authmodulelistorig="authmysql"
vim authmysqlrc
MYSQL_SERVER localhost
MYSQL_USERNAME extmail
MYSQL_PASSWORD extmail
MYSQL_SOCKET /tmp/mysql.sock (注意这里修改成你实际mysql.sock的位置)
YSQL_PORT 3306
MYSQL_OPT 0
MYSQL_DATABASE extmail
MYSQL_USER_TABLE mailbox
MYSQL_CRYPT_PWFIELD password
MYSQL_UID_FIELD uidnumber
MYSQL_GID_FIELD gidnumber
MYSQL_LOGIN_FIELD username
MYSQL_HOME_FIELD homedir
MYSQL_NAME_FIELD name
MYSQL_MAILDIR_FIELD maildir
MYSQL_QUOTA_FIELD quota
MYSQL_SELECT_CLAUSE SELECT
username,"",password,uidnumber,gidnumber, \
CONCAT('/home/domains/',homedir), \
CONCAT('/home/domains/',maildir),