(最終更新日時:2009-01-05 18:20:39)
postfixのユーザーアカウントおよびバーチャルドメインの管理をGUIで行うツール PostfixAdmin をインストールします。
ダウンロード
| ・ | PostfixAdmin 2.2.1.1 | : | postfixadmin-2.2.1.1.tar.gz |
事前準備
関連パッケージとして、下記を事前にインストールしておきます。
データベースには、
PostgreSQL を使用することも可能です。
インストール
インストールするWebサイトディレクトリでアーカイブを展開します。
ここでは、
/home/www/vhosts/system-act.com/www に展開します。
# mkdir /home/www/vhosts/system-act.com/www
# cd /home/www/vhosts/system-act.com/www
# tar zxvf ダウンロード先/postfixadmin-2.2.1.1.tar.gz
# mv postfixadmin-2.2.1.1 postfixadmin アクセスしやすいディレクトリ名に変更します
データベース設定
MySQLにPostfixデータベースを準備します。
# mysql -u root -p
Enter password: MySQL rootユーザーのパスワード
:
-- Postfixデータベースを作成します
mysql> CREATE DATABASE postfix;
:
-- Postfix管理ユーザーを作成し、Postfixデータベースへの権限を設定します
mysql> GRANT ALL PRIVILEGES ON postfix.*
-> TO postfixadmin@localhost
-> IDENTIFIED BY 'パスワード';
:
mysql> exit
PostgreSQLの場合は、以下でPostfixデータベースを準備します。
# su - postgres postgresユーザーで行います
$ psql
Password: DBユーザー postgres のパスワード
:
-- Postfix管理ユーザーを作成します
postgres=# CREATE ROLE postfixadmin WITH LOGIN PASSWORD 'パスワード';
CREATE ROLE
-- Postfixデータベースを作成します
postgres=# CREATE DATABASE postfix OWNER postfixadmin ENCODING 'UTF8';
CREATE DATABASE
postgres=# \q
$ exit
# PostgreSQLデータベースへの接続許可設定を行います
# vi /home/database/pgsql/pg_hba.conf
:
# IPv4 local connections:
:
host postfix postfixadmin 127.0.0.1/32 md5
:
# service pgsql reload
定義ファイルの編集
Postfix AdminのConfigファイルを編集します。
# cd /home/www/vhosts/system-act.com/www/postfixadmin
# replace "change-this-to-your.domain.tld" "system-act.com" -- config.inc.php
config.inc.php converted
# vi config.inc.php
:
$CONF['configured'] = true;
:
$CONF['default_language'] = 'ja'; 日本語表示にします
:
$CONF['database_type'] = 'mysqli'; mysqli拡張サポートで接続します
:
$CONF['database_user'] = 'postfixadmin'; データベース設定で作成したPostfix管理ユーザーを設定します
$CONF['database_password'] = 'データベース設定で作成したPostfix管理ユーザーのパスワード';
:
$CONF['database_tables'] = array (
:
// 'alias_domain' => 'alias_domain', コメントアウトします
:
$CONF['domain_path'] = 'YES'; メールボックスはドメイン名のフォルダ内に作成します
:
$CONF['domain_in_mailbox'] = 'NO'; メールボックス名にはドメイン名を付加しません
:
$CONF['fetchmail'] = 'NO'; fetchmail機能は使用しません
:
$CONF['user_footer_link'] = "main.php"; ユーザー画面のフッターはメイン画面への遷移にします
:
$CONF['show_footer_text'] = 'NO'; フッターのテキストを表示しません
:
$CONF['welcome_text'] = <<<EOM
メールボックスの作成が完了しました。
EOM;
:
改修等
バックアップ処理でエラーになりますので対応します。
# cd /home/www/vhosts/system-act.com/www/postfixadmin
# vi backup.php
:
session_cache_limiter('public'); IE & SSLサイト用の設定を追加します
require_once('common.php');
:
/* コメントアウトします
$tables = array(
'admin',
'alias',
'alias_domain',
'config',
'domain',
'domain_admins',
'fetchmail',
'log',
'mailbox',
'vacation',
'vacation_notification'
);
*/
$tables = array_values($CONF['database_tables']); 定義ファイルから取得します
:
お知らせメッセージを編集します。
# cd /home/www/vhosts/system-act.com/www/postfixadmin
# vi motd.txt
<div class="standout">
=== お知らせ ===<br />
現在、<a href="mailto:<?php print $CONF['admin_email']; ?>">サイト管理者</a>からのお知らせはありません。<br />
============<br />
</div>
<br />
# vi motd-users.txt
<div class="standout">
=== お知らせ ===<br />
現在、<a href="mailto:<?php print $CONF['admin_email']; ?>">サイト管理者</a>からのお知らせはありません。<br />
============<br />
</div>
<br />
Webサーバー設定
apacheのホスト設定にPostfix Adminの設定を追加します。
# vi /usr/local/apache2/conf/extra/vhosts/www.system-act.com.conf
:
Alias /postfixadmin "/home/www/vhosts/system-act.com/www/postfixadmin"
# service httpd restart 再起動して設定を反映させます
パーミッションおよびオーナーを変更します
# cd /home/www/vhosts/system-act.com/www/postfixadmin
# chown -R apache *
# chmod -R 400 *
# chmod 500 css
# chmod 500 images
# chmod 500 languages
# chmod 500 templates
# chmod 500 admin
# chmod 500 users
Postfix Adminの初期セットアップ
Webブラウザから
http://WebサーバーのURL/postfixadmin/setup.php で初期セットアップ画面を表示させます。
(※)エラーの表示がないことを確認し、特権管理者(ドメインの作成/削除ができます)のログインアドレスとパスワードを作成します。
(※)アップグレードの場合、特権管理者は既に作成済ですので作成する必要はありません。
特権管理者の作成を終えたら、
setup.php を削除します。
# cd /home/www/vhosts/system-act.com/www/postfixadmin
# rm setup.php
接続ユーザーの作成
postfix や
dovecot からのデータベース接続は、管理ユーザーとは別のユーザーで行うようにします。
# mysql -u root -p
Enter password: MySQL rootユーザーのパスワード
:
-- Postfix接続ユーザーを作成し、Postfixデータベースへの権限を設定します
mysql> GRANT SELECT ON postfix.*
-> TO postfix@localhost
-> IDENTIFIED BY 'パスワード';
:
mysql> exit
PostgreSQLの場合は、以下で作成します。
# su - postgres postgresユーザーで行います
$ psql
Password: DBユーザー postgres のパスワード
:
-- Postfix接続ユーザーを作成します
postgres=# CREATE ROLE postfix WITH LOGIN PASSWORD 'パスワード';
CREATE ROLE
-- Postfixデータベースへの権限を設定します
postgres=# \c postfix
You are now connected to database "postfix".
postfix=# GRANT SELECT ON domain TO postfix;
GRANT
postfix=# GRANT SELECT ON mailbox TO postfix;
GRANT
postfix=# GRANT SELECT ON alias TO postfix;
GRANT
postgres=# \q
$ exit
# PostgreSQLデータベースへの接続許可設定を行います
# vi /home/database/pgsql/pg_hba.conf
:
# IPv4 local connections:
:
host postfix postfix 127.0.0.1/32 md5
:
# service pgsql reload
Postfix Adminの運用
http://WebサーバーのURL/postfixadmin/ で管理者のログイン画面が表示されます。
(※)特権管理者ログインアドレスとパスワードでログインすれば、新規ドメインの作成ができます。
(※)ドメイン管理者ログインアドレスとパスワードでログインすれば、管理ドメイン内にメールアドレスの作成ができます。
(注)各管理者のログインアドレスとパスワードはPOP3/IMAPとは別のものです。
最初にドメインを作成します。
(※)ドメイン一覧からも作成することができます。
ドメインを作成した後にそのドメインの管理者を作成します。
(※)管理者一覧からも作成することができます。
(※)一つの管理者で複数のドメインを管理することもできます。
Copyright © 2004-2009 System House ACT. All Rights Reserved.