いままではメーリングリストをezmlmで運用していたが、これはqmail用のもの。
今回はデファクトになりつつある、Mailmanを使用しよう。
# yum install mailman
まず、Mailman管理用のパスワードの設定。
# /usr/lib/mailman/bin/mmsitepass
# vi /etc/mailman/mm_cfg.py
さて、ここでtower.rally.or.jpにアクセスすると管理画面に行けるはずなのだが、だめだ。(2011/01/23以下に修正)
さて、あとは、httpdをリスタートすれば、/etc/httpd/conf.d/mailmanが有効になって、web管理画面に行けるはずなのだが、だめだ。
URLから、調べてみると、管理画面はCGI。
しかし、ApacheがsuEXECで動作しているため、このCGIは実行できない。
さて、MailmanのFAQのページによると対処方法はふたつあるようだ。
ひとつは、ApacheでsuEXECを無効にすること。
もうひとつは、ApacheのVartualHost機能を使い、そちらのホストに飛ばす形でCGIを動かすと言う方法。
# vi /etc/httpd/conf/httpd.conf
DEFAULT_URL_HOST = 'www.rally.or.jp' <- 管理画面用Webを提供するホスト
DEFAULT_EMAIL_HOST = 'rally.or.jp' <- メーリングリストを提供するホスト
MTA = 'Postfix' <- 使用するMTAを指定
DEFAULT_SERVER_LANGUAGE = 'ja' <- 管理画面の言語
DEFAULT_GENERIC_NONMEMBER_ACTION = 2 <- メーリングリストは登録メンバー以外使えない
DEFAULT_LIST_ADVERTISED = No <- メーリングリスト一覧は非公開
DEFAULT_SUBJECT_PREFIX = "[%(real_name)s: %%d] " <- 件名のフォーマット(記事番号を付加)
DEFAULT_REPLY_GOES_TO_LIST = 1 # Reply-Toを書き換える(メーリングリストにする)
DEFAULT_URL_PATTER = 'http://%s:80/mailman/' # 2011年4月3日追加
Postfixが参照するaliasファイルを作成する。
# /usr/lib/mailman/bin/genaliases
Postfixからもaliasを参照できるようにアクセス権限を変更する。
# chmod g+w /etc/mailman/aliases.db
Postfixの設定ファイル/etc/postfix/main.cfのalias_mapに、Mailmanのaliasを追加する。
# vi /etc/postfix/main.cf
alias_maps = hash:/etc/aliases, hash:/etc/mailman/aliases
Postfixを再起動する。
# service postfix restart
Mailman管理用のメーリングリストを作成する。
メッセージが化けることがあるが、まず管理者アドレスを入力、そして先ほど登録したパスワードを入力。最後にEnterを入力する。
[root@tower ~]# /usr/lib/mailman/bin/newlist mailman
... : nor@rally.or.jp
mailman ...:
Enter mailman...
自動起動を設定して、Mailmanを起動する。
# chkconfig mailman on
# service mailman start
##
## Mailman Virtual host
##
Listen 3000
<VirtualHost _default_:3000>
<IfModule mod_suexec.c>
SuexecUserGroup mailman mailman
</IfModule>
Servername tower.rally.or.jp:3000
ServerAdmin nor@rally.or.jp
DocumentRoot /usr/lib/mailman
ErrorLog /var/log/httpd/mailman-error_log
TransferLog /var/log/httpd/mailman-access_log
ScriptAlias /mailman/ "/usr/lib/mailman/cgi-bin/"
Alias /pipermail/ "/usr/lib/mailman/archives/public/"
Alias /icons/ "/usr/lib/mailman/icons/"
<Directory "/usr/lib/mailman/cgi-bin/">
AllowOverride All
Options ExecCGI
Order allow,deny
Allow from all
</Directory>
<Directory "/usr/lib/mailman/archive/public/">
AllowOverride None
Options All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
# vi /etc/mailman/mm_cfg.py
add_virtualhost(DEFAULT_URL_HOST, DEFAULT_EMAIL_HOST)
DEFAULT_URL_PATTERN = 'http://%s:3000/mailman/'
しかし、mailmanがUID=41でインストールされている。
ApacheはsuEXECできるのは、デフォルトではUIDが100以上。
だめだ。
上の細工をして、mailmanのUIDを変えるか、それともApacheを再コンパイルするか。
結局suEXECを無効にするという選択をする。
# mv /usr/sbin/suexec /usr/sbin/suexec.bak
これで、インストール完了。
あとはWebインタフェースにアクセスして、メーリングリストをつくっていくだけ。