| 在solaris9下安装qmail+vpopmail+mysql的详细过程 |
荐 |
| 在solaris9下安装qmail+vpopmail+mysql的详细过程 |
|
| |
|
在solaris9下安装qmail+vpopmail+mysql的详细过程
作者:artxing QQ:artxing 5213598
一、准备工作 安装solaris9,(这个不用我说了吧,在solaris版有很多贴子讲这个.不会的可以去那里找.)设置主机名为mail.wangxu.com.
然后去这里下载安装中需要用到的软件包集合 http://61.143.101.47/qmail/solaris9-qmail.tar
由于solaris安装后并没有gcc,make等,所以必须首先安装它们.安装方法参考南非蜘蛛的这篇贴子. http://chinaunix.net/jh/6/16434.html
gcc,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可能需要它们.
二、安装mysql
1.安装ncurses # tar xvf ncurses-5.3.tar # cd ncurses-5.3 # ./configure # make # make install 2.编译安装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.cnf
3.启动mysql
# /usr/local/mysql/bin/mysqld_safe --user=mysql & 334 Starting mysqld daemon with databases from /usr/local/mysql/var # ps PID TTY TIME CMD 333 pts/1 0:00 sh 334 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/Smysqld
5.修改mysql的root密码 # mysqladmin -u root -p password wangxu(设置你的密码) Enter passwod:(直接回车)
6.mysql的include和lib文件的路径,接下来编译vpopmail时要指定它们 include文件:/usr/local/mysql/include/mysql lib文件:/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
四、安装qmail
1.下载软件及补丁: 2.建立目录: # mkdir /var/qmail # mkdir /var/qmail/alias 3.建组及用户: # 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 qmails
4.打补丁及编绎安装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.com
5.添加别名用户: # touch /var/qmail/alias/.qmail-root # touch /var/qmail/alias/.qmail-postmaster # touch /var/qmail/alias/.qmail-mailer-daemon 6.如果存在postfix和sendmail,停用现在的mail服务
我是直接删除了sendmail的 #pkginfo |grep sendmail //找到sendmail的pkg包的名称 #pkgrm 包名
# ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail #chmod 777 /usr/sbin/sendmail
五、安装vpopmail 1.建立目录: #mkdir /home/vpopmail #mkdir /home/vpopmail/etc
2.添加用户和组: #groupadd vchkpw #useradd -g vchkpw vpopmail 3.添加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, <===== 54 pw_passwd char(40), \ pw_uid int, pw_gid int, \ pw_gecos char(48), \ pw_dir char(160), <===== 58 pw_shell char(20), \ primary key (pw_name, pw_domain ) "
这里少了两个 \,需要手动添加上,以后编译时才能通过.但这里有个问题,在linux和freebsd下是不需要修改这里的.所以在这里困扰了一段时间,后来在google搜索了一下,才找到处理办法.
5.创建tcp.smtp文件(或者使用/etc/tcp.smtp) # vi /home/vpopmail/etc/tcp.smtp
127.0.0.1:allow,RELAYCLIENT="" :allow
#cd /home/vpopmail/etc #tcprules tcp.smtp.cdb tcp.smtp.tmp < tcp.smtp
6.进行编译: # ./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-strip
7.创建虚拟域 # cd /home/vpopmail/bin # ./vadddomain 域名 (密码) (在mysql数据库vpopmail中自动生成vpopmail表单) (如果使用与机器名相同的虚拟域名,应先生成一个其它的虚拟域名,不然会有问题,无法自动生成vpopmail数据库) # ./vadduser 用户名 密码 (会自动往表vpopmail中添加用户数据,用户名要带域名,如demo@demo.com) 如果不成功的话,则必须先删除创建的域,./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不用安装。
七、生成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/sh QMAILDUID=qmaild NOFILESGID=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中设置邮件帐号时,用户名后要加上域名,如wangxu@wangxu.com。smtp是带认证的.
文档说明:
这份文档,是我参考了大量的网友的文章而写成的,在solaris9下测试通过.其间也请教了多位论坛中的朋友,谢谢他们.可能中间有什么问题,请大家帮忙指正,有什么问题请回复.
对于这篇文档,网友可以转载,转载时请注明出处.
至于qmail系统中其他的qmailadmin,webmail等,我就不再罗列,有兴趣话,大家自行安装. Linux联盟收集整理
 |
频道声明:本频道的文章除部分特别声明禁止转载的专稿外,可以自由转载.但请务必注明出出处和原始作者 文章版权归本频道与文章作者所有.对于被频道转载文章的个人和网站,我们表示深深的谢意。
| 原始作者:佚名 |
录入时间:2007-1-2 2:41:49 |
| 信息来源:不详 |
投稿信箱:itqoo@126.com |
|
|
 |
|
|
|
| 教程录入:itqoo 责任编辑:itqoo |
|
上一个教程: solaris系统安全防范措施
下一个教程: 用iso盘无光驱网络安装solaris9 sparc |
| 【字体:小 大】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 |