Postfixのインストール

最終更新日:2003年7月27日

いつもの通りインストール手順はLinuxをベースに説明します。その他のOSを使っている人は読み替えてください。なお、RedHatなどのディストリビューションに同梱されているPostfixはバージョンが古かったりしますので、できるだけ新しいバージョンをお使いくさだい。

1.Postfixの入手

最新は、Postfixのダウンロードサイトから入手してください。 ここでは、2003年7月13日現在の最新のpostfix-2.0.13のソースであるpostfix-2.0.13.tar.gzを例に説明します。
Debian系の場合は、
# apt-get update; apt-get install postfix
として最新版を入手できます。
このとき、以下のようなインストールタイプを確認してしてくるので、取りあえず「Internet Site」を選ぶ。

また、続いてPoxtfixサーバのドメイン正式名(FQDN)を確認してくるので、DNSに登録されている名前を入力します。

パッケージを使ってインストールした場合には、「5.sendmailからの切り替え」に進んでください。 ソースファイルからコンパイルする方は以下を実行してください。


2. 前準備

前準備として、グループとユーザを登録します。
グループの登録
# groupadd postfix [Enter]
# groupadd postdrop [Enter]
ユーザの登録
# adduser -G postfix postfix [Enter:]

3. Postfixのコンパイル

入手したソースを解凍してコンパイルを実行します。
# tar zxvf postfix-2.0.13.tar.gz [Enter]
# cd postfix-2.0.13 {Enter]
# make [Enter]
コンパイルが終了したら、結果をインストールします。 このとき幾つかの質問い答える必要があります。(殆ど、デフォルトで問題ない筈です。)
#  make install [Enter] 
    ;;
install_root: [/] [Enter]
    ;;
tempdir : [/tmp/postfix-x.x.x] [Enter] 
    ;;
config_directory: [/etc/postfix] [Enter]
    ;;
daemon_directory: [/usr/libexec/postfix] [Enter] 
    ;; 
    (以下、略)
    ;;

#


4. 起動用スクリプトの作成(ソースからコンパイルした場合)

(Linuxの場合)起動用スクリプトを以下のように作成します。
(Linuxの場合: /etc/rc.d/init.d/postfix)
#!/bin/sh
#
# postfix      Postfix Mail Transfer Agent
#
# chkconfig: 2345 80 30
# description: Postfix is a Mail Transport Agent, which is the program \
#              that moves mail from one machine to another.
# processname: master
# pidfile: /var/spool/postfix/pid/master.pid
# config: /etc/postfix/main.cf
# config: /etc/postfix/master.cf
#
# Source function library. ------------------- (1)
. /etc/rc.d/init.d/functions
# Source networking configuration. ------------ (2)
. /etc/sysconfig/network
# Check that networking is up. ---------------- (3)
[ ${NETWORKING} = "no" ] && exit 0
# ---------------------------------- 以上までは環境によっては不要

[ -x /usr/sbin/postfix ] || exit 0
[ -d /etc/postfix ] || exit 0
[ -d /var/spool/postfix ] || exit 0

RETVAL=0

start() {
        # Start daemons.
        echo -n "Starting postfix: "
        /usr/sbin/postfix start 2>/dev/null 1>&2 && success || failure
        RETVAL=$?
        [ $RETVAL -eq 0 ] && touch /var/lock/subsys/postfix
        echo
        return $RETVAL
}

stop() {
        # Stop daemons.
        echo -n "Shutting down postfix: "
        /usr/sbin/postfix stop 2>/dev/null 1>&2 && success || failure
        RETVAL=$?
        [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/postfix
        echo
        return $RETVAL
}

reload() {
        echo -n "Reloading postfix: "
        /usr/sbin/postfix reload 2>/dev/null 1>&2 && success || failure
        RETVAL=$?
        echo
        return $RETVAL
}

abort() {
        /usr/sbin/postfix abort 2>/dev/null 1>&2 && success || failure
        return $?
}

flush() {
        /usr/sbin/postfix flush 2>/dev/null 1>&2 && success || failure
        return $?
}

check() {
        /usr/sbin/postfix check 2>/dev/null 1>&2 && success || failure
        return $?
}

restart() {
        stop
        start
}

# See how we were called.
case "$1" in
  start)
        start
        ;;
  stop)
        stop
        ;;
  restart)
        stop
        start
        ;;
  reload)
        reload
        ;;
  abort)
        abort
        ;;
  flush)
        flush
        ;;
  check)
        check
        ;;
  status)
        status master
        ;;
  condrestart)
        [ -f /var/lock/subsys/postfix ] && restart || :
        ;;
  *)
        echo "Usage: postfix {start|stop|restart|reload|abort|flush|check|status|condrestart}"
        exit 1
esac

exit $?

作成したスクリプトに実行権限を与え、その後chkconfig コマンドを実行してスクリプトを登録します。
他のOSの場合には上記スクリプトを参考に、起動時に実行できるスクリプトを完成させてください。
# chmod +x postfix [Enter]
# chkconfig --add postfix [Enter]
#
以上で、スクリプトは完成です。
なお、(1)〜(3)はRedHat系のスクリプトに使われている記述です。 使っている環境によってはこの指定をするとPostfixの起動がうまくいかないことがあるので、その場合には(1)から(3)までの設定を無くして試してください。

5. sendmailからの切り替え

一般的なLinuxやFreeBSDまたはUnixを使っている場合には、すでにMTAとしてsendmailが動いている筈です。 Postfixを起動するにはこのsendailを停止する必要があります。LinuxでRedHa系の場合には「ntsysv」コマンドによって、TurboLinuxの場合には「turboservice」コマンドによってsendmailが停止できますので停止するようにしてください。FreeBSDでは、/etc/defaults/rc.confの中でsendailを起動に実行するように記述されている箇所があるのでこれを修正します。
なお、RedHatの場合で、パッケージとしてPostfixを導入してある場合には、
# alternatives --config mta
でsendmailからpostfixへ切り替えることができる。(redhat-9からは、redhat-switch-mailでも良い)

Debian系ではapt-getにてPostfixパッケージをインストールした時点で、Sendmailが削除され Postfixへ切り替わります。

Homeへ戻る

Mailwebmaster@robata.org

Copyright© 1998-2003 ROBATA.ORG