●Sendmailでfmlの設定
 
Sendmailとfmlをつかって、メーリングリストが使える環境を構築します。
今回の環境は、CentOSです。
 
Sendmailは最初から入っているので、yumか何かで最新式にしておけば問題ない思います。Sendmailの詳しい説明はここではしないので、Sendmail.mcの設定なんかを参考にしてください。
 
fml本体をfml mailing list serverからダウンロードして展開します。今回はVer4を使用しました。展開はユーザーfmlを作ってfmlユーザーで展開します。展開する前に必要なフォルダも作成しておきます。SSHでチェック・インスコするために、シェルをもたしパスワードも設定します。
# su (ルートになる)
# /usr/sbin/adduser fml
# passwd fml
# fmlのパスワード入力
# exit(いったんログアウトして、fmlでログイン)
 
-こっからfmlの権限-
# su (ルートになる)
# mkdir /usr/local/fml /var/spool/ml     
//展開するフォルダと、MLができるフォルダ
# chown fml /usr/local/fml /var/spool/ml  
//権限をfmlに変更
# exit(ルートからfmlにもどり)
# tar zxvf fml-4.0-stable-20040215.tar.gz
//ここでエラーでる場合は、フォルダの属性なんかを変えてみてください。
 
# cd fml-4.0-stable-20040215
# make install RECOMMEND=yes
//fml 4.0 ではRECOMMEND=yesで最初から厳し目の推奨設定をセットアップできるそうです。
# ---NOT USING configuration file (for the first time)
 THIS HOST (beth.fml.org) IS [i386-unknown-netbsd1.4.]
 ---Please Define Your Fml System Configurations Personal Use or
 ・
 ・
 ・
//いろいろ聞かれますが、そんなに難しくないので環境にあった選択をしてください。
# Done.
 -- Enjoy Internetworking!
これで、/usr/local/fmlに展開されました。実際にMLが機能しているかチェックします。後ほど、ブラウザーで管理できるようにCGIを入れます。
//ML elenaを作成。
# /usr/local/fml/makefml newml elena
・・・メッセージ省略・・・

 
//aliasesにひもづけ。この作業は現時点では、ルートで。
# su
# Password:
# cat /var/spool/ml/elena/aliases >> /etc/aliases //「>」にすると上書きされるので注意!
# newaliases
# exit (ルートからfmlにもどり)

 
//自分を登録
# /usr/local/fml/makefml add elena 自分のメールアドレス
この後、elena@ドメインにメールを送って、MLが機能していることを確認してください。
カスタマイズは、
/usr/local/fml/makefml config ML名
でいろいろできます。例えば、件名にML名と連番を出したりできます。そんなに難しくはないので、ここでは省略!
 
次は、ブラウザでMLが管理できるようにします。今回は、apacheのsuexecを使用しました。ソースからコンパイルしている場合は、以下を参照。
# su
# cd apache-1.3.33/
# ./configure --enable-module=so --enable-suexec --suexec-caller=www
# make
# make install
# exit (ルートからfmlにもどり)
# mkdir /usr/local/fml/public_html
 //この中にCGIを展開します。
「--suexec-caller=www」のwwwはapacheのユーザを入れてください。apacheを起動したときに、
「suEXEC mechanism enabled (wrapper: /usr/local/apache/bin/suexec) 」
とログに出てればおそらく有効になっています。表示されない場合は、「make clean」などして再度コンパイルしてみてください。
httpd.confの設定は、こちらを参考にしてください。
以上で、「http://hoge.hoge/~fml」というアドレスが有効になり、fmlでCGIが実行でき、fml権限でML(フォルダ)が作成できるようになります。
 
次は、CGIを上記のアドレスに展開します。
# /usr/local/fml/makefml admin.cgi config
以下の手順で設定を変更します。
項目 1 で USE_MOD_SSL を NO に変更。
項目 2 の REAL_CGI_PATH を ~/public_html/cgi-bin/fml に変更。
項目 4 でユーザとパスワードを設定。
項目 5 で、CGI スクリプトを生成。
終了。
public_htmlにcgi-binが作成されている事を確認し、
http://hoge.hoge/~fml/cgi-bin/fml/admin/menu.cgi
にアクセスできることも確認してください。
 
次にsendmailの設定と、aliasの設定です。sendmailはこの時点でメールの送受信ができるようにしておいてください。以下fmlと連動させるための設定です。
# su
# cd /etc/mail/
# vi sendmail.mc
---------------------------------------------------------------
define(`ALIAS_FILE', `/etc/aliases')dnlを以下のように変更
define(`ALIAS_FILE', `/etc/aliases,/var/spool/ml/etc/aliases')dnl

---------------------------------------------------------------
# m4 sendmail.mc > sendmail.cf
# vi trusted-users
 //fmlでnewaliasesが実行できるように
---------------------------------------------------------------
fmlを追加

---------------------------------------------------------------
# /etc/rc.d/ini.d/sendmail restart
# touch /var/spool/ml/etc/aliases.db  
//fmlのaliasを有効にするために作成します。
後は属性の変更が必要です。ここがかなりはまるポイントなので、エラーメッセージを良く読んで理解してください。うまくいってる属性をここに書いておきます。
# /var/spool/ml drwxr-xr-x 8 fml fml
# /var/spool/ml/etc/ drwxr-sr-x 6 fml fml
# /var/spool/ml/etc/aliases -rw-r--r-- 1 fml fml
# /var/spool/ml/etc/aliases.db -rw-rw-rw- 1 root root
# /etc/aliase -rw-r--r-- 1 root root
# /etc/aliases.db -rw-rw-rw- 1 root smmsp
 
//Executable files not allowed なんてエラーが出る場合は、/ から全階層をたどってexecutable bit を落してください。例えば、
# chmod a-x /var/spool/ml
# chmod a-x /var/spool/ml/etc
# chmod a-x /var/spool/ml/etc/aliases
こんな具合だと思います。
権限は、はまりにはまって2日間悩みました。壁|〃´△`)-3ハゥー
fmlユーザーで、「newaliases」を実行して、エラーがでなければブラウザーでの管理が可能です。