	fml CGI インタフェイスの設定について

------------------------------------------------------------
1	概要
1.1	fml CGI インタフェイス
1.2	インストールの方法は？
1.3	fml CGI専用サーバを作らないと駄目ですか？
1.4	apache で SSL がちゃんとうごいているか？

2	Q and A
2.1	fml のインストールが終りました。その次は？
2.2	何ができますか？
2.3	ということは管理者向けですか？
2.4	/var/spool/ml/ 以下のオーナーは？
2.5	httpd.conf は fml/www/share/ の下について設定すれば十分か？
2.6	fml/www/ と fml/www/share/ の違いは？
2.7	CGI 導入以前に作られたものはどう処理する？自動的に有効か？
2.8	CGI を操作可能なユーザの追加と削除
2.9	CGI を操作可能なユーザのパスワード変更
2.10	メールサーバの選択
2.11	WWW下のCGI PATHは？
2.12	MTA 依存の問題: postfix 特有の事情
2.13	sendmail 特有の事情
2.14	qmail
2.15	apache が Forbidden とエラーをはく
2.16	登録作業は独立 ??

3	tips
3.1	Webサーバとfmlのサーバが別の時に何かいい方法は？

Appendix A	CGI のよもやまのメモ
Appendix A.1	基本的なディレクトリ構成
Appendix A.2	パスワードファイル
------------------------------------------------------------


1	概要

1.1	fml CGI インタフェイス

fml のメニュー設定プログラムは２つあります。

	CUI として makefml をコマンドラインで走らせる

	GUI として CGI 経由で makefml を動かすという
	WWWからの操作

です。GUI はCGIのことをさしています。

1.2	インストールの方法は？

PLAINTEXT は

	doc/INSTALL_CGI.jp 

というファイルを見て下さい。HTML なら

	http://www.fml.org/fml/INSTALL_CGI/

を見て下さい。

1.3	fml CGI専用サーバを作らないと駄目ですか？

いいえ。INSTALL_CGI を見て下さい。
document 本編は fml GUI 専用サーバを作る前提ですが、
付録で suexec を使う例が説明されています。

default （fml CGI 専用）では apache が CGI を実行する時は

	/usr/local/apache/conf/httpd.conf 

の User 行(nobody が default)で定義されているユーザ権限で実行します。
当然 apache が実行するCGIもそのユーザの権限になります。よって、そのユー
ザが /usr/local/fml /var/spool/ml を読み書きできることが必要です。

[ インストールの確認点 ]

(fml の INSTALL ドキュメントにあわせるなら)

0. httpd.conf は User fml にします。

1. /usr/local/fml 以下が 仮想ユーザ fml で見えること 仮想ユーザ fml の
   人が .cgi のファイルが実行できること

2. /var/spool/ml 以下すべて 仮想ユーザ fml の人に読み書きできるように
   なっていること

を確認します。

1.4	apache で SSL がちゃんとうごいているか？

apache で SSL を有効にしてスタートすれば apache/logs/error_log に

[Wed Nov 10 23:27:07 1999] [notice] Apache/1.3.9 (Unix) mod_ssl/2.4.8 OpenSSL/0.9.4 configured -- resuming normal operations

のように SSL が動いてるぜといいます。いってないなら
apache の作成に失敗している可能性大です。

2	Q and A

2.1	fml のインストールが終りました。その次は？

	../../INSTALL_CGI/

2.2	何ができますか？

画面に書いてあることだけです。

2.3	ということは管理者向けですか？

現状ではそうです。各ＭＬ管理者がそれぞれのＭＬをWWWで設定を変更するこ
とはできます。

「＊＊ＭＬを WWW で登録可能にする」ということは実装されていません。
それを可能にする(例えば以下に本人が登録を使用としているかを認証するか？)
にはもっとよい認証モデルを考え出さないといけません。

すなおにメールで confirmation を返せばいいのかも知れませんが、それなら
別にWWWでやらなくてもいいでしょう（ mailto: でもつかったページ作ってお
けばすむことでは）

2.4	/var/spool/ml/ 以下のオーナーは？

apache の設定依存です。
apache のプロセスのオーナ(ユーザ)が読み書きできないといけません

fml GUI 専用WWWサーバなら apache の User の行と合わせます。他の user 
権限をどーたらこーたら（ apache の本なりその筋に聞くなりしてね ）して
いるなら、そのユーザに合わせます。例:

   apache/httpd.conf

	User fml

そして  /var/spool/ml/ 以下の owner も fml

2.5	httpd.conf は fml/www/share/ の下について設定すれば十分か？

はい、そういう設定です。

2.6	fml/www/ と fml/www/share/ の違いは？

www 経由でアクセスさせる場所が fml/www/share/
ライブラリやテンプレートを格納する場所が fml/www/

2.7	CGI 導入以前に作られたものはどう処理する？自動的に有効か？

オーナが同じであれば yes

2.8	CGI を操作可能なユーザの追加と削除

1.	CGI からおこなう

2.	makefml admin.cgi conf

	MENU -> CHANGE PASSWORD

2.9	CGI を操作可能なユーザのパスワード変更

GUI: メニューの『管理者パスワードの設定』で設定

初期設定の時だけは 'admin' コマンドでつかうものを自動的に htpasswd へ
反映させる。その後は自動 sync はしない(別のパスワードを使えるように)

2.10	メールサーバの選択

makefml admin.cgi conf

   MENU -> 	
	6     MTA                
	7     HOW TO UPDATE ALIAS

2.11	WWW下のCGI PATHは？

makefml でインストールする時に決まる

2.12	MTA 依存の問題: postfix 特有の事情

   % postalias /var/spool/ml/etc/aliases

を実行すること(実行するのはユーザ fml )。

2.13	sendmail 特有の事情

/var/spool/ml/etc/aliases.db に root 権限のファイルが必要

インストール後に root になって

   # touch /var/spool/ml/etc/aliases.db 

しておく必要がある

2.14	qmail

「qmail はどうすればいいんだろぉ…」とおもったけど一回設定したら要らな
いのか？という気がするが、ためしたことがない;-)

2.15	apache が Forbidden とエラーをはく

例: /usr/local/apache/logs/error_log で

You don't have permission to access /cgi-bin/fml/admin/menu.cgi on this server.

0. apache の User と /usr/local/fml のオーナーは一緒ですか？

   もしそうでないなら、suexec なり何か拡張をしているとおもいますが
   その設定は正しいですか？

1. /usr/local/fml/www/share/ の menu.cgi に permission がない(?)

   その menu.cgi を apache の User が実行可能ですか？

2. ディレクトリに permission がない

	/usr/local/fml/www/share/
	/usr/local/fml/www/

   以下の permission を確認して下さい。

3. apache のCGIまわりの設定 (/usr/local/apache/conf/)

	Directory ディレクティブ
	.htaccess ?
	そもそも.htaccessを許してない
	…その他いろいろ…

2.16	登録作業は独立 ??

もちろん WWW の機構と自動登録機構は独立したものなので、どっちを利用し
ても登録作業はできます。入りたいユーザにどうしてもらうか？は運用形態の
問題です(管理者の手間暇をかけるか、かけないかとか…)

3	tips

3.1	Webサーバとfmlのサーバが別の時に何かいい方法は？

WWW サーバで登録し、登録は fml のサーバで、そして、その結果を WWW サー
バで表示したい。つまり連携プレーをする必要があります。

fml GUI は makefml -i STDIN でコマンドを放り込むという方法で実装されて
います。入力されたもののチェックは makefml はしていません。フロントエ
ンドのGUIの方でやります。

   WWW --- 適当なTCPポート --->  fml  (inetd にしかける)

で inetd 経由で makefml をひっぱたくと簡単なはず。perl で TCPのコード
を書かなくても WWW から

   % socket fmlのほすと 適当なTCPポート

とかして STDIN で "newml elena アドレス" とか突っ込んでもかんたんやね
＃実はGUIの下請けをこれですると、別のマシンでGUIができるのか？

もち Net::Telnet とか応用してもいいですが…

Appendix A	CGI のよもやまのメモ

以下では

   $EXEC_DIR = '/usr/local/fml' 

Appendix A.1	基本的なディレクトリ構成

   $EXEC_DIR/www/ 	  template やライブラリの場所
   $EXEC_DIR/www/share/   以下はWWWで見える場所、つまり httpd の管理下。
   $EXEC_DIR/www/authdb/  パスワードの実体置き場

Appendix A.2	パスワードファイル

	$EXEC_DIR/www/cgi-bin/admin/.htaccess 

の参照するパスワードは 

	$EXEC_DIR/www/db/admin/htpasswd

のような関係になる。デフォールトは設定されない。インストール後に

	makefml admin.cgi conf

のメニューからパスワードの設定を選び、ユーザとパスワードは設定してください。

$Id: misc.wix,v 1.2 2000/12/07 16:48:25 fukachan Exp $


		INDEX

