我的QMAIL安装过程

#英文安装教程:http://lifewithqmail.org/lwq.html#installation-issues
#回到工作主目录,我喜欢回到主目录后开始工作的。
    cd
#下载要安装的软件
    wget http://www.qmail.org/netqmail-1.06.tar.gz
    wget http://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz
    wget http://cr.yp.to/daemontools/daemontools-0.76.tar.gz
#将下载的文件,复制到。。
    umask 022
    mkdir -p /usr/local/src
    mv netqmail-1.06.tar.gz ucspi-tcp-0.88.tar.gz /usr/local/src
    mkdir -p /package
    mv daemontools-0.76.tar.gz /package
    chmod 1755 /package

#解包
    cd /usr/local/src
    tar xzvf netqmail-1.06.tar.gz
    tar xzvf ucspi-tcp-0.88.tar.gz
    #rm -f *.gz      # optional, unless space is very tight
    cd /package
    tar xzvf daemontools-0.76.tar.gz
    #rm -f *.gz      # optional, again
#创建目录
    mkdir /var/qmail
#增加用户 
    groupadd nofiles  
    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
    groupadd qmail 
    useradd -g qmail -d /var/qmail qmailq
    useradd -g qmail -d /var/qmail qmailr
    useradd -g qmail -d /var/qmail qmails#编译及设置
    cd /usr/local/src/netqmail-1.06
    make setup check
    ./config-fast gdbook.com
#安装 ucspi-tcp
    cd /usr/local/src/ucspi-tcp-0.88
    patch < /usr/local/src/netqmail-1.06/other-patches/ucspi-tcp-0.88.errno.patch
    make
    make setup check
#安装 daemontools
    cd /package/admin/daemontools-0.76
    cd src
    patch < /usr/local/src/netqmail-1.06/other-patches/daemontools-0.76.errno.patch
    cd ..
    package/install
#编辑/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`"
#/
##################################################################
#注意:上面脚本使用的 (`), not single quotes (').
##################################################################
#继续
    chmod 755 /var/qmail/rc
    mkdir /var/log/qmail 
    echo ./Maildir/ >/var/qmail/control/defaultdelivery
#创建启动脚本,先下载,后改名
    wget http://lifewithqmail.org/qmailctl-script-dt70
    mv qmailctl-script-dt70 /var/qmail/bin/qmailctl

    chmod 755 /var/qmail/bin/qmailctl
    ln -s /var/qmail/bin/qmailctl /usr/bin

#脚本
    mkdir -p /var/qmail/supervise/qmail-send/log
    mkdir -p /var/qmail/supervise/qmail-smtpd/log

#创建 /var/qmail/supervise/qmail-send/run 脚本文件:

    echo '#!/bin/sh'>/var/qmail/supervise/qmail-send/run
    echo 'exec /var/qmail/rc'>>/var/qmail/supervise/qmail-send/run

#创建 /var/qmail/supervise/qmail-send/log/run 脚本文件:

    echo '#!/bin/sh'>/var/qmail/supervise/qmail-send/log/run
    echo 'exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t /var/log/qmail'>>/var/qmail/supervise/qmail-send/log/run

#创建 /var/qmail/supervise/qmail-smtpd/run file:

#!/bin/sh

QMAILDUID=`id -u qmaild`
NOFILESGID=`id -g qmaild`
MAXSMTPD=`cat /var/qmail/control/concurrencyincoming`
LOCAL=`head -1 /var/qmail/control/me`

if [ -z "$QMAILDUID" -o -z "$NOFILESGID" -o -z "$MAXSMTPD" -o -z "$LOCAL" ]; then
    echo QMAILDUID, NOFILESGID, MAXSMTPD, or LOCAL is unset in
    echo /var/qmail/supervise/qmail-smtpd/run
    exit 1
fi

if [ ! -f /var/qmail/control/rcpthosts ]; then
    echo "No /var/qmail/control/rcpthosts!"
    echo "Refusing to start SMTP listener because it'll create an open relay"
    exit 1
fi

exec /usr/local/bin/softlimit -m 2000000 /
    /usr/local/bin/tcpserver -v -R -l "$LOCAL" -x /etc/tcp.smtp.cdb -c "$MAXSMTPD" /
        -u "$QMAILDUID" -g "$NOFILESGID" 0 smtp /var/qmail/bin/qmail-smtpd 2>&1

 

--------------------------------------------------------------------------------
Note: concurrencyincoming isn't a standard qmail control file. It's a feature of the above script. Also, that's -1 (dash one) on the LOCAL line and -l (dash ell) on the tcpserver line.
--------------------------------------------------------------------------------

 


--------------------------------------------------------------------------------
Note: The memory limit specified in the softlimit command may need to be raised depending upon your operating system and hardware platform. If attempts to connect to port 25 fail or remote systems are unable to send you mail, or you see a message like:

  /usr/local/bin/tcpserver: error while loading shared libraries:
  libc.so.6: failed to map segment from shared object: Cannot
  allocate memory

try raising it to 3000000 or 4000000.

 

--------------------------------------------------------------------------------


#创建 concurrencyincoming control file:

    echo 20 > /var/qmail/control/concurrencyincoming
    chmod 644 /var/qmail/control/concurrencyincoming

#创建 /var/qmail/supervise/qmail-smtpd/log/run file:

    echo '#!/bin/sh'>/var/qmail/supervise/qmail-smtpd/log/run
    echo 'exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t /var/log/qmail/smtpd'>>/var/qmail/supervise/qmail-smtpd/log/run


#设置上面几个文件的权限:
    chmod 755 /var/qmail/supervise/qmail-send/run
    chmod 755 /var/qmail/supervise/qmail-send/log/run
    chmod 755 /var/qmail/supervise/qmail-smtpd/run
    chmod 755 /var/qmail/supervise/qmail-smtpd/log/run

#Then set up the log directories:

    mkdir -p /var/log/qmail/smtpd
    chown qmaill /var/log/qmail /var/log/qmail/smtpd

#Finally, link the supervise directories into /service:

    ln -s /var/qmail/supervise/qmail-send /var/qmail/supervise/qmail-smtpd /service

#The /service directory is created when daemontools is installed.

 

#--------------------------------------------------------------------------------
#Note: The qmail system will start automatically shortly after these links are created. If you don't want it running yet, do:

    qmailctl stop

#--------------------------------------------------------------------------------


# SMTP Access Control Allow the local host to inject mail via SMTP:

    echo '127.:allow,RELAYCLIENT=""' >>/etc/tcp.smtp
    qmailctl cdb

 

#停止旧的

    /etc/init.d/sendmail stop
    /sbin/init.d/sendmail stop
    /etc/rc.d/init.d/sendmail stop

#最后
#Lastly, replace any existing /usr/lib/sendmail with the qmail version:

    mv /usr/lib/sendmail /usr/lib/sendmail.old                  # ignore errors
    mv /usr/sbin/sendmail /usr/sbin/sendmail.old                # ignore errors
    chmod 0 /usr/lib/sendmail.old /usr/sbin/sendmail.old        # ignore errors
    ln -s /var/qmail/bin/sendmail /usr/lib
    ln -s /var/qmail/bin/sendmail /usr/sbin


#设置别名

    echo susu > /var/qmail/alias/.qmail-root
    echo susu > /var/qmail/alias/.qmail-postmaster
    ln -s .qmail-postmaster /var/qmail/alias/.qmail-mailer-daemon
    ln -s .qmail-postmaster /var/qmail/alias/.qmail-abuse
    chmod 644 /var/qmail/alias/.qmail-root /var/qmail/alias/.qmail-postmaster


#启动
    qmailctl start

#查看状态,如下
    # qmailctl stat
    /service/qmail-send: up (pid 30303) 187 seconds
    /service/qmail-send/log: up (pid 30304) 187 seconds
    /service/qmail-smtpd: up (pid 30305) 187 seconds
    /service/qmail-smtpd/log: up (pid 30308) 187 seconds
    messages in queue: 0
    messages in queue but not yet preprocessed: 0

#使用脚本检查安装情况
    wget http://lifewithqmail.org/inst_check
    sh inst_check

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值