カスタム検索
qmailインストール
〜CentOS4 サーバ編〜 |
実施環境はCentOS4ですが、通常のLinuxであれば、ほぼ同様の手法でインストールは出来るはずです。
Index
〜qmailインストール〜 |
1. ダウンロードと展開 | 2. ユーザ、グループの作成(qmaild,qmaill,qmailp,qmailq,qmailr,qmails,qmail,nofiles) | 3. パッチあて作業(qmail-date-localtime,qmail-smtpd-relay-reject) | 4. qmailインストール(error.h修正,config-fast) | 5. エイリアス作成 | 6. checkpasswordインストール | 7. tcpserverインストール | 8. 起動用 rcファイルの作成 | 9. 既存MTA(sendmail)関連ファイルの停止、修正 | 10. 新規ユーザ登録対応(Maildir自動生成,maildirmake) | 11. 起動スクリプト作成 | 12. 起動準備(chkconfig,service)
ダウンロード、展開については、/usr/local/src配下で行います。
# cd /usr/local/src |
qmail は、配送の過程で複数のプロセスに分けられているMTAであり、それらを実施するうえで、必要となるユーザ(グループ)を事前に登録しておきます。
# groupadd nofiles |
特にパッチをあてなくてもインストールできますが、必要そうなのをインストールしておきます。
今回は、localtime用、不正中継対策用だけあてておきます。
# cd /usr/local/src |
いよいよインストールですが、コンパイルしようとすると、以下のエラーメッセージが表示されます。
/lib/libc.so.6: could not read symbols: 不正な値です |
その為、先に以下修正をしてからインストールを行います。
# cat /usr/local/src/ucspi-tcp-0.88/error.h |
修正後、実際にインストールしてみます。
# cd /usr/local/src/qmail-1.03 |
今度は、問題なく終了しました。
次に基本的なcontrol ファイルは作成しておきたいので、
以下コマンドにて、/var/qmail/control/配下のファイルを作成しておきます。
# ./config-fast `hostname -d` |
これにより、me,defaultdomain,plusdomain,locals,rcpthosts ファイルが作成されます。
ここでは、通常必要となるpostmaster,mailer-daemon,root 用の.qmailファイルを作成しておきます。
# cd /var/qmail/alias |
次にpostmaster,mailer-daemon 宛てのメールはrootで受ける設定を行います。
※rootからの転送先は適宜設定が必要です。
# echo 'root' > /var/qmail/alias/.qmail-mailer-daemon |
vpopmail をインストールする場合は、vchkpw で認証される為、本インストールは不要ですが、
vpopmailをインストールしない場合は、checkpassword のインストールを参照してください。
tcpserverは、サーバ制御ツールで ucspi-tcpというパッケージに入っています。
インストール方法は、tcpserverインストールを参照してください。
起動のサンプルファイルが用意されているのでそれをcopyして利用します。
# cp /var/qmail/boot/home /var/qmail/rc |
サンプルファイルはMailbox形式となっている為、Maildir形式に変更します。
# vi /var/qmail/rc |
本環境では、sendmail関連のファイルが存在した為、実行権限を外し、念の為バックアップを作成し、qmail用にリンクをはっておきます。設定は以下の順で進んでください。
sendmail の無効化
# chmod 0 /usr/sbin/sendmail |
sendmailファイルのバックアップ
# mv /usr/sbin/sendmail /usr/sbin/sendmail.bak |
リンク作成
# ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail |
alias用のMaildir作成
# /var/qmail/bin/maildirmake /var/qmail/alias/Maildir |
sendmailの停止(アクティブ用と再起動時用)
# service sendmail stop |
vpopmail導入を考えている場合は、ここから先の設定は不要です。vpopmailインストールへ進んでください。
vpopmailを導入しない場合は、下に進みます。
ユーザ新規登録の度に、Maildirを手動で作成するのは大変なので、その手間を省く為に実施した方がよい作業です。
/etc/skel 配下にmaildirmakeでMaildirを作成すれば、ユーザ新規登録の際のMaildirは不要となります。
設定方法は以下の通りです。
# /var/qmail/bin/maildirmake /etc/skel/Maildir |
以下のようなスクリプトを作成し、実行します。
# cat /etc/rc.d/init.d/qmail #!/bin/bash # # qmail # # chkconfig: 2345 80 30 # description: qmail start/stop script # Source function library. . /etc/rc.d/init.d/functions PATH=/var/qmail/bin:/usr/local/bin:/bin:/usr/bin [ -f /var/qmail/rc ] || exit 0 start() { # Start daemons. if [ -z $(/sbin/pidof qmail-send) ]; then echo -n "Starting qmail" # qmail csh -cf '/var/qmail/rc &' 2>&1 > /dev/null # SMTP tcpserver -qv -l0 -HR -u `id -u qmaild` -g \ `id -g \qmaild` -x /etc/tcp/smtp.cdb 0 smtp \ qmail-smtpd `hostname` /bin/checkpassword \ /bin/true 2>&1 | splogger smtp & RETVAL=$? echo [ $RETVAL = 0 ] && touch /var/lock/subsys/qmail return $RETVAL else echo "qmail is already started" fi } stop() { # Stop daemons. if [ ! -z $(/sbin/pidof qmail-send) ]; then echo -n "Shutting down qmail" /bin/kill $(/sbin/pidof tcpserver) /bin/kill $(/sbin/pidof qmail-send) until [ -z $(/sbin/pidof qmail-send) ] && \ [ -z $(/sbin/pidof tcpserver) ]; do :; done echo rm -f /var/lock/subsys/qmail else echo "qmail is not running" fi } case "$1" in start) start ;; stop) stop ;; restart) stop start ;; status) if [ ! -z $(/sbin/pidof qmail-send) ] ; then echo -n "qmail (pid" echo -n " `/sbin/pidof qmail-send`" echo -n " `/sbin/pidof tcpserver`" echo ") is running..." else echo "qmail is stoped" fi ;; *) echo "Usage: qmail {start|stop|restart|status}" exit 1 esac |
※POPも起動させたい場合は、上記スクリプトに追加で記載してください。
chkconfig コマンドで次回起動時から自動で立ち上がるように設定します。
# chkconfig --add qmail |
その場で起動させたい場合は、以下コマンドを実行してください。
# service qmail start |
インストールは以上で終了です。