【linux】LAMP環境 + メール環境(postfix + dovecot)
概要
さくらのVPSなどを、1台だけ借りて、個人用途で、メール(バーチャルドメイン対応)やWeb(マルチドメイン対応)で使い倒そうという感じの環境構築。
OSはCentOS5.6(もうすぐ6が出そうですけど)。
Webシステムの開発や、Webサイトの本番環境として利用する場合は、Web用のサーバー、メール用のサーバー、DB用のサーバーなど役割に応じて分けたいところだが、ここでは1台で全部やらせる。php、MySQLのバージョンが古いなどについてはこだわらないことにする。(バージョンにこだわる場合のセットアップについてはまた後日)
まず下ごしらえ
いろいろ古いのでとりあえずupdate(たくさんあるので待つ)
yum update
いらないものを削除
yum remove sendmail yum-updatesd (その他いらないものがあれば)
欲しいものを導入
yum install httpd php mysql msyql-server postfix dovecot
この時点で各ソフトウェアのバージョンは次のとおり。
dovecot.x86_64 1.0.7-7.el5 installed httpd.x86_64 2.2.3-45.el5.centos.1 installed mysql.x86_64 5.0.77-4.el5_6.6 installed mysql-server.x86_64 5.0.77-4.el5_6.6 installed php.x86_64 5.1.6-27.el5_5.3 installed php-cli.x86_64 5.1.6-27.el5_5.3 installed postfix.x86_64 2:2.3.3-2.3.el5_6 installed
httpdについて
設定ファイルは /etc/httpd/conf/httpd.conf。
デフォルトで、/var/www/html がドキュメントルート。
この状態でもWebサイトを設置できるが、Webのソースを置く場所を作って、マルチドメインするつもりの配置にすると、後の対応がやりやすい。
例) /home/apache/ドメイン名/public_html を、各VirtualHostのドキュメントルートにするなど。
mysqlについて
自分ひとりで使うサーバーだとしても、パスワードを設定する癖をつけておいて悪いことはない。
root のパスワードは設定しておく。
mysqladmin -u root password 新しいパスワード
Postfix の設定
/etc/postfix/main.cf の基本的なところを変更する。
myhostname = foo.example.com mydomain = example.com inet_interfaces = all
バーチャルドメインに対応するために、/etc/postfix/main.cf に、以下を追記する。
virtual_mailbox_domains = $myhostname, localhost.$mydomain, $mydomain, example.com, example.net, example.jp virtual_mailbox_base = /var/spool/mail/vhosts virtual_mailbox_maps = hash:/etc/postfix/vmailbox virtual_minimum_uid = 100 virtual_uid_maps = static:5000 virtual_gid_maps = static:5000 virtual_alias_maps = hash:/etc/postfix/virtual
/etc/postfix/vmailbox に、バーチャルメールボックスの場所を書く。
foo@example.com example.com/foo/ hoge@example.com example.com/hoge/ hoge@example.net example.net/hoge/
vmailboxファイルを変更したら、バーチャルメールボックスのデータベースを更新を行う。
postmap /etc/postfix/vmailbox
エイリアスを書いたvirtualファイルを変更したら、こちらもデータベースを更新を行う。
postmap /etc/postfix/virtual
SMTP認証ができるように環境を整える。
/usr/lib/sasl2/smtpd.conf を書き換える(64bit版OSの場合は /usr/lib64/sasl2/smtpd.conf)。
pwcheck_method: saslauth
を変更。
pwcheck_method: auxprop
saslpasswd2コマンドで、メールのユーザーとパスワードのデーターベースを作る。
saslpasswd2 -u ドメイン名 -c ユーザー名
通常、ファイルが /etc/sasldb2 に作成されるが、初めて作成したときにpostfixから読めないような権限になっていたら、posfixから読めるように権限を設定する。
chgrp postfix /etc/sasldb2
SMTP認証をするように /etc/postfix/main.cf に設定する。
smtpd_sasl_auth_enable = yes smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination #(古いOutlookなどへの対策) broken_sasl_auth_clients = yes
dovecot の設定
dovecotはPostfixに合わせる。
メールが /var/spool/mail/vhosts/ドメイン名/アカウント名/ にスプールされる設定に合わせる。
mail_location = maildir:/var/spool/mail/vhosts/%d/%n
受信(POP)のアカウントを作る。受信と送信のパスワードが同じだと、何かと簡単でよいが、そこは自由。
いろんな形の認証を利用できる。今回はpasswdファイル風の形式のデータを作る方式を選択。
ファイルは /etc/dovecot-passwd。下のようなpasswdファイル風のファイルを作る。
test@example.com:0N97wDJ88ZfN2:5000:5000 test1@example.net:8ItpxfT.OWa/c:5000:5000 test2@example.jp:LqQsVhBwWF9gg:5000:5000
パスワードのハッシュは、openssl コマンドで作る。
$ openssl passwd Password: Verifying - Password: 0N97wDJ88ZfN2←これを上のファイルに書く
作成した /etc/dovecot-passwd を認証に使ってもらえるよう設定をする。
passdb passwd-file { args = /etc/dovecot-passwd } userdb passwd-file { args = /etc/dovecot-passwd }
コメント