メーリングリス トFMLのインストール


1.FMLのダウンロード

fml project top page   より fml-4.0.3.tar.gz をダウンロード

2. fmlユーザの登録

fmlをセットアップするには、必ずfmlユーザ、fmlグループを最高権限とする。したがって、 rootから

Linuxの場合、
# useradd fml

FreeBSDの場合、
# /stand/sysinstall

メニューでユーザとグループを登録する。


3.fmlディレクトリの作成

fmlのディレクトリとメーリングリストディレクトリを作成する。rootから、

# mkdir /usr/local/fml

# chown fml.fml /usr/local/fml

# chmod 755 /usr/local/fml

# mkdir /var/spool/ml

# chown fml.fml /var/spool/ml

# chmod 755 /var/spool/ml


4.インストール

tarボールのソースを解凍してインストールする。

suでfmlに切り替えてから、

$ tar -zxvf fml-***-***.tar.gz

$ cd fml-***-***

$ perl makefml install
[fml@fmv fml-4.0.3]$ perl makefml install
unshift(@INC, /tmp/fml-4.0.3/src)
---NOT USING configuration file (for the first time)

   THIS HOST (fmv.anabuki.instat.ne.jp) IS [i586-pc-linux-gnu]

---Please Define Your Fml System Configurations

Personal Use or ML-Admin-Group-Shared or fmlserv you use?
Personal, Group, Fmlserv (personal/group/fmlserv) [personal]
                                 小 規模のためpersonal
DOMAIN NAME               [anabuki.instat.ne.jp]
FQDN                      [fmv.anabuki.instat.ne.jp]
EXEC FILES DIRECTORY      [/usr/local/fml]
TOP LEVEL ML DIRECTORY    [/var/spool/ml]

Language (Japanese or English) [Japanese]


TimeZone (TZ: e.g. +0900, -0300) [+0900]


  --- summary ---
      DOMAIN: anabuki.instat.ne.jp
        FQDN: fmv.anabuki.instat.ne.jp
    EXEC_DIR: /usr/local/fml
      ML_DIR: /var/spool/ml
    Language: Japanese
    TimeZone: +0900


The current configuration is saved in /usr/local/fml/.fml/system

---Install the Fml system to /usr/local/fml. (y/n) [n] y

Installing fml system to /usr/local/fml
Fixing Path: src ...............................................................
............. libexec ..... sbin . cf . bin .................... www/cgi-bin ...
...... www/lib ... sys ......... module ..
        Done.

Generate nroff manuals:

Installing bin ...
Installing sbin .
Installing libexec .
Installing cf .
Installing etc ....
Installing sys ..
Installing src .......
Installing drafts ..
Installing messages .....
Installing www ......
Installing module ............
Installing databases ...
Installing doc .................................................................
...................
Done.

Setup CGI examples ........
      CGI configuration is saved in /usr/local/fml/.fml/cgi.conf


 -- Enjoy Internetworking!


5.Postfixのmain.cfへの追加点

デフォルトでは :include: が使えないので /etc/postfix/main.cf を次のように変更する。
これで :include: 命令が有効になる。main.cfへ一行定義を追加する。rootから、

# cd /etc/postfix

# vi main.cf

省略

allow_mail_to_commands = alias,forward,include

main.cfの最後に、この記述を、追加しないとPostfix環境でfmlは使えない。


6.各ディレクトリの説明

● /usr/local/fml

fmlの本体及びライブラリを収容。

● /usr/local/fml/.fml

インストール時の基本設定が保存される。

● /usr/local/fml/bin

メーリングリストのテスト用スクリプトを収容。

● /usr/local/fml/doc

fmlのドキュメント関係収容。

● /usr/local/fml/drafts

メーリングリストを作成した時に自動的に作られる。
ドキュメントのひな型が収容されている。

● /usr/local/fml/etc

各種ファイルのひな型が収容されている。

● /usr/local/fml/libexec

POP管理で使うスクリプト及び他のメーリングリストエンジンの互換用I/F収容。

● /usr/local/fml/messages

エラー時に返す文字列の収容。

● /usr/local/fml/sbin

fmlインストール時に使われるスクリプトファイル収容。

● /usr/local/fml/sys

OSに依存するファイルが、OS別に収容。

● /var/spool/etc

この中には、マシン共通のメーリングリスト設定ファイルが収容。


7.メーリングリストの作成

実際のメーリングリストを作る手順。fmlユーザから、

$ /usr/local/fml/makefml newml test

[fml@fmv etc]$ /usr/local/fml/makefml newml test
DO "newml" for test mailing list.
---Creating test mailing list
   directory /var/spool/ml/test is created as UID=12346
   directory /var/spool/ml/test/spool is created as UID=12346
---Generting configuration examples.

   Generate template files in /var/spool/ml/test/
         include include-ctl include-mead aliases Makefile crontab
         fmlwrapper.c fmlwrapper.h

   Generate qmail template files in /var/spool/ml/etc/qmail/alias/
         .qmail-test .qmail-test-ctl .qmail-test-default .qmail-test-admin
         .qmail-test-request .qmail-owner-test .qmail-owner-test-ctl

   Update /var/spool/ml/etc/qmail/users/assign

   Update /var/spool/ml/etc/crontab/fml

   Create config.ph(/var/spool/ml/test/config.ph):
        /var/spool/ml/test/cf  ->  config.ph ... Done.

   Create template files for commands (help, guide ...)
         help help-admin deny guide welcome confirm objective

   Update /var/spool/ml/etc/aliases

   The next step: update your MTA configuration. For example
        % su root
        # cat /var/spool/ml/test/aliases >> /etc/aliases
        # newaliases

   FYI: See templates in '/var/spool/ml/test/'
done.
testと言うメーリングリストが作られる。


8.aliasesファイルの編集

fmlのaliasesの内容をPostfixのaliasesに登録する。rootから、

# cat /var/spool/ml/test/aliases

この内容を、/etc/aliasesに追記する。

# cp /etc/aliases /etc/aliases.bak

# cat /var/spool/ml/test/aliases >> /etc/postfix/aliases

#cp  /etc/postfix/aliases  /etc       私の場合、main.cf で  /etc/aliases.db  を使用する設定としているため。

# newaliases

aliasesの内容を反映。


9.その他

● testの設定

fmlユーザから、

$ /usr/local/fml/makefml config test

省略

メニューにしたがって設定する。

● メーリングリストユーザの登録

fmlユーザから、

$ /usr/local/fml/makefml add test hoge@hogehoge.com

省略

以上で、設定完了。後はテストであるが、登録したメンバーからFMLサーバーである test@hogehoge.jp に送信すると登録メンバーに同一のメールが同報される。
上の設定でタイトルの設定をしておけばメーリングリストによる配信の番号が付加される。

To:test@hogehoge.jp
from:hoge1@hogehoge.jp
Subject:MLテスト
本文

これはMLの動作テストのメールです。




 hoge1@hogehoge.jp、hoge123@hoge.co.jp、test@hogehoge.jp に 下の同じメールが配信されるはずです。

    From: hoge1@hogehoge.jp
    Reply-To: test@hogehoge.jp
    Subject: [test:0001] MLテスト
    To: test@hogehoge.jp
    本文

      これはMLの動作テストのメールです。
メーリングリストのメンテ

ユーザを削除する時
$ makefml bye test user1@ws.elsewhere.japan
とします。さらに /var/spool/ml/test/log にこの作業の内容が記録されます。

直接編集する時

/var/spool/ml/test にある members と actives というファイルに
user1@ws.elsewhere.japanを追加すれば完了です。
削除する時は members と actives というファイルから
user1@ws.elsewhere.japan という行を削除します。


test ML を削除する時
rm -rf /var/spool/ml/test

ML ディレクトリを削除。
/etc/postfix/aliases から該当する (test ML に関係する)部分を消し  /etc にコピーした上で
#newaliases
でデータペースを更新する。

10.CGIの設定
今回の目的であるCGI版のインストールをします。今回は、apacheのBasic 認証
を使用します。
まず、HTMLの格納エリアを作成する。
$ mkdir ~/public_html
$ mkdir ~/public_html/cgi-bin
$ mkdir ~/public_html/cgi-bin/fml
$ mkdir ~/public\html/cgi-bin/fml/admin

$ ./makefml admin.cgi config
変更部分のみ記載
1 USE_MOD_SSL NO
2 REAL_CGI_PATH /home/fml/public_html/cgi-bin/fml
4 CHANGE PASSWORD  必須事項 ログイン時の認証用
6 MTA postfix
7 HOW TO UPDATE ALIAS postalias /var/spool/ml/etc/aliases

設定後、[5]を選択して、スクリプト再構築を行ない、最後に[0]を選択する。
ここでどうもうまく動作していないのか、cgi ファイルが所定の所にインストールされない。
 仕方ないので、/usr/local/fml/www/cgi-bin/fml/admi/ にある cgi ファイルを手動でコピーした。

CGIをApacheで動作させるための設定
$ cd /home/fml/public_html/cgi-bin
$ vi .htaccess
AddType text/x-server-parsed-html .htm
AddType application/x-httpd-cgi .cgi

 以下は、類似のものが初期設定で記載されているのでコメントマークを削除
<Directory /home/*/public_html>
AllowOverride FileInfo AuthConfig Limit
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec ExecCGI追記
</A>

AddHandler cgi-script .cgi

apacheの実行権nobodyでアクセスできるように、まず、fmlのグループに
nobody を追加する。
#adduser -G fml nobody
その後、
$ chmod g+rx /home/fml
$ chmod g+rx /usr/local/fml/www/authdb
$ chmod g+rx /usr/local/fml/www/authdb/admin
$ chmod g+r /usr/local/fml/www/authdb/admin/htpasswd
$ chmod g+w /var/spool/ml /var/spool/ml/etc
で、nobodyからのアクセスを許可する。

Apacheの再起動を行う。
# /usr/local/apache/bin/apachectl restart

  これで認証が動くはずなのだが、上の config がうまく動かなかった影響か認証のウィンドウが
  表示されずそのまま入れてしまう。
  これを防ぐため、nagios の設定をコピーした。~/public_html/cgi-bin/ に以下の内容の
  .htaccess を作成
  AuthName "FML Access"
  AuthType Basic
  AuthUserFile /usr/local/fml/www/authdb/admin/htpasswd
  require valid-user


3) postfix の /etc/postfix/main.cf を
==== /etc/postfix/main.cf ====================================
alias_database = hash:/etc/aliases, hash:/var/spool/ml/etc/aliases
これは効いていないようである。結局上と同じでroot になって/etc/aliases に追記し、 newaliases を実行せざるを得なかった。
その後、main.cf の最後に alias_maps = hash:/var/spool/ml/etc/aliases と追記し、CGI の設定である
 $ ./makefml admin.cgi config
  で7のHow To Update Aliase を postalias /var/spool/ml/etc/aliases  
  とする事でWebからのメーリングリストの追加もできるようになり正常に動作した。

 を、修正し再ロードします。
# /usr/sbin/postfix stop
# /usr/sbin/postfix start


4) 確認
netscapeかIEを使って、「http://「ホスト名」/~fml/cgi-bin/fml/admin/menu.cgi」
を、アクセスすることで確認できます。
また、登録等を行なったときにパーミッションエラーが出たときは、nobodyで
アクセスできるか確認してください。


FML−CGI動作画面