インストール (ソースパッケージ)

提供: Sympa-JA
移動: 案内, 検索

このページでは、Sympaのソースパッケージからのインストール手順を説明します。

ここでは、メール転送エージェントとしてPostfixを、ウェブサーバとしてApache HTTP Server、バックエンドデータベースにMySQLを使う例を説明します。

目次

必須事項

SympaはPOSIX準拠のオペレーティングシステムの上で動作します。Microsoft Windows上では動作しません。

Perlインタプリタのバージョン5.8.0以降が必要です。

Postfixの2.0以降、Apache HTTPdの1.3.x以降、MySQLサーバの4.x???以降が必要です。

必要なツール

Sympaのコンパイルとインストールのためには、次のツールが必要です。

  • ANSI C準拠のCコンパイラ。GCC Cコンパイラなど。
  • Perl 5.8.0以降。
  • Subversionで最新安定版をチェックアウトした場合 (後述) は、次のソフトウェアも必要です。
    • autoconf
    • automake
    • pkgconfig
    • gettextの開発用ファイル。オペレーティングシステムがパッケージシステムを採用している場合は、「開発」パッケージをインストールします。

必要なソースパッケージ

Sympa

(選択肢1) リリース版を使う

リリース版がソース配布物の形で配布されています。Sympa配布サイトからダウンロードします。

2010年9月現在の最新リリース版はバージョン 6.1.4 です。

 $ wget http://www.sympa.org/distribution/sympa-6.1.4.tar.gz
 $ http://www.sympa.org/distribution/sympa-6.1.4.tar.gz.md5
 $ md5sum sympa-6.1.4.tar.gz

md5sumコマンドの出力するダイジェスト値がsympa-6.1.4.tar.gz.md5の内容と一致することを確認します。md5sumコマンドがないオペレーティングシステムでは、他の同様なコマンドを使ってください。たとえば、OpenSSLがインストールされていれば次のようにできます。

 $ openssl dgst -md5 sympa-6.1.4.tar.gz

(選択肢2) 最新安定版を使う

せっかくソースコードからインストールするのなら最新安定版をインストールすることをお勧めします。リリース後の致命的なバグやセキュリティホールが修正されています。

2010年10月現在の安定版は6.1.xです。Subversionを使って最新安定版をチェックアウトします。

 $ svn co https://svn.cru.fr/sympa/branches/sympa-6.1-branch sympa-6.1-branch
 $ cd sympa-6.0-branch

FastCGI

ApacheにFastCGIモジュールを組み込みます (ウェブインタフェースを使うのなら、強くお勧めします)。主に2種類の実装があります。

FastCGIサイトからソースパッケージ (2010年9月現在の最新安定版は mod_fastcgi-2.4.6.tar.gz または fcgi-2.4.0.tar.gz) をダウンロードします。

コンパイルには、Apacheのヘッダファイルやapxsコンフィギュレーションツールも必要です。

  • Apacheをソースコードからコンパイルしてインストールしたのであれば、必要なファイルはインストールされているはずです。
  • Apacheをオペレーティングシステムのパッケージシステムでインストールしたのであれば、Apacheの「開発」パッケージをインストールしなければならないかもしれません。

CPANモジュール

以下のCPANモジュールが必要です。CPANを利用すれば自動的にダウンロード、コンパイル、インストールすることができます (もちろん、ソース配布物をダウンロードして自分でコンパイル、インストールすることもできます)。

インストールするオペレーティングシステムがパッケージシステムを採用している場合は、多くのCPANモジュールをコンパイルなしにインストールできます (パッケージシステムでのインストールについてはRHEL5、CentOS5DebianFreeBSDについての情報も参照してください)。
古いバージョンのCPANモジュールが既にインストールされていて、それをSympaに必要な新しいバージョンで上書きしたくないときは、CPANモジュールをSympa専用にインストールすることもできます。CPANモジュールをSympaのみで使うを参照してください。

インストールの手順

依存ソフトウェアのインストール

依存ソフトウェアがインストールされていなければ、インストールします。

  1. #必要なツールをインストールします。
  2. Perlをインストールします。
  3. Postfixをインストールします。
  4. Apacheをインストールします。
  5. MySQLサーバをインストールします。
  6. #CPANモジュールで説明したモジュールをインストールします。

実行ユーザの作成

Sympaのデーモンを実行するUnixユーザとUnixグループを作成します。通常は「sympa」という名前にします。UID、GID、ホームディレクトリの場所は任意です (ここでは9001、9001、/home/sympaとしました)。

 # groupadd -g 9001 sympa
 # useradd -g sympa -u 9001 -d /home/sympa sympa

バックエンドデータベースの設定

MySQLサーバがUTF-8のデータを正しく扱えなければなりません。次を実行し、

 # mysqladmin variables | grep character_set_

キャラクタセット初期値が latin1 などになっていたら変更します。MySQLサーバの設定ファイル (/etc/my.cnfなどにあります) に次の記述を追加します。

[mysqld]
default-character-set = utf8
[mysqldump]
default-character-set = utf8

MySQLクライアントでも、キャラクタセット初期値をUTF-8にしておく必要があります。SympaをインストールするマシンのMySQL設定ファイル (MySQLサーバを同じマシンで実行しているのなら、上記の設定ファイルがそうです) に、次の記述を追加します。

[mysql]
default-character-set = utf8

また、MySQLサーバが受け取れるSQLパケットの最大サイズを確認します。メッセージの最大サイズ+αのパケットが流れますので、MySQLサーバの設定ファイルで max_allowed_packet パラメータを必要に応じて調整します (次の数値は例です)。

[mysqld]
max-allowed-packet=5242880

そして、MySQLサーバを再起動します。たとえば、Red Hat系のLinuxでは次のようにします。

# service mysqld restart

SympaからMySQLサーバにアクセスするためのデータベースアカウントを作成します。 ここでは、データベースアカウントsympadbuserでlocalhostの MySQL サーバに接続し、データベース sympa を使うとします。

# mysql -h localhost
mysql> GRANT ALL PRIVILEGES ON sympa.* TO 'sympadbuser'@'localhost'
    -> IDENTIFIED BY 'パスワード'";

MySQLサーバをSympa専用にする場合は、MySQLサーバにTCP/IPで外部からアクセスさせる必要はありません。次の設定をすると、MySQLサーバにはホスト内のUNIXドメインソケットを通じてしかアクセスできなくなります。

[mysqld]
skip-networking
バックエンドデータベースにMySQLを使う場合、データベースはSympaの最初の起動時に自動作成されます。ただし、MySQLサーバのrootアカウントにパスワードが設定されているとできません。簡単な対策は、Sympaの最初の起動のときだけrootアカウントのパスワードを無効にすることです (Sympaが無事に起動したらパスワードを設定しなおします)。


Postfixの設定

ここでは、メーリングリストサービスのメールドメイン名がひとつだけの場合の設定を説明します。ひとつのホストで複数のメールドメインを使ってメーリングリストサービスを提供したい場合は、仮想ドメイン (Postfix)を参照してください。

設定ファイルをテキストエディタで編集して、次の例のように変更します。

  • main.cf:
| 1|myorigin = sympa-ja.org
| 2|mydestination = sympa-ja.org, localhost.$mydomain, ...
| 3|alias_maps = hash:/etc/postfix/aliases, hash:/etc/postfix/aliases.sympa, hash:/home/sympa/etc/sympa_aliases
| 4|alias_database = $alias_maps
| 5|local_recipient_maps = unix:passwd.byname $alias_maps
| 6|recipient_delimiter = +
1, 2: メーリングリストサービスのドメイン (ここではsympa-ja.org) あてのメッセージを、メールサーバが受け取れるようにします。
3: Sympa用の固定的なエイリアス (aliases.sympa) とリストごとに作成されるエイリアス (sympa_aliases) を追加します。
6: 可変エンベロープリターンパス (VERP) を使うためにメールアドレスのデリミタを指定します。
  • /etc/postfix/aliases.sympa:
| 1|listmaster: "| /home/sympa/libexec/queue listmaster@sympa-ja.org"
| 2|sympa: "| /home/sympa/libexec/queue sympa@sympa-ja.org"
| 3|sympa-request: postmaster
| 4|sympa-owner: postmaster
| 5|bounce: "| /home/sympa/libexec/bouncequeue sympa@sympa-ja.org"
Sympaに必須のエイリアスを指定します。
1: リストシステム管理者。このアドレスに送られるものは、#最低限の設定で設定したメールアドレスに回送されます。
2: コマンドメールを処理するためのエイリアス。
5: VERPを使った場合のバウンスを受け取るためのエイリアス。

Sympaのインストール

ソースコードの準備

Subversionで最新安定版をチェックアウトした場合は、ソースツリーのトップへ移動し、configure スクリプトを生成します。

 $ cd sympa-6.1-branch
 $ aclocal
 $ automake --add-missing --copy
 $ autoconf

ソース配布物のリリース版の場合、configureスクリプトが同梱されています。配布物を展開し、ソースツリーのトップへ移動します。

 $ gzcat sympa-6.1.x.tar.gz | tar -xvf -
 $ cd sympa-6.1.x
gzcatやtarの実際の名前はオペレーティングシステムによって異なります。例えば、一部のLinuxなどではgzcatは「zcat」です。Solarisではtarではなく「gtar」を使わなければなりません。

make、インストール

configureします。実行例を次に挙げます。

 $ ./configure
configureスクリプトに与えるオプションで、コンパイルとインストールの詳細を変更できます。オプションの詳細を見るには「./configure --help」を実行してください。
Sympaに関するファイルのほとんどは、特にオプションで指定しなければ/home/sympaの配下に置かれます。

コンパイルします。

 $ make

インストールします (root権限が必要です)。

 # make install
Sympa 5.4.x から 6.x へのアップグレードの場合は、旧バージョンからのアップグレードも参照してください。

sympa_wizard をroot権限で起動します。

 # /home/sympa/bin/sympa_wizard.pl

/etc/sympa.conf と /etc/wwsympa.conf が作成されます。いろいろなことを聞かれますが、あとで sympa.conf と wwsympa.conf を修正すればよいのでここでは適当に答えておきます。

次に、sympa_wizard をチェックモードで起動します。

# /home/sympa/bin/sympa_wizard.pl --check

足りないCPANモジュールがあれば、CPANを使ってインストールするかどうか聞いてきます。「y」をタイプすればその場でインストールが始まります。

モジュールのインストールをCPANに任せずに、sympa_wizardを終了して自分でインストールすることもできます。インストールが終わったら、再びsympa_wizardを実行して確認します。

最低限の設定

次に挙げる設定は、最低限やっておかなければなりません。/etc/sympa.conf および /etc/wwsympa.conf をテキストエディタで編集します。

/etc/sympa.conf

 db_type mysql
 db_name sympa
 db_host localhost
 db_user sympadbuser
 db_passwd パスワード
  • サービスメッセージの既存キャラクタセット対応を有効にする (これをしないと、システムから送られる通知などのメールがすべてUTF-8でエンコードされてしまいます)。
 legacy_character_support_feature on
  • リストシステム管理者 (リストマスター) の電子メールアドレスを設定する (電子メールを受け取れるメールアドレスを設定します。このメールアドレスは公開されません)。
 listmaster sympa_admin@sympa-ja.org (例)
  • Sympaが作成するエイリアスファイルの場所。#Postfixの設定で設定したsympa_aliasesファイルの場所を指定します。
 sendmail_aliases /home/sympa/etc/sympa_aliases

そして、空のsympa_aliasesファイルを作成しておきます。

 # touch /home/sympa/etc/sympa_aliases
 # chown sympa:sympa /home/sympa/etc/sympa_aliases
 # newaliases

etc/wwsympa.conf

  • ウェブインタフェースを使う場合は、cookie のドメインを指定する (これをしないと一部のウェブブラウザでログインできなくなります)。
 cookie_domain sympa-ja.org (例)
  • FastCGI (後述) の利用を有効にします。
 use_fast_cgi    1

FastCGIのインストール

オペレーティングシステムがパッケージシステムを採用している場合、FastCGIをコンパイルすることなくインストールすることができる場合もあります。詳しくは、オペレーティングシステムのパッケージリポジトリを参照してください。

Apache HTTP Server向けのFastCGIの実装として代表的なものに、mod_fastcgimod_fcgidがあります。両者ともパフォーマンスに大差ありませんが、後者はマルチスレッドでも安全に動作します。

mod_fastcgi

mod_fastcgiの使用は推奨されません。mod_fcgidを使ってください。

まず、FastCGI サーバのソケットなどが置かれるディレクトリを作ります。

# mkdir /tmp/dynamic
# chmod +t,a+rwx /tmp/dynamic
mod_fastcgiの現在の仕様では、ソケットを置くディレクトリおよびその上位のディレクトリすべてがworld writableである必要があります。

mod_fastcgi をビルドしてインストールします。Apache 1.3とApache 2.0以降とでは若干手順が異なります。詳しくはFastCGIのソース配布物に含まれるドキュメントを参照してください。ここではApache 2.xでの例のみ挙げます。

  • Linuxのix86 アーキテクチャの場合 (例)
$ tar -xzf mod_fastcgi-2.4.6.tar.gz
$ cd mod_fastcgi-2.4.6
$ cp Makefile.AP2 Makefile
$ make top_dir=/usr/lib/httpd
# make install top_dir=/usr/lib/httpd
  • Linuxのx86_64 アーキテクチャの場合 (例)
$ tar -xzf mod_fastcgi-2.4.6.tar.gz
$ cd mod_fastcgi-2.4.6
$ cp Makefile.AP2 Makefile
$ make top_dir=/usr/lib64/httpd
# make install top_dir=/usr/lib64/httpd

Apacheの設定をします。設定ファイルをテキストエディタなどで開き、次の設定を追加します (例)。

 LoadModule fastcgi_module modules/mod_fastcgi.so
 FastCgiIpcDir /tmp
 FastCgiServer /home/sympa/bin/wwsympa-wrapper.fcgi -processes 2 -idle-timeout 300
 <Location /sympa>
   SetHandler fastcgi-script
 </Location>
 
 Alias /static-sympa /home/sympa/static_content
 ScriptAlias /sympa /home/sympa/bin/wwsympa-wrapper.fcgi
  • -idle-timeoutオプションは、CGIの応答タイムアウトを秒で指定します。指定しない場合、初期値30を使います。ウェブインタフェースの表示がタイムアウトしてInternal Server Errorが出るときに値を増やします。

mod_fcgid

執筆中

システムログの設定

Sympa は syslog を使ってファシリティ LOCAL1 でログを出力します (ファシリティは設定で変更できます)。これを適切なログに書き込むようにします。ここでは、古典的なsyslog設定ファイルでの設定例を挙げます。

  • /etc/syslog.conf
local1.*                  /var/log/sympa.log

そして、syslogデーモンを再起動します。たとえば、Red Hat系のLinuxでは次のようにします。

# service syslog restart

Solarisでは、UNIXドメインソケットでのsyslogデーモンとの通信がうまくいきません。/etc/sympa.confに次の設定を加える必要があるかもしれません。

 log_socket_type  inet

起動

依存サービスの起動

  1. MySQLサーバ が起動していることを確認します。起動していなければ起動します。
  2. Postfixを起動します。すでに起動していれば、再起動 (restart) します。
  3. Apacheを起動します。すでに起動していれば、再起動 (restart) します。

Sympaの起動

Sympaデーモンの起動スクリプトは /etc/rc.d/init.d/sympa にインストールされています。これは多くのオペレーティングシステムでうまく動くはずです。

 # /etc/rc.d/init.d/sympa start

sympa.pl, archived.pl, bounced.pl, bulk.pl、task_manager.pl の 4 つが起動するはずです。うまくいかないときは起動スクリプトを調べて、修正します。

MySQL を使う場合、初回の起動で、MySQL データベースとその内容が自動的に作成されるはず。なんらかの原因で初回起動が失敗した場合は、原因を取り除き、データベースを手動作成し、それから起動しなおす必要があります。データベースの手動作成は、/home/sympa/binにインストールされているcreate_db.mysqlスクリプトファイルを使って行えます。

 $ mysql -u sympadbuser -p < create_db.mysql
 Password: パスワード
create_db.mysqlでは、データベース名を「sympa」としています。#バックエンドデータベースの設定および#最低限の設定で他のデータベース名を決めていた場合は、create_db.mysqlを修正してから実行してください。

ApacheとSympaのデーモンが正常起動した後は、ほとんどの作業をウェブインタフェースからできるようになります。Sympaがサーバリブート時に自動的に起動するように設定しておきます。たとえば、Red Hat系のLinuxでは次のようにします。

# chkconfig --add sympa

もちろん、MySQLサーバ、Postfix、Apacheも自動的に起動するように設定しなければなりません。

リストシステム管理者のパスワードを設定

ウェブブラウザでhttp://ホスト名/sympaにアクセスします。Sympaのホームページが表示されるはずです。されなければ、システムログを調べて原因をつきとめます。

リストシステム管理者 (リストマスター。#最低限の設定でlistmasterに設定したメールアドレス) のパスワードを決めます。「まだログインしたことがない」(First Login?) を選択して、そのひとのメールアドレス (listmaster@sympa-ja.orgではありません) を入力します。パスワードを設定する方法を書いた電子メールが送られてくるので、説明に従ってパスワードを設定します。

個人用ツール
名前空間

変種
操作
案内
ツール