ラピッドサイトでのmailmanのインストールと設定メモ
ラピッドサイトの方は説明を簡略化しているそうで、
Mailmanのインストール
だけではさっぱりなのでいろいろ調べながらインストールすることに。
ちなみにサーバはRV-7。
振り返るとrootユーザーでインストールしてたので、パーミッションエラーが連発した。
一般ユーザーで作業をすればよかったと反省。
あとマニュアルをちゃんと読まないとだめだと反省。
mailmanのインストール
vinstall mailman
途中でmailmanの管理者パスワード、mailmanのサイト管理者パスワードを入力。
管理者メールアドレスも入力する。
cd /etc/mail
なぜかviじゃないと開けないので(拡張子がないからemacsじゃ開けない?)、
vi virtusertable
と入力して以下を追記する。
mailman@DOMAIN-NAME.COM mailman mailman-admin@DOMAIN-NAME.COM mailman-admin mailman-bounces@DOMAIN-NAME.COM mailman-bounces mailman-confirm@DOMAIN-NAME.COM mailman-confirm mailman-join@DOMAIN-NAME.COM mailman-join mailman-leave@DOMAIN-NAME.COM mailman-leave mailman-owner@DOMAIN-NAME.COM mailman-owner mailman-request@DOMAIN-NAME.COM mailman-request mailman-subscribe@DOMAIN-NAME.COM mailman-subscribe mailman-unsubscribe@DOMAIN-NAME.COM mailman-unsubscribe
DOMAIN-NAME.COM部分を自分のドメイン名に変更して、以下コマンドで設定を反映させる。
vnewvirtmaps
そして、
./bin/check_perms -f
を入力してパーミッションエラーを修正。
./bin/check_perms
を入力してエラーでないかを確認。
エラーが出る場合は再度、
./bin/check_perms -f
を入力してエラーを修正する。
そしてインストールディレクトリの所有者変更
chown -R mailman. /usr/lib/mailman/ chmod 755 /usr/lib/mailman/
mailmanの設定作業
続いてmailmanの設定ファイルの編集作業へ。
インストール先に移動。以下を開いて編集する。
emacs mailman/Mailman/mm_cfg.py
以下の該当部分を自分の環境にあわせて編集。
DEFAULT_URL_HOST = 'test.com' DEFAULT_EMAIL_HOST = 'test.com'
以下はファイル内に追記する部分。
※SSLのサーバー証明書がなくSSLでアクセスしない場合は該当部分を変更。変更しないと403Forbiddenエラーでアクセスできない。
MTA = 'Manual' ←メールサーバーがPostfixの場合はPostfix。それ以外はManualと入力する。sendmailとか書くとエラーで動かない。 DEFAULT_SERVER_LANGUAGE = 'ja' DEFAULT_URL_PATTERN = 'https://%s/mailman/' ←SSLじゃない場合は削除 DEFAULT_LIST_ADVERTISED = No OWNERS_CAN_DELETE_THEIR_OWN_LISTS = Yes DEFAULT_SUBJECT_PREFIX = "[%(real_name)s:%%d] " DEFAULT_REPLY_GOES_TO_LIST = 1 DEFAULT_NEW_MEMBER_OPTIONS = 258 DEFAULT_GENERIC_NONMEMBER_ACTION = 2 DEFAULT_SEND_REMINDERS = No
続いてクローン設定をば。
crontab -u mailman /usr/lib/mailman/cron/crontab.in
Webサーバーの設定。以下を開く。
emacs /etc/httpd/conf.d/mailman.conf
以下のように設定する。
ScriptAlias /mailman/ /usr/lib/mailman/cgi-bin/ <Directory /usr/lib/mailman/cgi-bin/> SSLRequireSSL ←SSLじゃない場合は削除 AllowOverride None Options ExecCGI Order allow,deny Allow from all </Directory> Alias /pipermail/ /var/lib/mailman/archives/public/ <Directory /var/lib/mailman/archives/public> Options Indexes MultiViews FollowSymLinks AllowOverride None Order allow,deny Allow from all </Directory>
mailman用ロゴファイルを所定ディレクトリへコピー
cp /usr/lib/mailman/icons/* /var/www/icons/
webサーバーの再起動して、mailmanを起動させる。
/etc/rc.d/init.d/mailman start
その後、
http://ドメイン名/mailman/
にアクセス。
ところが
Bug in Mailman version 2.1.14 We're sorry, we hit a bug! Please inform the webmaster for this site of this problem. Printing of traceback and other system information has been explicitly inhibited, but the webmaster can find this information in the Mailman error logs.
とのことで開かない。。。
ログを見ようとしたけどmailmanのログファイルが見当たらない。
どこにログがあるのか探しまわったらあった!
apacheのログを見ると、
IOError: [Errno 13] Permission denied: '/var/lib/mailman/logs/error'
の一文が。
なんでこっちに出力されてるのかわからないけど、
chown -R mailman. /var/lib/mailman/ chmod 755 /var/lib/mailman/ chmod 777 /var/lib/mailman/logs/error
で書き込み実行の許可を与えてブラウザから再度アクセス。
またもやエラー。
今度はエラーログが生成されてるので、
/var/lib/mailman/logs
を見てみる。
Permission denied: '/var/lib/mailman/data/adm.pw'
こちらもルートユーザーでインストールをしたことが原因だー。
パーミッションを変更して、再度ブラウザからアクセス。
新規作成時のエラーが消えない!
表示はされたけどメーリングリストの新規作成でエラーが。
ログを見てみると、
ImportError: No module named sendmail
とのエラーがでてる。
GNU Mailman - インストールマニュアル
Redhat では, たぶん python2-devel パッケージが必要でしょう.
とあるのでこれが原因かと思い、必要なものを入れてみる。
yum install python2-devel
だけど、
Error: Missing Dependency: /usr/lib/python2.3 is needed by package libxml2-python Error: Missing Dependency: /usr/lib/python2.3 is needed by package libxslt-python
とのこと。
なによこれ。
調べたらyumの不具合らしい。
yum + pythonでMissing Dependencyエラー: BlueEyesBlue
ということでやってみる。
yum clean all
としてキャッシュをクリアして、pythonのアップデート。
yum update python
でも無理だった。途中でまた同じエラーが出た!
Error: Missing Dependency: /usr/lib/python2.3 is needed by package libxml2-python Error: Missing Dependency: /usr/lib/python2.3 is needed by package libxslt-python
なんだろうか。
pythonのバージョンが古いから?とも思ったけど、
import libxml2 import libxslt
が問題ないので入ってるはず。
マニュアルを再度見直すとmm_cfg.pyのところで、
MTA = 'Manual' ここは、’Manual’ か ‘Postfix’ かのどちらかです。MTA に Postfix を使っている場合に Postfix と Mailman の連携がうまくとれていれば、これを ‘Postfix’ にすることができます。そうでない場合には、’Manual’ にして、 /etc/aliases ファイルを手動で編集する必要があります。
との記述が!
普通にsendmailって書いてたよ!!
なのでこちらをManualと書き換えた。
どうやら以下のエラーの原因はこれだったようだ。
ImportError: No module named sendmail
やっと新規作成へ
これでメーリングリストの新規作成のエラーは消えた。
いそいそとブラウザから新規作成をおこなう。
あれ、できない。
なんで?
メーリングリストの作成と削除
ブラウザからの新規作成は正常に完了しないらしい。
なんぞそれ。
なので上記内容を参考にコマンドラインで新規作成をおこなう。
/usr/lib/mailman/bin/newlist メーリングリスト名
そして管理者メールアドレス、メーリングリスト管理用パスワードを入力。
## メーリングリスト名 mailing listから始まる内容をコピーして、
/etc/aliasesに追記(マニュアルには/etc/mail/aliasesと書いてあるけどなぜか保存できず)。
newaliases
で設定内容を反映させる。
続いてマニュアルでは/etc/mail/virtusertableを開いて、以下のように追記する。
メーリングリスト名@ドメイン名 メーリングリスト名 メーリングリスト名-admin@ドメイン名 メーリングリスト名-admin メーリングリスト名-bounces@ドメイン名 メーリングリスト名-bounces メーリングリスト名-confirm@ドメイン名 メーリングリスト名-confirm メーリングリスト名-join@ドメイン名 メーリングリスト名-join メーリングリスト名-leave@ドメイン名 メーリングリスト名-leave メーリングリスト名-owner@ドメイン名 メーリングリスト名-owner メーリングリスト名-request@ドメイン名 メーリングリスト名-request メーリングリスト名-subscribe@ドメイン名 メーリングリスト名-subscribe メーリングリスト名-unsubscribe@ドメイン名 メーリングリスト名-unsubscribe @ドメイン名 error:nouser User unknown
そして、
makemap hash /etc/mail/virtusertable < /etc/mail/virtusertable
を入力して完了!
長すぎる。。。
http://ドメイン名/mailman/admin
を開けば先ほど作成したメーリングリストが表示される。