网站首页|中心简介|课程详解|师资力量|新闻动态|招生问答|就业广场|在线报名|学员天地|网络学院|在线留言|证书查询
大兴北大青鸟logo
北大青鸟教程网
学院首页|网络安全|操作系统|服务器|数据库|编程开发|组网建网|网络应用|网页设计|办公软件|注册表|黑客攻防
WIN XP  |  WIN 2000/2003  |  LINUX/UNIX  |  TCP/IP  |  IPV6  |  APACHE  |  DHCP  |  SENDMAIL  |  WLAN
局域网  |  广域网  |  综合布线  |  网络存储  |  入侵检测  |  防火墙  |  交换机  |  病毒防治
北大青鸟大兴中心QQ在线咨询 北大青鸟大兴中心QQ在线咨询 北大青鸟大兴中心QQ在线咨询 北大青鸟大兴中心QQ在线咨询 北大青鸟大兴中心QQ在线咨询
田老师
李老师
王老师
谈老师
臧老师
   当前位置:主页>网络学院>操作系统>LINUX/UNIX >> 我的qmail安装历程



  我的qmail安装历程

文章来源:http://www.bdqnht.com/ 文章作者:北大青鸟 发布时间:2007-12-15

我的qmail安装历程 

最近公司要开展虚拟主机业务,需要在一台mail服务器上绑定多个域名,于是呢,就想到qmail这位老人家了,照ideal的方法有点问题,就只好去看老外的life with qmail了,hehe 
现在大约讲讲我的安装过程: 
如果系统运行着sendmail就要把sendmail的守护进程杀掉,然后抓了qmail1.03.tar.gz,ucspi-tcp- 0.88.tar.gz,daemontools-0.70.tar.gz这三个包,把他们扔/usr/local/src下面解压开,然后要建一些必要的目录 
cd qmail-1.03 
mkdir /var/qmail 
ln -s /usr/man /var/qmail/man 
mkdir /etc/qmail 
ln -s /etc/qmail /var/qmail/control 
ln -s /usr/sbin /var/qmail/bin 
接着建安装qmail需要的组和用户: 
groupadd nofiles 
useradd alias -g nofiles -d /var/qmail/alias -s /nonexistent 
useradd qmaild -g nofiles -d /var/qmail -s /nonexistent 
字串2

useradd qmaill -g nofiles -d /var/qmail -s /nonexistent 
useradd qmailp -g nofiles -d /var/qmail -s /nonexistent 
groupadd qmail 
useradd qmailq -g qmail -d /var/qmail -s /nonexistent 
useradd qmailr -g qmail -d /var/qmail -s /nonexistent 
useradd qmails -g qmail -d /var/qmail -s /nonexistent 
然后开始编译qmail: 
make setup check 
接着就配置域名了(这个需要你的机器域名能在dns上找到): 
./config(如果确定域名没错,也可以用./config-fast hostname.domainname) 
然后要编译ucspi-tcp: 
进入刚才ucspi-tcp解开的目录,执行: 
make 
make setup check 
接着编译daemontools,也是进入解压的目录,执行 
make 
make setup check 
下来就开始写一些qmail执行必须的脚本了,先是 

字串6


vi /var/qmail/rc 
脚本内容是: 
#!/bin/sh 

# Using stdout for logging 
# Using control/defaultdelivery from qmail-local to deliver messages by default 

exec env - PATH="/var/qmail/bin:$PATH" 
qmail-start "`cat /var/qmail/control/defaultdelivery`" 
最后 
chmod 755 /var/qmail/rc 
echo ./Maildir/ >/var/qmail/control/defaultdelivery(我用的是Maildir) 
然后就是log文件了: 
mkdir /var/log/qmail 
mkdir -p /var/qmail/supervise/qmail-send/log 
mkdir -p /var/qmail/supervise/qmail-smtpd/log 
chmod +t /var/qmail/supervise/qmail-send 
chmod +t /var/qmail/supervise/qmail-smtpd 
建立/var/qmail/supervise/qmail-send/run文件,内容为: 
#!/bin/sh 
字串6

exec /var/qmail/rc 
建立/var/qmail/supervise/qmail-send/log/run文件,内容为: 
#!/bin/sh 
exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t /var/log/qmail 
建立/var/qmail/supervise/qmail-smtpd/run文件,内容: 
#!/bin/sh 
QMAILDUID=`id -u qmaild` 
NOFILESGID=`id -g qmaild` 
MAXSMTPD=`cat /var/qmail/control/concurrencyincoming` 
exec /usr/local/bin/softlimit -m 2000000 
/usr/local/bin/tcpserver -v -p -x /etc/tcp.smtp.cdb 
-c "$MAXSMTPD" -u "$QMAILDUID" -g "$NOFILESGID" 0 smtp /var/qmail/bin/qmail-smtpd 2>&1 
建立/var/qmail/supervise/qmail-smtpd/log/run文件,内容: 
#!/bin/sh 
exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t /var/log/qmail/smtpd  字串4
把以上四个run文件chmod 755 
然后执行: 
echo 20 > /var/qmail/control/concurrencyincoming 
chmod 644 /var/qmail/control/concurrencyincoming 
来建立qmail必须的concurrencyincoming文件 
同时建立标准的log目录: 
mkdir -p /var/log/qmail/smtpd 
chown qmaill /var/log/qmail /var/log/qmail/smtpd 
最关键的一步是建立qmail控制脚本,建立/etc/rc.d/init.d/qmail这个文件,内容: 
脚本的HELP那块有些折行,尽量把他们弄一行. 
#!/bin/sh 

PATH=/var/qmail/bin:/usr/local/bin:/usr/bin:/bin 
export PATH 

case "$1" in 
start) 
echo -n "Starting qmail: svscan" 
cd /var/qmail/supervise 
env - PATH="$PATH" svscan & 
echo $! > /var/run/svscan.pid 
echo "." 
字串8


stop) 
echo -n "Stopping qmail: svscan" 
kill `cat /var/run/svscan.pid` 
echo -n " qmail" 
svc -dx /var/qmail/supervise/* 
echo -n " logging" 
svc -dx /var/qmail/supervise/*/log 
echo "." 

stat) 
cd /var/qmail/supervise 
svstat * */log 

doqueue|alrm) 
echo "Sending ALRM signal to qmail-send." 
svc -a /var/qmail/supervise/qmail-send 

queue) 
qmail-qstat 
qmail-qread 

reload|hup) 
echo "Sending HUP signal to qmail-send." 
svc -h /var/qmail/supervise/qmail-send 

pause) 
echo "Pausing qmail-send" 

字串2


svc -p /var/qmail/supervise/qmail-send 
echo "Pausing qmail-smtpd" 
svc -p /var/qmail/supervise/qmail-smtpd 

cont) 
echo "Continuing qmail-send" 
svc -c /var/qmail/supervise/qmail-send 
echo "Continuing qmail-smtpd" 
svc -c /var/qmail/supervise/qmail-smtpd 

restart) 
echo "Restarting qmail:" 
echo "* Stopping qmail-smtpd." 
svc -d /var/qmail/supervise/qmail-smtpd 
echo "* Sending qmail-send SIGTERM and restarting." 
svc -t /var/qmail/supervise/qmail-send 
echo "* Restarting qmail-smtpd." 
svc -u /var/qmail/supervise/qmail-smtpd 

cdb) 
tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp 

字串8


chmod 644 /etc/tcp.smtp* 
echo "Reloaded /etc/tcp.smtp." 

help) 
cat < 
stop -- stops mail service (smtp connections refused, nothing goesout) 
start -- starts mail service (smtp connection accepted, mail cangoout) 
pause -- temporarily stops mail service (connections accepted,nothing leaves) 
cont -- continues paused mail service 
stat -- displays status of mail service 
cdb -- rebuild the tcpserver cdb file for smtp 
restart -- stops and restarts smtp, sends qmail-send a TERM &restarts it 
doqueue -- sends qmail-send ALRM, scheduling queued messages fordelivery  字串9
reload -- sends qmail-send HUP, rereading locals and virtualdomains 
queue -- shows status of queue 
alrm -- same as doqueue 
hup -- same as reload 
HELP 

*) 
echo "Usage: $0 {start|stop|restart|doqueue|reload|stat|pause|cont|cdb|queue|help}" 
exit 1 

esac 

exit 0 
然后建立软连接让各个启动级别能不同的需要使用qmail控制脚本 
ln -s qmail /etc/rc.d/rc0.d/K30qmail 
ln -s qmail /etc/rc.d/rc1.d/K30qmail 
ln -s qmail /etc/rc.d/rc2.d/S80qmail 
ln -s qmail /etc/rc.d/rc3.d/S80qmail 
ln -s qmail /etc/rc.d/rc4.d/S80qmail 
ln -s qmail /etc/rc.d/rc5.d/S80qmail 
ln -s qmail /etc/rc.d/rc6.d/K30qmail  字串7
然后就要建立qmail的访问控制文件了,执行 
echo '127.:allow,RELAYCLIENT=""' >>/etc/tcp.smtp 
/etc/rc.d/init.d/qmail cdb 
如果不要旧的sendmail就用rpm -e --nodeps sendmail反安装吧。 
然后用qmail的一些库文件替换掉旧的sendmail: 
mv /usr/lib/sendmail /usr/lib/sendmail.old 
mv /usr/sbin/sendmail /usr/sbin/sendmail.old 
chmod 0 /usr/lib/sendmail.old /usr/sbin/sendmail.old 
ln -s /var/qmail/bin/sendmail /usr/lib 
ln -s /var/qmail/bin/sendmail /usr/sbin 
接着建立系统的一些alias(比如我要用grind来起qmail): 
echo grind > /var/qmail/alias/.qmail-root 
echo grind > /var/qmail/alias/.qmail-postmaster 
ln -s .qmail-postmaster /var/qmail/alias/.qmail-mailer-daemon 
chmod 644 /var/qmail/alias/.qmail-root  字串7
chmod 644 /var/qmail/alias/.qmailpostmaster 
最后就能用/etc/rc.d/init.d/qmail start来启动qmail了。 
接下去的绑定多域名就靠vpopmail来了,vpopmail能实现系统用户和邮件用户的分离,安装过程如下: 
先建立vpopmail的用户和组: 
groupadd vchkpw 
useradd -g vchkpw vpopmail -d /home/vpopmail 
然后建立访问控制文件: 
设置tcp.smtp文件 
echo "127.0.0.:allow,RELAYCLIENT=""" > ~vpopmail/etc/tcp.smtp 
接着用非root用户解压vpopmail的压缩包: 
$tar zxvf vpopmail-4.9.tar.gz 
$cd vpopmail-4.9 
$./configure --enable-default-domain=youdomainname 
$make 
$su 
#make install-strip 
接着建立虚拟域 
#cd /home/vpopmail/bin 
# ./vadddomain youdomain 
系统会提醒你输入这个域的管理员的密码。然后程序会修改下面一些必要的qmail配置文件 来使得qmail能支持这个新的域: 

字串5


/var/qmail/control/locals 
/var/qmail/control/rcpthosts 
/var/qmail/control/virtualdomains 
/var/qmail/users/assign 
/var/qmail/users/cdb 
然后就可以增加/删除用户/改变用户密码 
* 增加用户 
# cd /home/vpopmail/bin 
# ./vadduser grind@host.domain 
系统会提示输入密码 
* 删除用户 
# cd /home/vpopmail/bin 
# ./deluser grind@host.domain 
* 改变用户密码 
# cd /home/vpopmail/bin 
# ./vpasswd grind@host.domain 
设置vpopmail的POP3服务需要用到qmail中的qmail-popup,qmail-pop3d和vpopmail的vchkpw程序。 我们使用下面的脚本来启动pop3服务: 
#! /bin/bash 
# Start qmail-pop3d daemon 
/usr/local/bin/tcpserver 0 110 /var/qmail/bin/qmail-popup yourhost.yourdomain /home/vpopmail/bin/vchkpw /var/qmail/bin/ 
字串2

qmail-pop3d Maildir & 
我们把这个脚本存为文件/etc/rc.d/rc.pop3,并且使用chmod命令使之可以执行。 
最后把启动qmail和pop3服务的代码放到启动文件中,让机器每次启动的时候自动运行。把下面几行命 令写到/etc/rc.d/rc.local文件的末尾: 
# Start qmail smtpd 
/usr/local/sbin/qmail start 

# Start POP3 Service 
/etc/rc.d/rc.pop3 
现在确保你的inetd.conf里面有关pop3的一行已经被注释掉。然后就使用/etc/rc.d/rc.pop3命令来启动POP3服务器。 
这样一个qmail系统就7788了,可以用outlook等来收发信件了,千万记得用户名要是 
user@host.domain的格式,而不是单单user的形式,不然不能用. 
还有什么vqsignup,能用web方式注册用户,sqwebmail能用web方式收信,不过还不知道怎么用web方式让用户改自己的密码,这个希望有做过的同志交流交流。



  注:本站资源收集均来子互联网,如有侵权请告知,我们将第一时间删除.
  
上一篇: 安全管理的四个方面   下一篇: apache+php+mysql

::免费IT讲座::

时间:周六、日 下午14:00
地点:北大青鸟大兴校区
讲座内容:
     1、职业规划篇。
     2、日常实用技术讲座

主讲师:
     高级金牌讲师
 
大兴校区电话:69203100
 马甸校区电话:82011433
 
             免费订座报名

::免费讲座报名::
姓  名:
性  别:
学  历:
Q  Q:
电  话:
我是从:
知道的



北大青鸟|网络工程师|北京北大青鸟
  友情链接:北大青鸟集团 印度APTECH公司 北大青鸟APTECH公司 北京大学 北大青鸟马甸校区 上海北大青鸟 深圳北大青鸟 无锡北大青鸟 厦门北大青鸟 深圳北大青鸟 邵阳北大青鸟 北大青鸟镇江学府 深圳北大青鸟 徐州北大青鸟
中心图片
中心外景 前台接待区 网络教学区 路由及交换设备 机房环境 项目实践 职业规划师为同学解惑 学员积极回答问题 学员合影 学生宿舍 全国十佳中心奖杯 全国十佳中心奖牌 杰出贡献中心奖杯
  网站地图 | 联系我们 | 诚聘英才 | 在线留言 | 加入收藏 | 设为首页
 

版权所有 © 2004-2008 北京网络时尚信息技术有限公司
北大青鸟双合华腾网络工程师培训中心
大兴校区:大兴黄村长途汽车站东北角
招生热线:010-69203100/01 邮政编码:102600
马甸校区:北三环中路马甸桥东北角商房大厦(国美电器)626
招生热线:010-82011433/32 邮政编码:100029

网络工程师培训 网络工程师 北大青鸟培训 北大青鸟培训中心 网络培训
北大青鸟 北大青鸟网络工程师 北京北大青鸟 电脑培训 计算机培训
北大青鸟图标