Postfixのインストール(sourceから)

最終更新日:2013年9月8日

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

1.Postfixの入手

最新のソースファイルが必要な場合には、Postfixのサイトからトから入手してください。

2. 前準備

前準備として、グループとユーザを登録します。
Debianの場合 CentOSの場合 
$ sudo groupadd postfix
$ sudo groupadd postdrop
$ sudo adduser -G postfix postfix
# groupadd postfix
# groupadd postdrop
# adduser -G postfix postfix

3. Postfixのコンパイル

入手したソースを解凍してコンパイルを実行します。
Debianの場合 CentOSの場合 
$ sudo tar zxvf postfix-2.0.13.tar.gz
$ sudo cd postfix-2.0.13
$ sudo make
# tar zxvf postfix-2.0.13.tar.gz
# cd postfix-2.0.13
# make
コンパイルが終了したら、結果をインストールします。 このとき幾つかの質問い答える必要があります。(殆ど、デフォルトで問題ない筈です。)
Debianの場合 CentOSの場合 
$ sudo make install
::
::
install_root: [/] [Enter]
::
tempdir : [/tmp/postfix-x.x.x] [Enter]
::
config_directory: [/etc/postfix] [Enter]
::
daemon_directory: [/usr/libexec/postfix] [Enter]
::
(以下、省略)
# make install
::
::
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を起動に実行するように記述されている箇所があるのでこれを修正します。

Homeへ戻る

Mailwebmaster@robata.org

Copyright© 1998-2003 ROBATA.ORG