当前位置:Linux教程 - Linux综合 - 安装qmail+vpopmail+mysql的详细过程

安装qmail+vpopmail+mysql的详细过程

作者:artxingQQ:artxing 5213598一、准备工作安装solaris9,(这个不用我说了吧,在solaris版有很多贴子讲这个.不会的可以去那里找.)设置主机名为mail.wangxu.com.然后去这里下载安装中需要用到的软件包集合 http://info.868cn.com/download/solaris9-qmail.tar由于solaris安装后并没有gcc,make等,所以必须首先安装它们.安装方法参考南非蜘蛛的这篇贴子.http://chinaunix.net/jh/6/16434.Htmlgcc,make等安装完之后要安装patch-2.5.4-sol8-intel-local.gz(由于http: //sunfreeware.com没有for solaris9的,我就下了个for solaris8的,也可以用) ,至于为什么要装它,我下面再说.安装完patch后,#mv /usr/bin/patch /usr/bin/patch.bak#cp /usr/local/bin/patch /usr/bin/patch (用新安装的patch替换以前系统自带的patch)同时注意,我所提供的软件包集合中的软件都是已经gunzip过的,直接拿来pkgadd就可以了.autoconf,automake,bison,最好也安装,下面编译mysql可能需要它们.二、安装mysql1.安装ncurses# tar xvf ncurses-5.3.tar# cd ncurses-5.3# ./configure# make# make install2.编译安装mysql# tar xvf mysql-4.0.16.tar# useradd -g mysql mysql# cd mysql-4.0.13# CC=gcc CFLAGS="-O3 -fomit-frame-pointer -DHAVE_CURSES_H" \CXX=gcc \CXXFLAGS="-O3 -fomit-frame-pointer -felide-constrUCtors \-fno-exceptions \-fno-rtti -DHAVE_CURSES_H" \# ./configure --prefix=/usr/local/mysql# make# make install# scripts/mysql_install_db# chown -R root /usr/local/mysql# chown -R mysql /usr/local/mysql/var# chgrp -R mysql /usr/local/mysql# cp support-files/my-medium.cnf /etc/my.cnf3.启动mysql# /usr/local/mysql/bin/mysqld_safe --user=mysql &334Starting mysqld daemon with databases from /usr/local/mysql/var# psPID TTY TIME CMD333 pts/1 0:00 sh334 pts/1 0:00 mysqld_s如果看到类似的信息,就说明mysql已经正常启动了.这里可以把/usr/local/mysql/bin加到path中,方便下面运行mysql指令.4.设置mysql启动脚本#cp /usr/local/mysql/share/mysql/mysql.server /etc/init.d/mysqld#ln -s /etc/init.d/mysqld /etc/rc2.d/Kmysqld#ln -s /etc/init.d/mysqld /etc/rc2.d/Smysqld5.修改mysql的root密码# mysqladmin -u root -p passWord wangxu(设置你的密码)Enter passwod:(直接回车)6.mysql的include和lib文件的路径,接下来编译vpopmail时要指定它们include文件:/usr/local/mysql/include/mysqllib文件:/usr/local/mysql/lib/mysql三、安装ucspi-tcp-0.88#tar xvf ucspi-tcp-0.88.tar#cd ucspi-tcp-0.88#patch -p1 < ../ucspi-tcp-0.88.a_record.patch (这里如果之前没有安装patch包的话,你会无法打patch补定.)#patch -p1 < ../ucspi-tcp-0.88.errno.patch#patch -p1 < ../ucspi-tcp-0.88.nobase.patch#make#make setup check四、安装qmail1.下载软件及补丁:2.建立目录:# mkdir /var/qmail# mkdir /var/qmail/alias3.建组及用户:# groupadd nofiles# groupadd qmail# useradd -g nofiles -d /var/qmail/alias alias# useradd -g nofiles -d /var/qmail qmaild# useradd -g nofiles -d /var/qmail qmaill# useradd -g nofiles -d /var/qmail qmailp# useradd -g qmail -d /var/qmail qmailq# useradd -g qmail -d /var/qmail qmailr# useradd -g qmail -d /var/qmail qmails4.打补丁及编绎安装qmail#tar xvf qmail-1.03.tar#tar xvf qmail-smtpd-auth-0.31.tar#cp qmail-smtpd-auth-0.31/base64.* qmail-1.03 //安装smtp-auth补丁,支持smtp认证#patch -d qmail-1.03 < qmail-smtpd-auth-0.31/auth.patch#cd qmail-1.03#patch -p1 < ../qmail-103.patch#patch -p1 < ../qmailqueue-patch#patch -p1 < ../qmail-1.03.qmail_local.patch#vi qmail-smtpd.c //将函数straynewline中的451改为553# make setup check# ./config-fast mail.wangxu.com5.添加别名用户:# touch /var/qmail/alias/.qmail-root# touch /var/qmail/alias/.qmail-postmaster# touch /var/qmail/alias/.qmail-mailer-daemon6.如果存在postfix和sendmail,停用现在的mail服务我是直接删除了sendmail的#pkginfo grep sendmail //找到sendmail的pkg包的名称#pkgrm 包名# ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail#chmod 777 /usr/sbin/sendmail

更多内容请看  DNS&Mail服务器  Mysql安装与卸载专题,或

五、安装vpopmail1.建立目录:#mkdir /home/vpopmail#mkdir /home/vpopmail/etc2.添加用户和组:#groupadd vchkpw#useradd -g vchkpw vpopmail3.添加mysql的vpopmail用户,用于操作vpopmail数据库 #mysql -u root -pwangxu //进入mysql命令行mysql>create database vpopmail;mysql>grant all on vpopmail.* to vpopmail@localhost identified by "wangxu(换成你的密码)";4.编译安装vpopmail#tar xvf vpopmail-5.2.1.tar#cd vpopmail-5.2.1#vi vmysql.h#define MYSQL_UPDATE_SERVER "localhost" (mysql服务器名)#define MYSQL_UPDATE_USER "vpopmail" (用户名)#define MYSQL_UPDATE_PASSWD "wangxu" (改成你设置的密码)#define MYSQL_READ_SERVER "localhost" (mysql服务器名)#define MYSQL_READ_USER "vpopmail" (用户名)#define MYSQL_READ_PASSWD "wangxu" (改成你设置的密码)同时注意vmysql.h的第54行和58行#define TABLE_LAYOUT "pw_name char(32) not null, \pw_domain char(64) not null, <===== 54pw_passwd char(40), \pw_uid int, pw_gid int, \pw_gecos char(48), \pw_dir char(160), <===== 58pw_shell char(20), \primary key (pw_name, pw_domain ) "这里少了两个 \,需要手动添加上,以后编译时才能通过.但这里有个问题,在Linux和freebsd下是不需要修改这里的.所以在这里困扰了一段时间,后来在Google搜索了一下,才找到处理办法.5.创建tcp.smtp文件(或者使用/etc/tcp.smtp)# vi /home/vpopmail/etc/tcp.smtp127.0.0.1:allow,RELAYCLIENT="":allow#cd /home/vpopmail/etc#tcprules tcp.smtp.cdb tcp.smtp.tmp < tcp.smtp6.进行编译:# ./configure --prefix=/home/vpopmail --enable-mysql=y --enable-incdir=/usr/local/mysql/include/mysql --enable-libdir=/usr/local/mysql/lib/mysql --enable-default-domain=wangxu.com --enable-passwd=n --enable-defaultquota=5242880 --enable-tcprules-prog=/usr/local/bin/tcprules --enable-vpopuser=vpopmail --enable-vpopgroup=vchkpw --enable-ip-alias-domains=n\\下面是我使用的参数--prefix=/home/vpopmail \\指定安装路径--enable-mysql=y \\是否应用Mysql数据库--enable-incdir=/usr/local/mysql/include/mysql \\Mysql数据库include文件所在目录--enable-libdir=/usr/local/mysql/lib/mysql \\Mysql数据库lib文件所在目录--enable-default-domain=mydomain.com \\定义虚拟域名--enable-passwd=n \\是否使用系统密码验证方式--enable-defaultquota=5242880 \\定义缺省邮箱大小,10485760为10MB,20971520为20MB,52428800s为50MB--enable-tcprules-prog=/usr/local/bin/tcprules \\指定tcprules目录--enable-tcpserver-file=/home/vpopmail/etc/tcp.smtp \\指定tcprules应用规则文件--enable-vpopuser=vpopmail \\vpopmail的用户--enable-vpopgroup=vchkpw \\vpopmail的组--enable-ip-alias-domains=n \\在虚拟域中允许通过反向IP地址查找虚拟域名# make# make install-strip7.创建虚拟域# cd /home/vpopmail/bin# ./vadddomain 域名 (密码) (在mysql数据库vpopmail中自动生成vpopmail表单)(如果使用与机器名相同的虚拟域名,应先生成一个其它的虚拟域名,不然会有问题,无法自动生成vpopmail数据库)# ./vadduser 用户名 密码 (会自动往表vpopmail中添加用户数据,用户名要带域名,如[email protected])如果不成功的话,则必须先删除创建的域,./vdeldomain 域名如果添加domain时,提示Domain already exists,但却删除domain又提示Domain does not exist.则采用下面的处理方法.删除/var/qmail/control目录下rcpthosts,virtualdomains文件中有关domain的信息;同时删除 /var/qmail/user目录下assign文件中有关domain的信息;然后运行/var/qmail/bin/qmail-newu.这时候就可以正常添加domain了.六、smtp-auth的设置1.修改vchkpw的属性#chmod 4755 vchkpw#chown root:root vchkpw如果使用带验证的smtp,smtp进程要调用密码验证程序,则必须要使用 setuid 和setgid。提高vchkpw的权限,才能完成setgid操作。2.安装cmd5checkpw#tar xvf cmd5checkpw-0.22.tar#cd cmd5checkpw-0.22#make#mkdir /usr/man/man8#make install注意,因为使用vpopmail,所以checkpassword不用安装。

更多内容请看  DNS&Mail服务器  Mysql安装与卸载专题,或

七、生成qmail的启动脚本#cp /var/qmail/boot/home /var/qmail/rc# vi /var/qmail/rc //对rc文件进行修改,以决定投送方式:#!/bin/sh# Using splogger to send the log through syslog. # Using dot-forward to support sendmail-style ~/.forward files.# Using qmail-local to deliver messages to ~/Mailbox by default.exec env - PATH="/var/qmail/bin:$PATH" qmail-start ./Maildir/ splogger qmail &#vi /var/qmail/smtp //编辑smtp服务的启动脚本#!/bin/shQMAILDUID=qmaildNOFILESGID=nofiles/usr/local/bin/tcpserver -H -R -l 0 -t 1 -v -p -x /home/vpopmail/etc/tcp.smtp.cdb -u $QMAILDUID -g $NOFILESGID 0 smtp /var/qmail/bin/qmail-smtpd mail.wangxu.com(换成你的主机名) /home/vpopmail/bin/vchkpw /bin/true /bin/cmd5checkpw /bin/true 2>&1 /var/qmail/bin/splogger smtpd 3 &#vi /var/qmail/pop3 //编辑pop3服务的启动脚本#!/bin/sh/usr/local/bin/tcpserver -l mail.wangxu.com(换成你的主机名) –U -H -R 0 pop3 /var/qmail/bin/qmail-popup mail.wangxu.com(换成你的主机名) /home/vpopmail/bin/vchkpw /var/qmail/bin/qmail-pop3d Maildir &//这里要注意,这三个文件中的命令最好写在一行.#chmod 755 /var/qmail/rc#chmod 755 /var/qmail/smtp#chmod 755 /var/qmail/pop3八、运行qmail并测试#/var/qmail/rc#/var/qmail/smtp#/var/qmail/pop3#ps -ef grep qmail //查看qmail的服务进程是否已完全正常启动如果qmail已正常启动,用Outlook测试qmail的smtp和pop3是否正常,注意由于vpopmail支持虚拟域名,所以在outlook中设置邮件帐号时,用户名后要加上域名,如[email protected]。smtp是带认证的.文档说明:这份文档,是我参考了大量的网友的文章而写成的,在solaris9下测试通过.其间也请教了多位论坛中的朋友,谢谢他们.可能中间有什么问题,请大家帮忙指正,有什么问题请回复.对于这篇文档,网友可以转载,转载时请注明出处.至于qmail系统中其他的qmailadmin,webmail等,我就不再罗列,有兴趣话,大家自行安装.

更多内容请看  DNS&Mail服务器  Mysql安装与卸载专题,或

(出处:http://www.sheup.com)