qwikWeb をインストールして使ってみました。
以前から気になっててインストールしてみたいなぁと思っていた qwikWeb を gentoo のサーバに入れてみました。
qwikWebはWikiWikiWebとメーリングリスト管理システムが統合されたグループ・コミュニケーション・システムです。
http サーバは外部に公開していない環境です。
必要なもの
- Ruby 1.8.4以上
qwikWeb本体だけでインストールして使うことができます。全ての機能を使う場合には、下記ライブラリが必要になります。
- Ruby OpenSSL
- ruby-gd
- ImageMagick
ということなので、とりあえず ImageMagick が未インストールだったため、emerge imagemagick でインストール。
コンパイルに時間はかかりますが、コマンド一発です。
ありがたや。
アーカイブの入手と動作確認
http://qwik.jp/qwikWeb.html に書いてあるとおりですが、
$ wget http://eto.com/2004/qwikWeb/qwik-0.8.2.tar.gz $ tar zxvf qwik-0.8.2.tar.gz $ cd qwik-0.8.2 $ make
としたあと、
http://127.0.0.1:9190/
としたらつながるはずですが、gentoo サーバには、127.0.0.1 につなぐことができるようなブラウザが入っていません。
とりあえずは、ssh でポートフォワードして PC のブラウザで確認。
おぉ。あっけなく動きます。
インストール
続けて、
$ su # ruby setup.rb
起動のコントロールコマンドは、/usr/bin に入りました。
起動してみます。
$ qwik-service --web-start
ブラウザで先ほどの URL に接続してみると動いています。
Apache の設定
Apache からリバースプロキシで接続するように設定します。
うちでは Apache2 が動いていますので、
LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_http_module modules/mod_proxy_http.so
を有効にし、
ProxyPass /q/ http://127.0.0.1:9190/ ProxyPassReverse /q/ http://127.0.0.1:9190/
を追加して基本的にはおしまいです。
これで、http://www.example.com/q/*1 にアクセスしてみると、先ほどの qwikWeb のページが表示されます。
Postfix の設定
main.cf に、
transport_maps = hash:/etc/postfix/transport
がなければ追加し、transport のファイルに、
q.example.com smtp:[127.0.0.1]:9195
と定義した後、postfix を上げなおします。
# postmap transport # /etc/init.d/postfix restart
これで、q.example.com ドメイン宛に送られたメールが、qwikWeb の ML サーバ宛に送られるようになります。*2
設定ファイルの修正
/etc/qwik/config.txt の各値を適切な値に修正します。
public_url、ml_domain、ml_postmaster といったあたりです。
メーリングリストと Wiki の連携を確認
Wikiサーバと共に、ML サーバも起動するため、
# qwik-service --start
として、起動します。
test@q.example.com 宛にメールを送ってみると、User Unknown で帰ってきてしまいます。
Postfix の main.cf 内、
local_recipient_maps =
を上記のように修正して再度送ってみると、今度はメーリングリストが作成されてメールが帰ってきました。(後ほど修正しました。「追記」参照。)
ブラウザから http://www.example.com/q/test/ にアクセスすると、認証を行った後 wiki のページが無事表示されます。
OK そうです。
とりあえず以上
まずは、自分用に使っていた メールメモ書き送信先のメーリングリストを、qwikWeb に移行しました。
メールが Wiki に形を変えて残っていくのは初めて見るととても新鮮です。
追記
local_recipient_maps を空にしてしまうと、qwikWeb 宛でない時でも無条件に一度は受け付けてしまうため、今ひとつしっくりきません。
そこで、qwikWeb 用のドメインの時だけ、受け付けるようにしました。
qwikWeb 用に追加したサブドメインを記載した、local_recipients というファイルを作成します。
@q.example.com OK
右辺の OK という文字は何でも良いですが、必ずなにかを入れなければなりません。(ローカル受信者テーブルのフォーマット)
postmap コマンド使って btree 形式にします。
# postmap btree:/etc/postfix/local_recipients
これを、local_recipient_maps に追加します。
デフォルト値の後ろに追加します。
local_recipient_maps = proxy:unix:passwd.byname $alias_maps btree:/etc/postfix/local_recipients
これで、@q.example.com の時には未知のユーザでも受信しますが、@example.com の時には、未知のユーザは受信拒否するようになりました。