Sympa と WWSympa とは多くのファイルを共用しているので、wwsympa.fcgi は archived.pl、bounced.pl、sympa.pl と同じ UID/GID で動作させなければなりません。これを実現するやりかたはいくつかあります:
これが標準の方法ですが、セキュリティが低くなるかもしれません。configure で --enable_secure オプションを設定しなかったのなら、 wwsympa.fcgi は SetUID ビットをセットしてインストールされています。多くのシステムでは、suidperl パッケージをインストールする必要があるでしょう。
5.4 版からは、前節で述べた C のラッパが自動的にビルドされるようになりました。
wwwsympa.fcgi を小さな C のラッパプログラム wwsympa-wrapper.fcgi から実行することで、— セキュアでなくメンテナンスも止まっている — SetuidPerl モードを使わなくてすみます。
wwsympa.fcgi をユーザ sympa で動作させるのに sudo を使う。Apache の設定では wwsympa.fcgi のかわりに wwsympa_sudo_wrapper.pl を使わなければなりません。また、/etc/sudoers ファイルを (visudo コマンドで) 以下のように変更します:
apache ALL = (sympa) NOPASSWD: /home/sympa/bin/wwsympa.fcgi
また、sudoers ファイルでは requiretty フラグと env_reset フラグをセットしないようにしなければなりません。
#Defaults requiretty #Defaults env_reset
requiretty をセットすると、実際にログインしたユーザが有効期間の間だけ実行できます。env_reset をセットすると、ほとんどの環境変数……サーバ名や要求された URI など……が無視されてしまいます。
uid:gid を sympa:sympa とした専用の Apache サーバを稼働させる (Apache の初期値は apache:apache などです)。
Apache の仮想ホストで uid:gid を sympa:sympa にしたものを使う。Apache を suexec 対応でコンパイルしておく必要があります。Apache の suexec では普通、suEXEC の対象となるユーザの UID/GID に下限がありますので気をつけてください。Apache のバイナリ配布を含む多くのシステムでは、初期値は通常 100 です。したがって Sympa の UID (と GID) を 100 より大きくするか、より小さい UID/GID を使えるように suexec のほうを変えるかしなければなりません。詳しくは http:httpd.apache.org/docs/suexec.html#install を調べてください。 User ディレクティブと Group ディレクティブは、FastCgiServer ディレクティブ (後述) より前に記述しなければいけません。
この後未訳 apache_suexec
<html><a name=“installing_wwsympa.fcgi_in_your_apache_server” /></html>
=====wwsympa.fcgi の Apache サーバへのインストール=====
<note>以降の例では、5.3 版の既定の動作 (wwsympa.fcgi のアクセス権限 wwsympa.fcgi ですが、設定によって次のように変えてください。
* sudo を使っているのなら、wwsympa.fcgi の呼び出しは wwsympa_sudo_wrapper.pl に読み替えます。
* Sympa 5.4 以降の既定の動作 なら、 wwsympa.fcgi の呼び出しを wwsympa-wrapper.fcgi に読み替えます。
</note>
まず、Sympa が静的なコンテンツ (CSS、メンバのピクチャ、ドキュメントなど) を入れるディレクトリのエイリアスを設定して、それを Apache が直接公開できるようにする必要があります。
例:
Alias /static-sympa /home/sympa/static_content
wwsympa.fcgi を単なる CGI として実行することにしたときは、スクリプトエイリアスにするだけです。
例:
ScriptAlias /sympa /home/sympa/bin/wwsympa.fcgi
FastCGI での実行はサーバのより高速な応答と負荷低減になります (理由を知りたければ [http:www.fastcgi.com/devkit/doc/fcgi-perf.htm]] を読んでください)
mod_fcgid Apache
LoadModule fcgid_module modules/mod_fcgid.so
<IfModule mod_fcgid.c>
IPCCommTimeout 120
MaxProcessCount 2
</IfModule>
<Location /sympa>
SetHandler fcgid-script
</Location>
ScriptAlias /sympa /home/sympa/bin/wwsympa.fcgi
mod_fastcgi Apache
LoadModule fastcgi_module modules/mod_fastcgi.so FastCgiServer /home/sympa/bin/wwsympa.fcgi -processes 2 <Location /sympa> SetHandler fastcgi-script </Location> ScriptAlias /sympa /home/sympa/bin/wwsympa.fcgi
仮想ホストを実行しているときは、それぞれの FastCgiServer で複数のホストを扱えます。なお、FastCgiServer は Apache の設定の共通セクションで定義する必要があります1).
FastCGI は、CGI を拡張して、プログラムに永続性を持たせます。これは WWSympa にとって極めて有用です。なぜなら、ソースコードの解釈や初期化の処理すべてを、wwsympa.fcgi のプロセスが起動する最初の一回だけ実行すればよくなるからです。起動したプロセスはサーブレットやデーモンのように動作し、クライアントからのリクエストを繰り返し受け付けます。
WWSympa は FastCGI なしでも動作します (use_fast_cgi パラメータを調べてください) が、パフォーマンスが非常に悪くなります。
WWSympa を FastCGI で実行するには、次のものをインストールする必要があります。
FCGI Perl モジュール (installing_perl_and_cpan_modules 参照)mod_fastcgi の最大の違いは、fastcgi スクリプトが Apache の起動時に起動するのではなく、クライアントのリクエストがあって初めて起動するという点です。Sympa が動作するようになったらまず、特権ユーザ (リストシステム管理者) としてウェブインタフェースにログインしなければなりません。そうすると、管理インタフェースを使ったり、メーリングリストを作成したりできるようになります。
sympa.conf (か robot.conf) の listmaster 設定パラメータ (exp-admin 参照) では、リストシステム管理者に複数の電子メールアドレスを指定することもできます。メインのロボット (sympa.conf で設定したもの) のリストシステム管理者は、仮想ホストについてもリスト管理者権限を持ちますが、それぞれの仮想ホストに関するさまざまなメール通知 (リスト作成、警告など) は受け取りません。
リストシステム管理者は、自身の正式な電子メールアドレスをユーザ名としてログインしなければなりません (listmaster@my.host ではなく)。電子メールアドレスのパスワードは、sympa.conf に設定してあるわけではありません。ウェブインタフェースで「自分にパスワードを送信」ボタンを押したときに初めて、Sympa が決めます。利用者は誰でも、「個人設定」メニューで自分のパスワードを変更できます。
なお、ウェブインタフェースを使うには sympa.pl のプロセスを起動しておかなくてはいけません。これがパスワード通知などのメールメッセージの配送を受け持っているからです。
翻訳作業については 訳語について も参照してください。