服务器 频道

Linux下邮件系统完美解决方案架设攻略

安装ExtMan - web后台

    在ExtMail-Solution软件包根目录下执行:
cp -r src/extman-0.16-pre1 /var/www/extsuite/extman/
    配置webman.cf

    用vi编辑/var/www/extsuite/extman/webman.cf,并连按2次ESC,确保进入命令模式,然后输入如下命令:
:1, $ s#/var/www/cgi-bin#/var/www/extsuite#g
    处理完毕后修改SYS_CHARSET及SYS_LANG参数为:
SYS_CHARSET = gb2312 SYS_LANG = zh_CN
    其他参数基本上可以使用默认值。

    更新cgi目录权限

    由于SuEXEC的需要,必须将extman的cgi目录修改成vuser:vgroup权限:
chown -R vuser:vgroup /var/www/extsuite/extman/cgi/
    确认MySQL状态

    在执行mysql操作前,必须确认它已被正确安装并启动,可以用rpm命令查询mysql server的安装情况,用ps ax的办法查看进程列表是否有mysqld进程:

    正常情况下应该可以看到mysql-server被安装:
    mysql-server-4.1.12-3.RHEL4.1

    如果没有,则表示没有安装好mysql-server,可以从本软件包RPMS目录里安装,也可以找安装光盘安装:

    rpm -ivh RPMS/mysql-server-4.1.12-3.RHEL4.1.i386.rpm

    安装完毕后必须初始化mysql,然后重新启动

    /usr/bin/mysql_install_db
    /etc/init.d/mysqld start

    正常情况下将启动成功:

    Starting MySQL: [ OK ]

    然后用ps命令来检查mysqld是否正确运行:
    ps ax|grep mysqld

    正常情况下应出现如下的结果:

    433 pts/0 S 0:00 /bin/sh /usr/bin/mysqld_safe --defaults-file=/etc/my.cnf --pid-file=/var/run/mysqld/mysqld.pid
    466 pts/0 Sl 0:00 /usr/libexec/mysqld --defaults-file=/etc/my.cnf --basedir=/usr --datadir=/var/lib/mysql --user=mysql --pid-file=/var/run/mysqld/mysqld.pid --skip-locking --socket=/var/lib/mysql/mysql.sock

    如果mysql没正确启动,请检查/var/log/mysqld.log里面的出错提示,进行处理:
    tail /var/log/mysqld.log

    数据库初始化

    执行以下命令导入mysql数据库结构及初始化数据,注意必须逐行输入以下命令,root密码默认为空,不可直接用鼠标复制两行命令直接输入,否则会报错!
    mysql -u root -p < /var/www/extsuite/extman/docs/extmail.sql
    mysql -u root -p < /var/www/extsuite/extman/docs/init.sql

    XiaoHui 补充:在执行上面两个命令之前,一定要先确认 /var/www/extsuite/extman/docs/extmail.sql 以及 /var/www/extsuite/extman/docs/init.sql 的内容。

    • 如果你一切按默认安装,域名用的就是 mail.extmail.org, 数据库的连接参数(username, database, password)都没有改,那么可以不用修改。直接执行。
    • 如果你的域名不是 mail.extmail.org,而是你自己的域名,建议修改下列资料:
    1. 打开 /var/www/extsuite/extman/docs/extmail.sql, 修改数据库连接的用户名和密码。
    2. 打开 /var/www/extsuite/extman/docs/init.sql, 修改默认的初始邮箱地址和管理员帐号。默认的密码在这里不要改。
链接基本库到Extmail


    由于ExtMan的体系与ExtMail比较类似,因此ExtMan需要使用ExtMail中几个基础perl 模块,在extman的源码包里,包含了一个叫buildlink.sh 的小脚本,该脚本完成了这些链接的工作,使用方法:

    cd /var/www/extsuite/extman/libs/Ext
    ./buildlink.sh build /var/www/extsuite/extmail/libs/Ext
    mkdir /tmp/extman
    chown -R vuser:vgroup /tmp/extman
    cd $OLDPWD

    操作完毕后,需要建立刚才导入mysql的test@extmail.org帐户的Maildir,请输入如下命令:

    cd /var/www/extsuite/extman/tools
    ./maildirmake.pl /home/domains/extmail.org/test/Maildir
    chown -R vuser:vgroup /home/domains/extmail.org
    cd $OLDPWD

    注意事项:

    上面命令行中最后一个cd $OLDPWD是返回原始路径(即ExtMail Solution软件包根目录)
由于RedHat发行版中包含了一个叫tmpwatch的工具,该工具会定期扫描/tmp/下的文件,如果这些文件很久都没被使用,将被删除,因此如果后台长期不使用,/tmp/extman目录有可能被tmpwatch删除,所以要么定期登陆后台,要么修改 webman.cf将临时目录修改到另一个地方。此处暂以/tmp/extman默认值为例。

    上述导入初始化SQL时,默认的uidnumber/gidnumber都是1000,这和vuser:vgroup 的uid/gid一致,是因为maildrop投递时会从数据库里取uidnumber/gidnumber,而在master.cf里已经定义好了投递时的运行身份(vuser:vgroup),所以这两个字段的内容必须为1000,否则将出现投递错误,例如报0x06等错误。

    测试authlib

    在命令行下执行:
    /usr/sbin/authtest -s login test@extmail.org test
    结果如下:
    Authentication succeeded.

Authenticated: test@extmail.org (uid 1000, gid 1000)
Home Directory: /home/domains/extmail.org/test
Maildir: /home/domains/extmail.org/test/Maildir/
Quota: 5242880
Encrypted Password: {crypt}uywiuN.XggXXc
Cleartext Password: test
Options: (none)

    这样表明ExtMan的正确安装,数据库也正确导入,courier-authlib能正确连接到mysql数据库

    最后访问http://mail.extmail.org/extmail/,如无意外,将看到webmail的登陆页,不过此时还没有加正式的用户,所以不能登陆,包括test@extmail.org也不行。必须要登陆到http://mail.extmail.org/extman/ 里增加一个新帐户才能登陆。

    ExtMan的默认超级管理员帐户是root@extmail.org,密码是extmail,登陆成功后,建议将密码修改,以确保安全。
0
相关文章