2013年10月25日

nginx + mailman でメーリングリスト

今までメーリングリストの運営にはfmlを使ってきたのですが、以前の記事でも書いたとおり、FHSに準拠していないためDebianの公式パッケージから外れているという問題があり、それでもパッチを当ててだましだまし使ってきたのですが、最近のperlの更新に追随できなくなっていろいろと問題が出てきたため、思い切ってmailmanに乗り換えることにしました。

で、mailmanはwebベースの管理が前提のようなのでwebサーバを立てる必要があり、apacheでもよかったのですが最近話題のnginxにしてみようと思ってやってみたところ、意外とnginxの情報が少なくて苦労しました。
ここここを参考に何とか動かすことができたので、似たようなことを考えている人の参考になればと思い、自分へのメモを兼ねてここに書いておくことにします。

まずDebianのmailmanにはいろいろと問題があり、aptitude installしただけではうまく動きません。私の場合、以下の手順が必要でした。

# aptitude install mailman
# dpkg-reconfigure mailman
(ここでlanguage to supportにenとjaを指定し、default languageにjaを指定する。インストール時に同じことをやってもなぜか反映されないので、明示的にdpkg-reconfigureする必要がある)
# vi /etc/mailman/mm_cfg.py
(DEFAULT_EMAIL_HOSTとDEFAULT_URL_HOSTを必要に応じて書き換え)
# newlist mailman
# vi /etc/aliases
(newlist mailman実行時に表示されたエイリアスを追加)
# newaliases
# /etc/init.d/mailman start

それからfmlからの移行はここを見ながらやりましたが、Debianの場合にはcheck_perms -fはやらないほうがいいみたいです。
これをやってしまうとファイルやディレクトリのパーミッションが(mailmanは正しいと思っている)おかしなことになってしまい、後でwebインタフェースがうまく動かない原因となるようです。(addgroup www-data listとすればうまく行くかも)
<追記>
Debianのデフォルトのパーミッションだと、保存書庫への追加がうまく行かないみたいです。
# addgroup www-data list
# addgroup list www-data
としてから、check_perms -f とすれば、うまく行くことを確認しました。
</追記>

あと、nginxでCGIを使うにはfcgiwrapというパッケージが必要となるようです。

# aptitude install nginx
# aptitude install fcgiwrap

あとはここを参考にnginxの設定をすればwebインタフェースが動くはずですが、cgi-bin/mailman/listinfoやcgi-bin/mailman/adminは表示されても、その先(cgi-bin/mailman/listinfo/MLやcgi-bin/mailman/admin/ML)が表示されません。
困ったなと思ってWebを検索してみたところ、このサイトが見つかりました。要はfcgiwrapは古いnginxのふるまいを回避するためにPATH_INFOをいじってしまうらしいんですね。fcgiwrapの1.02以上を使えば大丈夫、とのことらしいんですが、残念ながら私の使っているDebianのoldstable(squeeze)に入っているfcgiwrapは1.01なのです…。
さっさとstable(wheezy)にアップグレードしろ、という話なのでしょうけど、現用のサーバのアップグレードは大仕事なので、なかなか踏み切れません。
幸い、wheezyのfcgiwrapのパッケージ情報を調べたところ、squeezeでも依存関係は満たしているようなので、以下のような内容の/etc/apt/preferencesファイルを作成することによって、無事wheezyに入っているfcgiwrap-1.03をインストールして、webインタフェースが使えるようになりました!

/etc/apt/preferences:
Package: fcgiwrap
Pin: release n=wheezy
Pin-Priority: 600

Package: *
Pin: release n=wheezy
Pin-Priority: 80

あ、もちろん/etc/apt/sources.listも書き換えて、wheezyのリリース情報を取ってくるようにしないといけないですね。
posted by ぽそこし at 00:21| Comment(0) | TrackBack(0) | 備忘録 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス: [必須入力]

ホームページアドレス:

コメント: [必須入力]

※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバック