This article was migrated from http://rails.office.drecom.jp/takiuchi/archive/54
以下は自分用にLife with qmailの内容を要約したものです。
まず、ソースファイルを/usr/local/src
にダウンロードし、展開します。
cd /usr/local/src
wget http://www9.jp.qmail.org/netqmail-1.05.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
それぞれを展開。
tar xvzf netqmail-1.05.tar.gz
tar xvzf ucspi-tcp-0.88.tar.gz
tar xvzf daemontools-0.76.tar.gz
最初はqmailから。
cd netqmail-1.05
./collate.sh
mkdir /var/qmail
mkdir /etc/qmail
ln -s /etc/qmail /var/qmail/control
cd /usr/local/src/netqmail-1.05/netqmail-1.05
cp INSTALL.ids IDS
ここで、IDSの中身から下記のものを選ぶ(構成に応じて変更すること)
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
余談ですが、先頭のコメント部分の一括削除等は vim のVISUAL BLOCKモードだと作業がしやすいです。そして、
chmod +x IDS
./IDS
make setup check
./config-fast <メールアドレスの@の右側に来るところ>
これで qmail は完了。続いて ucspi-tcp のインストールです。
cd /usr/local/src/ucspi-tcp-0.88
patch < ../netqmail-1.05/other-patches/ucspi-tcp-0.88.errno.patch
make
make setup check
そして daemontools のインストール。
cd /usr/local/src/admin/daemontools-0.76/src
patch < ../../../netqmail-1.05/other-patches/daemontools-0.76.errno.patch
cd ..
package/install
以上でインストール作業は完了です。
さて、続いてnetqmailの設定を行います。
/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
mkdir /var/log/qmail
echo ./Mailbox >/var/qmail/control/defaultdelivery
次に、
/var/qmail/bin/qmailctl
ファイルを下記から持ってきます。
cd /var/qmail/bin
wget http://lifewithqmail.org/qmailctl-script-dt70
mv qmailctl-script-dt70 qmailctl
chmod 755 /var/qmail/bin/qmailctl
ln -s /var/qmail/bin/qmailctl /usr/bin
続いて、superviser
ディレクトリの設定を行います。
mkdir -p /var/qmail/supervise/qmail-send/log
mkdir -p /var/qmail/supervise/qmail-smtpd/log
echo '#!/bin/sh' >> /var/qmail/supervise/qmail-send/run
echo 'exec /var/qmail/rc' >> /var/qmail/supervise/qmail-send/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
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
続いて
/var/qmail/supervise/qmail-smtpd/run
ファイルを次のように記述します。
#!/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
最後に、
echo 20 > /var/qmail/control/concurrencyincoming
chmod 644 /var/qmail/control/concurrencyincoming
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
mkdir -p /var/log/qmail/smtpd
chown qmaill /var/log/qmail /var/log/qmail/smtpd
ln -s /var/qmail/supervise/qmail-send /var/qmail/supervise/qmail-smtpd /service
qmailctl stop
echo '127.:allow,RELAYCLIENT=""' >>/etc/tcp.smtp
qmailctl cdb
既存のMTAをアンインストールします(これは構成によるのでここには書けません)。
あとは、sendmailをqmailで置き換えます。
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
qmailctl start
以上で設定は完了です。
最後に、qmailctl stat
を実行して、下記のような感じに起動時間が進んでいることを確認します。
# qmailctl stat
/service/qmail-send: up (pid 29638) 7 seconds
/service/qmail-send/log: up (pid 29648) 7 seconds
/service/qmail-smtpd: up (pid 29637) 7 seconds
/service/qmail-smtpd/log: up (pid 29647) 7 seconds
messages in queue: 0
messages in queue but not yet preprocessed: 0
以上で全て完了です。
This article was migrated from http://rails.office.drecom.jp/takiuchi/archive/54