分享
 
 
 

在solaris9下安装qmail+vpopmail+mysql的详细过程

王朝mysql·作者佚名  2008-05-18
窄屏简体版  字體: |||超大  

作者:artxing

QQ:artxing 5213598

一、准备工作

安装solaris9,(这个不用我说了吧,在solaris版有很多贴子讲这个.不会的可以去那里找.)设置主机名为mail.wangxu.com.

然后去这里下载安装中需要用到的软件包集合

http://info.868cn.com/download/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等,我就不再罗列,有兴趣话,大家自行安装.

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有