CentOS 5.6 をメールサーバーに (PostfixAdmin のインストール)

CentOS 5.6 で Postfix + Dovecot + PostfixAdmin の環境を構築するために、前々回の記事で MySQL を、前回の記事で Apache と PHP をインストールした。
これで PostfixAdmin を動かす環境が整ったことになる。
それではいよいよ PostfixAdmin をインストールしよう。

PostfixAdmin は CentOS のリポジトリでは提供されていない。
このため、 PostfixAdmin の Web サイトから必要なパッケージを入手する必要がある。

最初に、PostfixAdmin の Web サイトからリンクを辿り、ダウンロードページに移動してパッケージをダウンロードする。
以前、PostfixAdmin を ubuntu にインストールしたときは Debian 用のパッケージである deb 形式のファイルをダウンロードした。
だが今回はインストールする OS が CentOS であるため、ダウンロードするのは gz 形式で圧縮された tar ボールだ。
PostfixAdmin の現時点の最新バージョンは 2.3.3 であり、ダウンロードするファイルは postfixadmin-2.3.3.tar.gz になる。

CentOS では RPM パッケージになっていないアプリケーションのソースを保存するディレクトリとして /usr/local/src/ が用意されている。
以下のコマンドでその /usr/local/src/ ディレクトリに PostfixAdmin をダウンロードする。

PostfixAdmin の tar ボールをダウンロードしたら、以下のコマンドでそれを解凍、展開する。

ls /usr/local/src/postifxadmin コマンドを実行すると、/usr/local/src/postfixadmin/ ディレクトリの中に postfixadmin-2.3.3/ というディレクトリができているのが確認できる。
tar ボールを解凍、展開して作成されるディレクトリは、バージョンによって若干の差異がある。
また、ひとまとめのディレクトリになっていない可能性もある。
上で予め /usr/loca/src/postfixadmin/ ディレクトリを作り、そこで tar ボールを解凍、展開したのは、できるディレクトリがどんな名前であろうと、またひとまとめのディレクトリになっていない状態に解凍、展開されたとしても、その後の対処がしやすいように考えてのことだ。

バージョン 2.3.3 の PostfixAdmin の tar ボールを /usr/local/src/postfixadmin/ ディレクトリに解凍、展開した結果、/usr/local/src/postfixadmin/postfixadmin-2.3.3/ ディレクトリができたので、以下のコマンドを使ってこの postfixadmin-2.3.3/ ディレクトリを、/opt/ ディレクトリに移動して postfixadmin/ にリネームする。

次に、PostfixAdmin のデータ (メール アカウント) を保存するデータベースを MySQ サーバーに作成する。
前に ubuntu に deb パッケージでインストールしたときは、パッケージに含まれるインストール スクリプトによって自動的にデータベースが作成されたが、今回は tar ボールを展開しただけなのでそのようなわけにはいかない。
面倒でも自力でデータベースを作成しなくてはならない。

もっとも、作成するのはデータベース (とデータベースにアクセスする為のユーザー) だけであり、その中のテーブルまでを作る必要はない。
データベース (とデータベースにアクセスする為のユーザー) は以下のように MySQL の CLI を起動して、そこで以下のコマンドを実行して作成する。

パスワードの要求には MySQL サーバーの root ユーザーのパスワードを入力する。
なお、MySQL サーバーの root ユーザーのパスワードが空のときは -p オプションを省略できる。
メール アカウントを保存するデータベースを ‘postfix’ とし、これに接続するユーザーを ‘postfixadminuser’ に、そのパスワードを ‘postfixadminpass’ にしている。

続いて、今作ったデータベースとそれにアクセスするユーザー、パスワードを PostfixAdmin の設定ファイルに記述する。
PostfixAdmin は、ダウンロードした tar ボールを解凍、展開した後に移動、リネームしたので、/opt/postfixadmin ディレクトリにある。
このため PostfixAdmin の設定ファイルは /opt/postfixadmin/config.inc.php ファイルになる。
なお、パッケージに附属するファイルを直接編集するのは極力避けたいという考えから、この /opt/postfixadmin/config.inc.php ファイルを編集するのではなく、/opt/postfixadmin ディレクトリに config.local.php ファイルを作り、そこに以下の内容を記述することにする。
config.local.php ファイルは、config.inc.php ファイルから読み込まれ、config.inc.php ファイルの記述を上書きする。
このため、config.inc.php ファイルを編集しなくとも、config.local.php ファイルに必要な設定を記述すればいい。

/opt/postfixadmin/config.local.php
「$CONF['setup_password'] = 'd8f98f40ba871e25bb90ed0aa9e283b9:b7165b55b584b3f2ad273f243bb34536b003f3fa';」は、PostfixAdmin の管理者アカウントを作成する際に使うパスワードのハッシュ値。
この値だと ‘admin’ になる。
「$CONF['postfix_admin_url'] = 'http://mailserver.exapmle.dom/postfixadmin';」の行の ‘http://mailserver.exapmle.dom/postfixadmin’ は、このサーバーのサーバー名に /postfixadmin を追加した URL 。
その他 ‘mailserver.example.dom’ や ‘example.dom’ と記入されている箇所は適宜正しいドメインに置き換えて欲しい。
「$CONF['database_user'] = 'postfixadminuser';」と「$CONF['database_password'] = 'postfixadminpass';」の行の ‘postfixadminuser’ と ‘postfixadminpass’ は、MySQL に作成した PostfixAdmin のためのデータベースに接続するユーザーとパスワード。
「$CONF['encrypt'] = 'cleartext';」の行で ‘dovecot:CRAM-MD5’ など Dovecot のハッシュ関数を指定したときは、メール アカウントの管理 (登録) を行うより前に Dovecot のインストールが済んでいなくてはならない。

その他、PostfixAdmin の設定で必要な物があれば、/opt/postfixadmin/config.ini.php ファイルから該当する箇所を探して、この /opt/postfixadmin/config.local.php ファイルにコピーして編集するといいだろう。
思い切って cp /opt/postfixadmin/config.inc.php /opt/postfixadmin/config.local.php コマンドで /opt/postfixadmin/config.inc.php ファイルを /opt/postfixadmin/config.local.php ファイルに丸々コピーしてしまい、コピーした /opt/postfixadmin/config.local.php ファイルを編集してもいいだろう。

/opt/postfixadmin/config.local.php ファイルを作成したら、PostfixAdmin に接続するための URI を http://サーバー名/postfixadmin にするために、以下の内容で /etc/httpd/conf.d/ ディレクトリに postfixadmin.conf ファイルを作成する

/etc/httpd/conf.d/postfixadmin.conf

/etc/httpd/conf.d/postfixadmin.conf ファイルを作成したら、 service httpd restart コマンドを実行して Apache を再起動し、追加した設定を読み込ませる。

Apache を再起動して、/etc/httpd/conf.d/postfixadmin.conf ファイルの内容を今までの設定に加えて読み込ませたら、Web ブラウザで http://サーバー名/postfixadmin/setup.php (例えば http://mailserver.example.dom/postfixadmin/setup.php) に接続する。
すると PostfixAdmin の動作環境をチェックした後に、データベースのテーブルが作成される。

ubuntu でメール サーバーを構築したときの PostfixAdmin の設定のときには、Web ブラウザでこの setup.php を実行する前に、upgrade.php ファイルの編集、修正が必要だった。
これはテーブルの文字セットをわざわざ ‘latin1’ にしてデータベースを構築するという不具合があったためだ。
しかし、PostfixAdmin のバージョンが 2.3 から 2.3.3 に上がった過程で、この不具合は改修されたようで、今回はこのような編集、修正は不要だ。

さて、データベースのテーブルが作成された同じ Web ページの下の方に「Create superadmin account」と書かれたセクションがある。
ここを使って PostfixAdmin 全体に対する管理者 (superadmin) のアカウントを登録する。

「Setup password」欄に ‘admin’ (この文字列は「$CONF['setup_password'] = '…';」の ‘…’ に対応する文字列)と入力し、「ドメイン管理者」欄に PostfixAdmin 全体の管理者のメール アドレスを入力する。
ここで入力するメール アドレスは、ドメイン部が実在していればメール アドレス自体は実在していなくても構わない。
「パスワード」欄には、ここで使いたいパスワードを入力する。
「パスワード (確認)」欄には、「パスワード」欄で入力したのと同じパスワードを入力する。
これらの各欄を適切に入力したら、「管理者追加」ボタンをクリックすると、PostfixAdmin 全体に対する管理者が登録できる。

必用に応じてこれを繰り返せば、PostfixAdmin 全体に対する管理者を何人でも登録できる。

ここで管理者の登録をせず、ubuntu でメール サーバーを構築したときと同様に、MySQL のデータベースに直接 管理者のメール アドレスとパスワードを登録してもいいだろう。

PostfixAdmin 全体に対する管理者を登録したら、 mv /opt/postfixadmin/setup.php /opt/postfixadmin/setup.php_org コマンドを実行して setup.php に接続できないようにしておく。
その後、改めて Web ブラウザで http://サーバー名/postfixadmin (例えば http://mailserver.example.dom/postfixadmin/) に接続する。

PostfixAdmin のログイン ページが表示されるので、先ほど登録したPostfixAdmin 全体に対する管理者のメール アドレスでログインして、メール アカウントの管理ができることを確認する。

以上で PostfixAdmin のインストールと設定ができた。

関連記事

コメントを残す