Contents
qwikWebインストール
qwikWebをインストールしてみよう
- えと
- えとー
qwikWebはqwik.jpのサービスを受ける形でも使えます.どのようなものかを試 してみたい場合は,まずqwik.jpにアクセスして試用してみるのがいいでしょ う.そして,qwikWebが便利であることがわかったら,自分のサーバにインス トールして使うこともできます.(脚注: NACL(http://qwik.netlab.jp/)や codeblog(http://www.codeblog.org/)などで使われています.)ここでは qwikWebを自分のサーバにインストールする方法についてまとめます.
インストールのシナリオ
インストールのシナリオとして下記のような状況を想定します.
- http://www.gihyo.co.jp/ の管理者であり,gihyo.co.jp以下のDNS設定を行える
- 自分のメールアドレスは alice@gihyo.co.jp であり,同僚のメールアドレスは bob@gihyo.co.jp である
- qwikWeb専用にDebianマシンを新たに一台用意し,ホスト名 qwik.gihyo.co.jp,グローバルIPアドレス 192.0.2.2 を割り当てる
- http://qwik.gihyo.co.jp/ にqwikWebを設置し,test@qwik.gihyo.co.jp などといったメーリングリストアドレスにする
すでに稼働中のサーバにqwikWebをインストールすることもできますが,説明 をわかりやすくするために本稿ではこの状況での設定方法のみを扱います. (脚注: あくまでも仮定です.本当にgihyoにqwikWebが設置されてるわけでは ありません.)
インストール環境
インストール環境としてDebian GNU/Linux Sargeを前提とします.Debian以外 のLinux,FreeBSD,Mac OS Xなどでも動作するものと思われますが,詳しい設 定方法はqwikWebのWebサイト(http://qwik.jp/qwikWeb.html)にて確認して ください.インストール方法としては,Debian向けに配布しているdebパッケー ジを用います.
qwikWebはメーリングリストとWikiが統合されたシステムであるため,メール サーバとWebサーバの両方が適切に設定されていないと動きません.まず,今 回インストールするシステムの動作概念図をご覧ください.(図1)
- ★図1 動作概念図
________________________________________
| |
| The Internet |
|________________________________________|
| |
|プロトコル:smtp |プロトコル:http
|ポート番号:25 |ポート番号:80
________|________ _______|_______
| | | |
| メールサーバ | | Webプロキシ |
| (Postfix) | | (Apache2) |
|_________________| |_______________|
| |
|プロトコル:smtp |プロトコル:http
|ポート番号:9195 |ポート番号:9190
________|________ _______|________
| | | |
| QuickMLサーバ | | qwikWebサーバ |
|_________________| |________________|
| |
| |
|__________________________|
________|_________
| |
| qwikデータ領域 |
|__________________|
/var/lib/qwik/data/今回はこの図に示すように,qwikWebへのアクセス中継をするメールサーバと してPostfix(バージョン2.1.5-9),Webのリバースプロキシサーバとして Apache2 (バージョン2.0.54-5)をインストールし,設定していきます.メー ルサーバとしては,Postfixの他にqmailやExim4などでも動作しますが,複雑 になるため本稿では扱いません.
注意
この記事は,qwikWebバージョン0.8.2をベースに書かれています.qwikWebは 活発に開発が行なわれており,以降のバージョンでは設定項目などに変更が加 えられる可能性があります.よってこの記事を読んだらすぐにでも試してみま しょう(:D
インストールの流れ
まず最初にqwikWebをインストール・設定し,単体での動作確認をします.次 に,リバースプロキシサーバ(Apache2),メールサーバ(Postfix)の設定を行い ます.Apache2,Postfixの基本的な設定方法はすでにある程度理解しているも のとし,qwikWebをインストールする際に特有の変更点のみを扱います.その 後,最終的な動作確認をします.
DNSの設定
まず,ホストのDNSを設定します.gihyo.co.jpドメインのネームサーバに下記 設定を追加します.
qwik IN A 192.0.2.2 qwik IN MX 10 qwik
メールを受信するために,このようにAレコードとMXレコードの両方を指定し てください.(脚注: DNS の設定は,SoftwareDesign 2005年11月号の特集など を参考にするとよいでしょう.)
qwikWebのインストール
次に,debパッケージを利用するために 「/etc/apt/sources.list」に下記二行を追加します.
deb http://www.eto.to/deb/ ./ deb-src http://www.eto.to/deb/ ./
追加後,aptのパッケージデータベースを更新します.
# aptitude update
debパッケージによるqwikWebをインストールします.
# aptitude install qwik
動作に必要なパッケージも含めて自動的にインストールされます.GraphVizプ ラグインを使いたい場合には,graphvizとttf-sazanami-gothicパッケージを インストールしておく必要があります.
# aptitude install graphviz ttf-sazanami-gothic
設定ファイルの変更
この状態でqwikWebはインストールされた状態になっています. 設定ファイル「/etc/qwik/config.txt」を変更しておきましょう.表1の ようにpublic_url,ml_domain,ml_postmasterの3項目を設定します. それ以外の個所はデフォルトのままにしておきます.
- ★表1 qwikWebの設定ファイル config.txt
- ★%著者% config.txt.pkg_orig となっているのはパッケージインストール時にインストールされる設定ファイルです
- ★%著者% diff形式ではない方が良い? 形式については要検討
$ diff -u config.txt.pkg_orig config.txt --- config.txt.pkg_orig 2006-02-14 01:32:50.000000000 +0900 +++ config.txt 2006-02-14 01:28:01.000000000 +0900 @@ -13,12 +13,12 @@ :ml_port: 9195 # Public Web address. -:public_url: http://example.com/ +:public_url: http://qwik.gihyo.co.jp/ :default_sitename: www # Mailing list setting. -:ml_domain: example.com -:ml_postmaster: postmaster@example.com +:ml_domain: qwik.gihyo.co.jp +:ml_postmaster: alice@gihyo.co.jp # Send mail setting. :smtp_host: 127.0.0.1
ここで設定する3項目を説明します.
:public_url: http://qwik.gihyo.co.jp/
外部からそのqwikWebサイトにアクセスする場合は,「http://qwik.gihyo.co.jp/ 」と いうURLでアクセスできるということを意味しています.
:ml_domain: qwik.gihyo.co.jp
例えばtestというグループのメーリングリストアドレスは, 「test@qwik.gihyo.co.jp」となります.
:ml_postmaster: alice@gihyo.co.jp
エラーなどがあったときに使われる管理者のメールアドレスです. 特にドメイン名を「gihyo.co.jp」に揃える必要はありません.
設定ファイルを変更後,下記コマンドでqwikWebを再起動します.
# /etc/init.d/qwik restart
この状態で,qwikWebのメールサーバとWikiサーバは立ち上がっています. 外部との連携をとるためのPostfixとApache2を設定する前に, まずはqwikWeb単体での動作を確認しておきましょう.
まずWikiサーバ部分の確認です.今回の例であれば 「http://qwik.gihyo.co.jp:9190/ 」にアクセスしてみます. そこでqwikWebの画面(図2)が表示されればWikiサーバ部分のインストールは うまくいっています.
- ★図2 qwikWeb起動時の画面
続いてメーリングリストサーバの動作確認をします.表2を参照して,telnet で動作確認してみます.反応が返ってきたら,無事動作していることがわかり ます.
- ★表2 メーリングリストサーバの動作確認
% telnet 127.0.0.1 9195 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. 220 localhost ESMTP QuickML QUIT 221 Bye Connection closed by foreign host. %
- ★%著者% 赤字部分が,今回自分で入力する個所なのでそこだけ強調してください
% telnet 127.0.0.1 9195
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 localhost ESMTP QuickML
QUIT
221 Bye
Connection closed by foreign host.
%
リバースプロキシの設定
WebサーバのリバースプロキシとしてApache2を設定します.qwik.gihyo.co.jp のポート80番へのアクセス,つまり「http://qwik.gihyo.co.jp/ 」へのアク セスがあったら,そのアクセスを同じホストのポート9190番に転送するという 設定です.「/etc/apache2/sites-available/qwik」というファイルを 表3の通りに作成します.
- ★表3 Apache2の設定ファイル
NameVirtualHost *:80 <VirtualHost *:80> ServerName qwik.gihyo.co.jp ErrorLog /var/log/apache2/qwik-error.log CustomLog /var/log/apache2/qwik-access.log combined LoadModule proxy_module /usr/lib/apache2/modules/mod_proxy.so LoadModule proxy_http_module /usr/lib/apache2/modules/mod_proxy_http.so ProxyPass / http://127.0.0.1:9190/ </VirtualHost>
ここでは,ProxyPassという一行が鍵になります.この指定により,あるURLへ のリクエストを全て別のURLへと転送すると設定したことになります.
設定完了後に下記コマンドを実行して,設定を反映させてください.
# a2ensite qwik # /etc/init.d/apache2 restart
ブラウザから http://qwik.gihyo.co.jp/ にアクセスしてみてください. 先程のポート9190番にアクセスしたときと同じ画面が表示されれば, qwikWebのWiki部分の設定は完了です.
メールサーバの設定
Wiki部分の設定が終わりましたので,次にメーリングリストサーバの設定を行 います.
まず最初に,普通のメールサーバとして動くかどうかを確認しておくとよいで しょう.普通の設定とはつまり,外部からalice@qwik.gihyo.co.jpというメー ルアドレスにメールを送るとそれをqwik.gihyo.co.jpにて受信することができ, また逆にqwik.gihyo.co.jpからalice@gihyo.co.jpにメールを送るとちゃんと 届くといった状態です.このように普通の動作を確認しておくと,DNSが正し く設定されているかどうかを確認することができ,後で問題がおこったときに 問題の切り分けが容易になります.この設定方法は普通のメールサーバの設定 と同じなので省略します.
さて,この動作確認ができたら,次に受け取ったメールをポート9195番で動い ているqwikWebのメーリングリストサーバに転送するよう設定します.まず, Postfixの設定ファイル「/etc/postfix/main.cf」を表4のように設定します.
- ★表4 Postfixの設定ファイル
mydestination = qwik.gihyo.co.jp transport_maps = hash:/etc/postfix/transport local_recipient_maps = fallback_transport = smtp:127.0.0.1:9195 smtpd_authorized_verp_clients = 127.0.0.1/8
ここでは「transport_maps」の指定が鍵となります.ここで指定された transportファイルでメール転送を指示します.また「local_recipient_maps」 を空にすると,存在しないアドレスでもメールを受け取るようになります.次 に,このtransportファイルを作成します.「/etc/postfix/transport」とい うファイルを表5のようにします.
- ★表5 transportの指定
qwik.gihyo.co.jp :[localhost:9195]
transportファイルを作成後に下記コマンドを実行し, Postfixが読み込めるようにします.
# postmap /etc/postfix/transport
下記コマンドで,変更を反映させます.
# /etc/init.d/postfix restart
これで,qwik.gihyo.co.jpドメイン宛のメールは全てポート9195番に転送され るように設定されました.
メール送信の確認
次にメールサーバ関連の動作確認を行います.まず,メール送信から確認しま す.「http://qwik.gihyo.co.jp/ 」にアクセスし,右上の「Login」をたどっ てログイン画面にいきます.(図3)次に「パスワード入手」 をたどってパスワード入手画面にいきます.(図4)ここで 自分のメールアドレス「alice@gihyo.co.jp」を入力し「送信」ボタンを押す と,パスワードが届くはずです.
- ★図3 ログイン画面
- ★図4 パスワード入手画面
メール受信の確認
メーリングリストサーバとして動作させるにはメールを受信できる必要があり ますので,次にメール受信を確認します.
例えば「test@qwik.gihyo.co.jp」というアドレスのメーリングリストを作る ことを想定してみます.qwikWebでは,そのアドレスにメールを送ることでメー リングリストの作成を指示します.このメーリングリストを作ることで外部か らの受信を確認してみます.
まず最初に,現時点でのデータディレクトリを確認します.
# ls -l /var/lib/qwik/data
とすると,qwikWebのデータディレクトリの一覧が見られますが,現在はまだ 「test」というデイレクトリは無いはずです.次に,外部から 「test@qwik.gihyo.co.jp」というアドレスにメールを送ってください.うま く受信できればこれだけでメーリングリストが作成されるはずです.
# ls -l /var/lib/qwik/data
として,「test」というディレクトリができているかどうかを確認してください.
もしできていなければ,どこかの設定がうまくいっていません.上記の transportの設定を確認したり,Postfixのログを見てみましょう.
「test」というディレクトリができていれば,インストールは無事完了です. お疲れ様でした.
サイト・パスワードの設定
最終的な動作確認が済んだら,外部に公開する前にサイトパスワードを設定し ておきます.qwikWebでは各ユーザのパスワードは種となるサイトパスワード を元に自動生成しています.「/etc/qwik/password.txt」になんらかの適当な 文字列を入力しておきます.こうすると各ユーザのパスワードが全て変更され ますので,再度パスワード入手画面にいき自分のメールアドレスを入力してパ スワードを取得してください.
次節より,インストールしたqwikWebを使いはじめてみます.