manekineko倉金家ホームページ

趣味の部屋/サーバー構築メモ その2/メールサーバー その2

PostfixAdmin

2010年9月6日(月)
メールのドメインやユーザー情報の管理にPostfixadmin + MySQLを使用します。
MySQLはすでに設定が済み稼動していますので、PostfixAdminを導入、設定します。
これによりブラウザで簡単にドメイン、管理者、ユーザー、パスワード、転送設定などができるようになります。


メールサーバーの実際の運用に当たっては、ドメイン、ユーザー、パスワード、転送設定などの管理が必要となり、かつドメイン管理者やユーザーが必要に応じて容易に設定、変更できるようにしておかなくてはなりません。
従来PostfixAdminとMySQLを組み合わせて行ってきましたが、今回も同じにします。

PostfixAdminのダウンロードとインストール
http://sourceforge.net/projects/postfixadmin/ より最新版をダウンロード。
現在の最新版は postfixadmin-2.3.1.tar.gz でした。
http表示ディレクトリ(私の場合 /home/http)に移動し、展開。
できたフォルダpostfixadmin-2.3.1の名前をアクセスしやすいようにpostfixadminに変えておきます。
owner,groupをroot,rootに変更しておきます。
フォルダを開いてINSTALL.TXTを読みます。でも英語なのでいまいちよくわかりません。

MySQLデータベース作成とユーザ登録
さっそく先に導入したphpMyAdminを使ってデータベースを作ります。
データベース名:postfix
照合順序:utf8_general_ci

MySQLへの接続ユーザーを登録します。MySQLテーブルのuserに挿入。
Host:localhost
User:postfix
Password:mysql_password
_privはすべてN

MySQLテーブルのdbにデータベースへのアクセス権を登録(挿入)。
Host:localhost
Db:postfix
User:postfix
_privはSelect,Insert,Update,Delete,Create,Drop,AlterがY、あとはN。

設定
postfixadmin/config.inc.php を編集。
$CONF['configured'] = true;
$CONF['setup_password'] = 'mypassword'; …とりあえず平文でいれておけばよい。
// Postfix Admin Path
$CONF['postfix_admin_url'] = 'http://domain.tld/postfixadmin'; …PostfixAdminのURL。
// Language config
$CONF['default_language'] = 'ja';
// Encript
$CONF['encrypt'] = 'cleartext'; …各種認証方式やソフトへの対応にあえて平文で。
// Database Config
$CONF['database_type'] = 'mysqli';
$CONF['database_host'] = 'localhost';
$CONF['database_user'] = 'postfix';
$CONF['database_password'] = 'mysql_password'; …mysqlに登録したパスワード
$CONF['database_name'] = 'postfix';
$CONF['database_prefix'] = '';
// Site Admin
$CONF['admin_email'] = 'postmaster@domain.tld'; …メール管理者メールアドレス。
// Default Aliases
$CONF['default_aliases'] = array (
'abuse' => 'root@domain.tld', …サイト管理者メールアドレス。以下同様。
'hostmaster' => 'root@domain.tld',
'postmaster' => 'root@domain.tld',
'webmaster' => 'root@domain.tld'
);
// Mailboxes
// Maildirをdomain.tld/usernameの形式で
$CONF['domain_path'] = 'YES';
$CONF['domain_in_mailbox'] = 'NO';
// Transport
$CONF['transport'] = 'YES';
// Alias Control
$CONF['alias_control'] = 'YES';
$CONF['alias_control_admin'] = 'YES';
$CONF['special_alias_control'] = 'YES';
// Backup
$CONF['backup'] = 'NO';
// Send Mail
$CONF['sendmail'] = 'NO';
// Fetchmail
$CONF['fetchmail'] = 'NO';
// Header
$CONF['show_header_text'] = 'YES';
$CONF['header_text'] = ':::: Postfix Admin : メール設定のぺーじ ::::';
$CONF['user_footer_link'] = "";
// Footer
$CONF['show_footer_text'] = 'NO';
// Welcome Message
$CONF['welcome_text'] = <<<EOM
当メールサーバーを御利用いただき、ありがとうございます。
当メールはメールのユーザーの作成時にシステムから自動的に送られるものです。
当メールを無事に御覧になりましたら、メール管理者にそのむね連絡を入れて頂ければ幸いです。
EOM;
// optional
// Dovecotを使うとき
$CONF['create_mailbox_subdirs_prefix']='';

接続してみる
以上入力したら、ブラウザで
http://localhost/postfixadmin/setup.php をアクセス。
. . . . - [OK] となればいいのですが、エラーが出ます。
mysqlのパスワードが間違っていました。(単なるスペルミス)
php-IMAP がインストールされていないようです。
パスワード修正、php-IMAPをインストールしてhttpdを再起動。
再度setup.php をアクセスすると今度はOKのようで、MySQLデータベースにテーブルがいろいろ作られます。
setup_passwordの暗号化したのが表示されますので、それをコピーして $CONF['setup_password'] = 'のところに貼り付けます。
再度アクセスして、特権管理者を登録し、OKです。

仕上げ
すべて日本語できちんと表示され、問題ありませんが、レイアウトがいまいち。
中央に寄せたほうがすっきりするので、css/default.cssを多少変更して好みのレイアウトにしました。