FMLをGUIで操る

はじめに

お客さんから「FMLのGUI作ってぇ~」と言われ、やってみました。
Googleで調べたドキュメント類は、どれもこれも中途半端。微妙に動かない。
本家のドキュメントもちょっと表現が足りない。
そこで、自分で苦労したところを含めてFMLのGUIの立ち上げまでサポートしちゃいます。

前提条件

CentOS 5.3
Postfix(OS標準)
Apache(OS標準)
FML 4.0.3

インストール作業

ユーザとディレクトリの作成

  • FMLの管理はrootユーザではなく、一般のユーザで行います。fmlというユーザを作ります。
  [root ~]# adduser fml

  • ユーザfmlでログインし直してFMLをインストールするディレクトリとMLを入れるディレクトリを作り、パーミッションとオーナーを設定します。

  [fml ~]# mkdir public_html
  [fml ~]# su -
  パスワード: **********
  [root ~]# mkdir /usr/local/fml /var/spool/ml
  [root ~]# chown fml.fml /usr/local/fml /var/spool/ml
  [root ~]# chmod 755 /usr/local/fml /var/spool/ml

  • SuEXECでfml以下の public_html を使用するのでホームディレクトリのパーミッションを変更します
  [root ~]# chmod 755 /home/fml


FMLの入手


本家FMLサイトからダウンロードします。

展開とインストール

  • tar で展開します。
  [fml@postfix ~]$ tar zxvf fml-4.0.3.tar.gz
  fml-4.0.3/
  fml-4.0.3/src/
  fml-4.0.3/src/fml.pl
  fml-4.0.3/src/libcompat_fml20.pl
       :
      中略
       :
  fml-4.0.3/README.en
  fml-4.0.3/INSTALL.jp
  fml-4.0.3/INSTALL.en
  [fml@postfix ~]$

  • コマンドを実行してインストールを行います。
 FQDNには自信のホスト名のFQDNを、DOMAINにはMLのドメインを入力します。

  [fml@postfix ~]$ cd fml-4.0.3
  [fml@postfix fml-4.0.3]$ perl makefml install
  Personal Use or ML-Admin-Group-Shared or fmlserv you use?
  Personal, Group, Fmlserv(personal/group/fmlserv) [personal]
  DOMAIN NAME        [hogehoge.jp]
  FQDN            [ml.hogehoge.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]

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

  • CGIの準備
makefml を起動し cgi スクリプトを作ります。
  [fml@postfix fml-4.0.3]$ perl makefml admin.cgi config

   ************************************************************

   <<< makefml --- FML CGI Configuration Interface --- >>>

  0 END
  1 USE_MOD_SSL NO
  2 REAL_CGI_PATH /home/fml/public_html/cgi-bin/fml
  3 CGI_AUTHDB_DIR /usr/local/fml/www/authdb
  4 CHANGE PASSWORD
  5 REMAKE CGI SCRIPTS
  6 MTA postfix
  7 HOW TO UPDATE ALIAS postalias /var/spool/ml/etc/aliases

  which ? (0-7) [0]

メニューが表示されますので、各パラメータ[1] [2] [3] [6] [7] を上の様に書き換えてください。
書き変えたら [4] を選択して 管理者ユーザのパスワードを変更します。
最後に[5]を実行したのち、[0] でメニューから抜けます。
なぜか、1回目の実行ではスクリプトは作成されません。
もう一度perl makefml admin.cgi config を実行し、[5]を実行してスクリプトを作ってください。

* create /home/fml/public_html/cgi-bin/fml/admin/.htaccess
* create CGI scripts in /home/fml/public_html/cgi-bin/fml/admin/
  menu.cgi makefml.cgi mlmenu.cgi menubar.cgi index.cgi newml.cgi rmml.cgi

と表示され数秒後にメニューに戻れば成功です。
[0] で終了してください。

postfixの設定

MTAの切り替え

CentOSは標準でMTAにsemdmailを使用するのでこれを変更します。
[root ~]# alternatives --config mta

2 プログラムがあり 'mta' を提供します。

選択 コマンド
-----------------------------------------------
+ 1 /usr/sbin/sendmail.postfix
* 2 /usr/sbin/sendmail.sendmail

Enter を押して現在の選択 [+] を保持するか、選択番号を入力します:2

  • sendmailの停止
CentOSは入れただけで勝手にsendmailが動きだすので止めます。
[root ~]# service sendmail stop
sm-client を停止中:          [ OK ]
sendmail を停止中:          [ OK ]
[root ~]#

postfixのコンフィグ

普通に設定してください。どうせメールボックスは使いませんので基本的に以下の設定で

変更 mydomain=
変更 myorigin=
変更 inetinterface=all

変更 alias_maps = hash:/etc/aliases hash:/var/spool/ml/etc/aliases
行追加 allow_mail_to_commands = alias,forward,include

  • エイリアスの作成
  [fml@postfix ~]$postalias /var/spool/ml/etc/aliases

Apacheの設定

fml はユーザ権限で動くため、ApacheではSuEXEC できるようにします。
あまり変更する必要はありませんが、以下の部分の変更を行います。

/etc/httpd/conf/httpd.conf を編集します。

UserDir disable  --> コメントアウトする
#UserDir public_html --> コメントインする
AddDefaultCharset UTF-8 --> コメントアウトする
#AddHandler cgi-script .cgi --> コメントインする

以下の行を追加
<Directory /home/fml/public_html/>
  AllowOverride FileInfo AuthConfig Limit
   Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec ExecCGI
   <Limit GET POST OPTIONS>
       Order allow,deny
       Allow from all
   </Limit>
   <LimitExcept GET POST OPTIONS>
       Order deny,allow
       Deny from all
   </LimitExcept>
</Directory>

以下の行を削除(コメントアウトしても良い)
<Directory /home/*/public_html>
  AllowOverride FileInfo AuthConfig Limit
   Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
   <Limit GET POST OPTIONS>
       Order allow,deny
       Allow from all
   </Limit>
   <LimitExcept GET POST OPTIONS>
       Order deny,allow
       Deny from all
   </LimitExcept>
</Directory>

これで、設定は終わりです。

FMLにログインしてみる


以下のようにブラウザからアクセスします。
認証ダイアログが出ますので、先ほど設定したIDとパスワードを入れてください

http://[server.ip.add.ress]/~fml/cgi-bin/fml/admin/menu.cgi

  • 最終更新:2009-08-26 14:11:52

このWIKIを編集するにはパスワード入力が必要です

認証パスワード