Linux下源码搭建extmail邮件服务器
Extmail 是一个以perl语言编写,面向大容量/ISP级应用,它是一款免费的高性能Webmail软件满足用户多变的需求,能快速进行开发、改进和升级,支持Maildir,索引技术,速度超快。支持多国语言同屏显示,支持巨型邮箱(超过1GB)海量文件,支持无限尺寸附件,I/O能力强,模板化,多语言,修改非常容易。适应能力强的webmail系统对于国内的电子邮件系统来说,无论是从系统功能、易用性还是中文化等方面,ExtMail 平台都是一个相当不错的选择。其工作原理如下图所示:一.准备工作1.准备工具apr-1.4.6.tar.gz apr-util-1.5.1.tar.gzhttpd-2.4.4.tar.bz2 courier-authlib-0.65.0.20130314.tar.bz2mysql-5.5.15-linux2.6-i686.tar.gzpostfix-2.8.2.tar.gz dovecot-2.0.16.tarextmail-1.2.tar.gz Unix-Syslog-1.1.tar.gzextman-1.1.tar.gz 2.准备开发环境# mkdir /mnt/cdrom 建立光盘挂载点# mount /dev/cdrom/mnt/cdrom 挂载光盘# vim /etc/yum.repos.d/rhel-debuginfo.repo 编辑yum客户端构建一个repoid# yum grouplist 检查开发环境注:软件依赖这几个开发环境,如果预先没有安装开发环境的话,可以用yum进行安装。二.软件包的安装1.安装apache# tar -zxvf apr-1.4.6.tar.gz -C /usr/local/src/ 拆解apr软件包# cd /usr/local/src/apr-1.4.6/# ./configure --prefix=/usr/local/apr把apr安装到/usr/local/apr目录下#make#make install# cd # tar -zxvf apr-util-1.5.1.tar.gz -C /usr/local/src/拆解apr-util软件包# cd apr-util-1.5.1/# ./configure --with-apr=/usr/local/apr/bin/apr-1-config # make# make install# cd# tar -jxvf httpd-2.4.4.tar.bz2 -C /usr/local/src/ 拆解httpd软件包# cd /usr/local/src/httpd-2.4.4/ 进入拆解的apache目录# ./configure --prefix=/usr/local/apache--sysconfdir=/etc/httpd--enable-so --enable-ssl--enable-rewrite--with-apr=/usr/local/apr/bin/apr-1-config --with-apr-util=/usr/local/apr/bin/apu-1-config --with-pcre-with-z --enable-mpms-shared=all# make# make install#cd /usr/local/apache/man# vim /etc/man.config 把apache的man手册添加到man路径方便查看apache的man手册# ln -s /usr/local/apache/include/ /usr/include/apache为apache的头文件做一个符号链接# cd /etc/init.d/# vim httpd 编辑apache的启动脚本脚本如下#!/bin/sh#set -x HTTPD='/usr/local/apache/bin/httpd'CONFFILE='/etc/httpd/httpd.conf'#description: http server#chkconfig: 2345 88 60 start(){ [ -f /var/lock/subsys/httpd ]&& echo "apache is started" && exit echo -n"starting apache......" sleep1 $HTTPD-f $CONFFILE && RETVAL=0 ||RETVAL=1 [ $RETVAL -eq 0 ]&& touch /var/lock/subsys/httpd && echo "ok" || echo "fail" }stop(){ [ ! -f/var/lock/subsys/httpd ] && echo "httpd is stoped..." && exit echo -n "stoping httpd........" sleep1 /bin/rm -rf /var/lock/subsys/httpd $HTTPD -kstop&& RETVAL=0 ||RETVAL=1 [ $RETVAL -eq 0 ] && rm -rf /var/lock/subsys/httpd && echo "ok" || echo "fail"}case $1 instart) start ;;stop) stop ;;restart) stop start ;;*) echo "start|stop|restart" ;;esac# chmod a+x /etc/init.d/httpd 为apache服务添加可执行权限# service httpd start 启动apache服务# netstat -tupln |grep http查看80端口是否启动# chkconfig --add httpd添加自启动# chkconfig --list|grep http 查看添加开机启动是否成功2.安装cmake安装mysql的时候需要用到cmake工具# tar -zxvf cmake-2.8.10.2.tar.gz -C /usr/local/src/ # cd /usr/local/src/cmake-2.8.10.2/ # ./configure --prefix=/usr/local/cmake # make && make install Waiting....................... # cd /usr/local/cmake/ 为了日后能快速访问cmake下的bin,把cmke下的bin添加路径 # vim /etc/profile 注:只有下次进入之后路径才会添加成功。3.安装mysql# tar zxvf mysql-5.6.10.tar.gz -C /usr/local/src/# cd /usr/local/src/mysql-5.6.10/# less INSTALL-SOURCE mysql的使用说明,我们可以按照安装说明进行安装。
# cd /usr/local/src/mysql-5.6.10/# cmake .# make&&make install这个是很耗时的。Pleasewaitingforalong time。。。。。。。。。。。。。。。。。。。。。。。。。。# cd /usr/local/src/mysql-5.6.10/# less INSTALL-SOURCEMysql安装说明中的配置的步骤
# cd /usr/local/mysql/创建帐号信息# groupadd mysql# useradd -r -g mysql mysql# chown -R mysql .进行初始化# scripts/mysql_install_db--user=mysql# chown -R root .# chown -R mysql data# cd support-files/# cp my-default.cnf /etc/my.cnf# cp mysql.server /etc/init.d/mysqld# chmod a+x/etc/init.d/mysqld # service mysqld startStarting MySQL..... mysqld 服务成功启动# netstat -tupln |grep mysqld# cd ..# pwd/usr/local/mysql# vim /etc/profile# . /etc/profile# mysqlmysql> show databases;+--------------------+| Database |+--------------------+| information_schema || mysql || performance_schema || test |+--------------------+4 rows in set (0.00 sec)# mysqladmin -u root -p password '123'设置一个管理员帐号密码123# mysql -u root -p以后就可以以此帐号登陆了注:mysql生成的/usr/local/mysql/lib库文件不是标准路径系统无法识别(/lib 或者/usr/lib为标准路径)所以需做如下配置# vim /etc/ld.so.conf.d/mysql.conf写入/usr/local/mysql/lib# ldconfig# ln -s /usr/local/mysql/include/ /usr/include/mysql 对mysql的头文件include做一个连接
4.安装dns服务器# yum install -ybindbind-chroot caching-nameserver# service mysqld start这里创建本地域126.com 邮件服务器域mail.126.com本机地址192.168.126.129# cd /var/named/chroot/etc/# cp -p named.caching-nameserver.confnamed.conf# vim named.conf编辑dns配置# vim named.rfc1912.zones 编辑区域的声明文件# cd /var/named/chroot/var/named/# cp -p localhost.zone126.com.zone生成区域文件# vim 126.com.zone编辑区域文件# service named start启动dns# chkconfig named on添加自启动# vim /etc/resolv.conf dns指向# vim /etc/sysconfig/network 修改主机名(邮件服务器)# vim /etc/hosts 修改hosts文件# hostname mail.126.com 重新启动,或者修改下主机名# nslookup mail.126.com 查看dns解析# dig -t mx 126.com 测试126.com区域的邮局一切正常。。。5.安装postfix# service sendmil stop# chkconfig sendmail off 如果安装了sendmail,要先把sendmail服务关闭# tar -zxvf postfix-2.8.2.tar.gz -C /usr/local/src/# cd /usr/local/src/postfix-2.8.2/没有configure文件可以改变makefile文件来代替configure注:Postfix是一种服务,需要为其添加帐号。# groupadd -g 2121postfix 添加postfix组,组id 2121# useradd -u 2121 -g postfix -s /sbin/nologin-M postfix 创建账号 用户名postfix 组的名字postfix# groupadd -g 2122postdrop# useradd -u 2122 -g postfix -s /sbin/nologin-M postdrop 为队列管理服务创建帐号# make makefiles 'CCARGS=-DHAS_MYSQL -I/usr/include/mysql -DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I/usr/include/sasl-DUSE_TLS ' 'AUXLIBS=-L/usr/local/mysql/lib -lmysqlclient -lz -lm -L/usr/lib/sasl2 -lsasl2 -lssl –lcrypto'注:(没有configure文件可以改变makefile文件来代替configure这条命令相当于./configure)# make# make install其他的都可以直接回车默认值就行注:之后会生成etc目录下aliases,这个文件是和sendmail结合的,为了让其与postfix结合,执行一下# /usr/bin/newaliases 执行说明:这里调用redhat系统自带的启动脚本。由于postfix安装的时候基本都是默认安装,路径都是默认路径,所以使用系统自带的脚本没问题,基本不用修改就能用。# mkdir /tmp/abc# cd /tmp/abc/# cp /mnt/cdrom/Server/postfix-2.3.3-2.1.el5_2.i386.rpm ./ 把光盘上的拷贝过来# rpm2cpiopostfix-2.3.3-2.1.el5_2.i386.rpm |cpio -id拆解postfix包# cd etc# cd rc.d# cd init.d# cp -p postfix/etc/init.d/ 拷贝配置文件# service postfix start 启动postfix服务# netstat -tupln |grep 25# vim /etc/postfix/main.cf# service postfix restart重启服务# useradd user1添加user1用户# passwd user1为user1用户添加密码123# telnet 127.0.0.1 25 向user1发送一封测试邮件查看user1是否收到邮件了# su – user1 以user1用户登录查看邮件$ mail注:Postfix身份验证功能需要结合sasl# cd /usr/lib/sasl2/# cp -p Sendmail.conf smtpd.conf# vim smtpd.conf 编辑其配置文件# service saslauthd start启动sasl# chkconfig saslauthd on设置为开机启动# vim /etc/postfix/main.cf 要想sasl对smtp生效,需要添加sasl的一些验证语句# service postfix restart重启postfix服务
6.安装courier-authlib# tar -jxvf courier-authlib-0.63.1.20111230.tar.bz2 -C /usr/local/src/# cd /usr/local/src/courier-authlib-0.63.1.20111230/# ./configure--prefix=/usr/local/courier-authlib--sysconfdir=/etc --with-authmysql --with-mysql-libs=/usr/local/mysql/lib/ --with-mysql-includes=/usr/include/mysql --with-redhat --with-authmysqlrc=/etc/authmysqlrc --with-authdaemonrc=/etc/authdaemonrc --with-ltdl-lib=/usr/lib --with-ltdl-include=/usr/include# make # make install# service postfix restart# cp authdaemonrc.dist authdaemonrc验证时使用的模块# cp authmysqlrc.dist authmysqlrc# vim authdaemonrc# vim authmysqlrchttp://img1./attachment/201306/3/6758400_1370275457hlbq.pnghttp://img1./attachment/201306/3/6758400_1370275488F8lT.pnghttp://img1./attachment/201306/3/6758400_1370275489p4va.pnghttp://img1./attachment/201306/3/6758400_1370275494MUS1.png# cd /usr/local/src/courier-authlib-0.63.1.20111230/#cp courier-authlib.sysvinit/etc/init.d/courier-authlib 拷贝启动脚本# chmod a+x /etc/init.d/courier-authlib 修改权限可执行# chkconfig courier-authlib on添加开机启动# service courier-authlib start启动courier-authlib# cd /usr/local/courier-authlib/# vim /etc/ld.so.conf.d/courier-authlib.conf导入库文件# ldconfig# ldconfig -pv |grep courie# cd ..# ln -s /usr/local/courier-authlib/include/ /usr/include/courier-authlib对头文件做一个符号链接# vim /etc/postfix/main.cf添加如下内容以便让postfix支持虚拟域和虚拟账号新建虚拟用户邮箱所在的目录,并将其权限赋予postfix用户# mkdir -pv /var/mailbox# chown -R postfix /var/mailbox重新配置SMTP 认证# vim /usr/lib/sasl2/smtpd.conf 7.安装extman# tar -zxvf extman-1.1.tar.gz # cd extman-1.1# cd docs/# mysql -u root -p <extmail.sql 导入数据库# mysql -u root -p <init.sql # mysql -u root -p 登陆数据库进行账号授权mysql>GRANT all privileges on extmail.* TO extmail@localhost IDENTIFIED BY 'extmail';mysql>GRANT all privileges on extmail.* TO extmail@127.0.0.1 IDENTIFIED BY 'extmail';mysql> FLUSH PRIVILEGES;刷新授权# cp mysql_virtual_*/etc/postfix/# service postfix restart重启postfix服务8.安装dovecot# useradd-M-s/sbin/nologindovecot 创建账号# cd /usr/local/src/dovecot-2.0.16/# ./configure --sysconfdir=/etc--with-mysql#make#make install#cd /usr/local/share/doc/dovecot/# cp example-config/dovecot.conf/etc/dovecot/dovecot.conf
# vim /etc/dovecot-mysql.conf 创建mysql.conf文件,让dovecot与mysql进行结合# vim/etc/postfix/main.cfhttp://img1./attachment/201306/3/6758400_1370275566A6SS.png9.安装extmail# tar -zxvf extmail-1.2.tar.gz # mkdir -pv /var/www/extsuite# mv extman-1.1/var/www/extsuite/extman#mv extmail-1.2/var/www/extsuite/extmail# cd /var/www/extsuite/extmail/# cp webmail.cf.default webmail.cf# vim webmail.cf注:Apache和extmail的结合是靠cgi进行的# vim /etc/httpd/conf/httpd.conf 修改apache配置虚拟主机# chown -R postfix.postfix /var/www/extsuite/extmail/cgi/修改 cgi执行文件属主为apache运行身份用户# service httpd restartextmail将会用到perl的Unix::syslogd功能,把补丁打上去# tar zxvf Unix-Syslog-0.100.tar.gz-C /usr /local/src/ Unix-Syslog-0.100# cd Unix-Syslog-0.100# perl Makefile.PL# make# make install# cd /var/www/extsuite/extman/#cp webman.cf.default webman.cf#vim webman.cf# chown -R postfix.postfix /var/www/extsuite/extman/cgi/ 修改cgi目录的属主# vim /etc/httpd/conf/httpd.conf# service httpd restart三、登录管理启动各种服务地址栏输入http://192.168.126.129/extmail选择管理即可登入extman进行后台管理了。默认管理帐号为:root@extmail.org密码为:extmail*123*之后就可以进行管理了。
我是个凑数的。。。 长得真有创意,活得真有勇气! 月经不仅仅是女人的痛苦,也是男人的痛苦。 解释就系掩饰,掩饰等于无出色,无出色不如回家休息!!! 怀揣两块,胸怀500万! 我身在江湖,江湖里却没有我得传说。
页:
[1]