我在FreeBSD 6.2 上组建的邮件系统

时间:2007-12-15 11:18:56   来源:extmail.org  作者:bsdunix  点击:次  出处:技术无忧

我在FreeBSD 6.2 上组建的邮件系统(我实验了3次,均成功)


我在FreeBSD 6.2release上组建的邮件系统(参照<<在FreeBSD 6上组建ISP级的邮件系统>>文章的改动与注意点)
FreeBSD 6.2release for i386
各个软件版本的选择,均出于稳定第一的考虑
我的系统硬件:SC1420 cpu 2.8Ghz (支持em64)
分区
/     2G
swap      2G
/home      2G
/usr      8g
/var      10G
/data      255G (余下全部,邮件存储目录)

三、安装数据库 MySQL
#cd /usr/ports/databases/mysql41-server/
#make install clean
在/etc/rc.conf 加入
mysql_enable="YES"
启动MySQL (我干脆reboot了机器)
#/usr/local/etc/rc.d/mysql-server start

四、安装Apache

1、安装apache server
#cd /usr/ports/www/apache20/
#make install clean
在/etc/rc.conf 中加入:
apache20_enable="YES"
出现下列Options 时,我什么也没有选,直接选OK
     Options for gettext 0.14.5_2
[ ] EXAMPLES install example files
[ ] HTMLMAN   install man pages in HTML format
##########
启动apache server
# /usr/local/etc/rc.d/apache2.sh start

2、安装PHP
#cd /usr/ports/lang/php5/
#make install clean
出现下列Options 时,我的选择如下:
Options for php5 5.1.6_3
[X] CLI Build CLI version
[X] CGI Build CGI version
[X] APACHE Build Apache module
[ ] DEBUG Enable debug
[X] SUHOSIN Enable Suhosin protection system
[X] MULTIBYTE Enable zend multibyte support
[ ] IPV6 Enable ipv6 support
[ ] REDIRECT Enable force-cgi-redirect support (CGI only)
[ ] DISCARD Enable discard-path support (CGI only)
[X] FASTCGI Enable fastcgi support (CGI only)
[X] PATHINFO Enable path-info-check support (CGI only)
##########

在/usr/local/etc/apache20/httpd.conf 里加入
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

加入目录索引 index.php,约在httpd.conf 的212行
DirectoryIndex index.html index.php

restart或reload Apache 使之生效
启动apache server
# /usr/local/etc/rc.d/apache2.sh start
3.我不专门安装PHP 扩展,在安装phpmyadmin时会自动安装的。
4、安装phpmyadmin 管理数据库
#cd /usr/ports/databases/phpmyadmin/
#make install clean

在这里建议大家,如果没有必要尽量不要安装GD库免得浪费时间,大家可据自己需要选择安装模块
Options for phpMyAdmin 2.9.0.2
[ ] BZ2 bzip2 library support
[ ] GD GD library support
[ ] MYSQLI Improved MySQL support
[X] OPENSSL OpenSSL support
[ ] PDF PDFlib support (implies GD)
[ ] ZLIB ZLIB support
[X] MCRYPT MCrypt library support
[X] MBSTRING Multi-byte character-set string support

5、安装extman
extman 是extmail用户后台管理系统,官方网站为[url]www.extmail.org[/url] 下载解压

#tar zxvf extman-13-20060102.tar.gz
#cd extman-0.13-20060102/docs
#mysql -u root -p <extmail.sql
Enter password:
#mysql -u root -p <init.sql
Enter password:
extmail.sql添加了两个MySQL用户

1、只读用户:extmail 密码:extmail

2、读/写用户:webman 密码:webman

init.sql 里,对extmail数据库添加了下面的记录

a、添加了一个别名记录 [email]support@extmail.org[/email] ->[email]test@extmail.org[/email]

b、增加了 extmail.org 域

c、增加了[email]test@extmail.org[/email]的邮箱密码为test。

d、增加了extman 的管理员[email]root@extmail.org[/email] 密码为extmail


五、安装邮件系统
安装下面三个软件要注意先后顺序

1、安装 Courier-IMAP
#cd /usr/ports/mail/courier-imap/
#make install clean

选择openssl、MySQL
在/etc/rc.conf 加入
courier_authdaemond_enable="YES"
courier_imap_pop3d_enable="YES"
courier_imap_imapd_enable="YES"

修改authdaemond的权限
#/usr/local/etc/rc.d/courier-authdaemond start
#chmod -R +x /var/run/authdaemond/
authdaemond 启动完成后,检查/var/run/authdaemond 下面是否产生socket 文件,因为认证时是通过这个文件读取密码的。
如果没有这一步: chmod -R +x /var/run/authdaemond/
会出现:
Jan 12 10:31:17 sun1 maildrop[992]: Temporary authentication failure.
Jan 12 10:31:17 sun1 postfix/pipe[957]: 47B6A4B017: to=<[email]xxx@xxx.edu.cn[/email]>, relay=mai
ldrop, delay=0.09, delays=0.08/0/0/0.01, dsn=4.3.0, status=deferred (temporary fail
ure. Command output: ERR: authdaemon: s_connect() failed: Permission denied /usr/lo
cal/bin/maildrop: Temporary authentication failure. )

设置/usr/local/etc/authlib/authdaemonrc
#cp  authdaemonrc authdaemonrc.bak
ee authdaemonrc
在authdaemonrc 加入下面的内容(或修改,我是在原文上修改的)
authmodulelist="authmysql"
authmodulelistorig="authmysql"
version="authdaemond.mysql"
daemons=5
authdaemonvar=/var/run/authdaemond
subsystem=mail
DEBUG_LOGIN=2
DEFAULTOPTIONS="wbnodsn=1"
上面DEBUG_LOGIN=2 是为了调试方便,等系统完全测试完成,可改为 0,即不显示调试信息。

设置/usr/local/etc/authlib/authmysqlrc
#cp authmysqlrc authmysqlrc.bak
ee authmysqlrc
加入下面的内容 (或修改,我是在原文上修改的)


MYSQL_SERVER localhost
MYSQL_USERNAME extmail
MYSQL_PASSWORD extmail
MYSQL_PORT 0
MYSQL_OPT 0
MYSQL_DATABASE extmail

MYSQL_SELECT_CLAUSE SELECT username,password,"",uidnumber,gidnumber,\
CONCAT(&#39;/data/domains/&#39;,homedir), \
CONCAT(&#39;/data/domains/&#39;,maildir), \
quota, \
name \
FROM mailbox \
WHERE username = &#39;$(local_part)@$(domain)&#39;

大家要注意,我的邮件保存的目录是/data/domains ,你可以跟据你的需要改为自己的目录。
用户名和密码是extmail 这个具体需要看extman 软件包中的docs 目录中的extmail.sql,很多人无法通上发信认证,很可能以上面两个文件配置有关。

创建pop3/imap 的配置文件

#cp pop3d.cnf.dist pop3d.cnf
#cp imapd.cnf.dist imapd.cnf


2、安装 Cyrus-SASL2

#cd /usr/ports/security/cyrus-sasl2
#make install WITH_AUTHDAEMON=yes
创建 /usr/local/lib/sasl2/smtpd.conf 加入下面的内容
pwcheck_method:authdaemond
log_level:3
mech_list:PLAIN LOGIN
authdaemond_path:/var/run/authdaemond/socket

检查/usr/local/lib/sasl2/smtpd.conf,这个文件的每一行后面是否多了一些空格,要把空格删除。
很多人无法通上发信认证,很可能与多了一些空格有关。

文章评论

共有 0 位网友发表了评论 此处只显示部分留言 点击查看完整评论页面