CentOS6にFML8でメーリングリスト

いろいろコラボレーションツールとかありますが、根強い人気のメーリングリスト。
みんなが使い慣れたインターフェースで、スマホにも届くし、
新しいことを覚えなくていいので、使いたいご要望をよくいただきます。

しかしMLは使いたくてもMLの管理はみんなやりたがらない。
コマンドメール送ってねといってもやらない。
今回の目的は、メンバー全員に届く&返信も全員にできる、ぐらいですからね。

そんなわけで久々にCentOS6にFML8を導入しました。他はpostfixとapacheです。

■ポイント
・perlのモジュール揃える
・CGI動かすのに苦労、suexec配下なのとmod_perlじゃダメ

■インストール
本家の説明の通り。
この時点でアレが足りないとか言われたらyumでインストールする。

■バーチャルドメイン
makefml newdomain example.net するのを忘れない
virtual_alias_mapsの指定を忘れない

■管理用webインターフェース(CGI)を使う
SuEXECでfmlユーザーが動かないといけないのでそのようにする。
/home/fml/public_html/cgi-bin/以下略~となるので
http://example.com/~fml/cgi-bin/以下略~と動かす。
表向きのドメインにUserDirが見えるのもなんだかなーということでfmlだけ使えるようにする

mod_perlで動かそうと思ったらいろいろ不具合があったのでcgiとして動かす。

httpd.conf

LoadModule suexec_module modules/mod_suexec.so
<VirtualHost *:80>
ServerName 管理用ドメイン名
AddHandler cgi-script .cgi
UserDir public_html
UserDir enabled fml
</VirtualHost *:80>

…とりあえずCGIは動いたけども、FMLとしての機能が動かない。
ソースを追いかけるところまではできなかったので、
同等機能のものをPHPでさっと書いてみた。

(中身が怪しいので解説だけ)
virtual_domainsのディレクトリからメーリングリストを一覧にする
登録者はmemberを読み込んで表示
makefml addとmakefml byeだけ受け付ける

これをPHPで書いてしまったが、SuEXECでfmlユーザーとして動かす。
fcgi経由にする。
yum install mod_fcgid
vi /home/fml/public_html/php-cgi

#!/bin/sh
exec /usr/bin/php-cgi

httpd.conf

<Directory /home/fml/public_html>
RemoveHandler .php
RemoveType .php
<FilesMatch \.php$>
SetHandler fcgid-script
</FilesMatch>
AddHandler fcgid-script .php
FCGIWrapper /home/fml/public_html/php-cgi .php
Options ExecCGI
</Directory /home/fml/public_html>

これで~fml以下のPHPはcgi版としてSuEXECされて動くので、
exec(‘makefml add hoge-ml@exmaple.com fuga@example.com’);
とか動かせばメーリングリストの管理ができるということで。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください