qwikWebを導入しよう

Mar 8, 2006 From: yasuo@e...

えとーです。

出来ている部分からざくざく出していきます。
自分への備忘録込みです、、、

レベル的にはラフレベル、、かな。
文言修正や検証を一回走らせる予定なので変更があると思います。

句読点などの書式部分はとりあえず放置しています。
以前のqwikの記事にはDNSの記述がありましたが、削っています。
普通のDNSの使い方なので問題ないと思いますがご意見募集です。

あと画面のスナップショットはどれ入れようかなーとか悩んでいたりします。

打合せの時に出たインストール部分の構成

インストール及び設定(3ページ)

       postfix
       apache
       qwik
       パスワード確認
       MLとしての機能(メールのフッタをクリックしてwikiのサイトにログイン)
       ユーザ追加

となっています。

現在の文字数
$ wc -m qwikinst.txt
3189 qwikinst.txt
という状態です。

    • qwikinst.txt--
 0.8.2をベースにこの記事は書かれていますが、qwikWebは活発に開発が行なわれており設定項目などにも頻繁に変更が行なわれます。よって明日にでも試してみましょう(:D
 今回はqwikWeb及び、メールサーバ、Webプロキシサーバを一台のサーバマシンにインストールを行なっていくこととします。

qwikWeb単独でもWebサーバ及びメーリングリストサーバとしての機能はあるのですが、既存の環境に追加でインストールしていくことが多いと思われることや、qwikWebのWebサーバ及びメールサーバとしての機能はシンプルなので機能によってはWebプロキシやMailサーバなどの機能を利用することができるからです。<図 動作概念図>

 DNSサーバの設定でMXなどは既に完了しているものとします。
 Debian GNU/Linux Sargeに著者が配布しているdebパッケージを使ってインストールを行なっていきます。
 メールサーバはpostfixのバージョン2.1.5-9、webプロキシサーバはacpche2のバージョン2.0.54-5を利用していくこととします。
 メールサーバ及びwebプロキシサーバの基本的な設定は完了していることとしqwikweb特有の部分のみを扱うこととします。
 まずqwikWebをインストールし設定を行ない、次にWebプロキシサーバの設定を行ない、メールサーバの設定を行ない確認していくこととします。
 著者が提供しているパッケージを利用するために、apt-lineを追記します。<表apt-line>
 apt-lineの追加後「# aptitude update」コマンドでaptのパッケージデータベースを更新します。

qwikWebのインストール/設定***

 # aptitude install qwik
 以上です。動作に必須なものは依存関係に従ってインストールされます。
 必須ではありませんが、graphvizプラグインを用いたい場合は、graphvizパッケージ及びttf-sazanami-gothicをインストールしてください。
 /etc/qwik/config.txt の必須変更箇所は3箇所です。publick_url、ml_domain、ml_postmasterを、それぞれドメイン名に沿うように変更しています。<表config.txt>
 ここまでで一旦確認を行ないます。今回の例(devel.jpの場合)、http://devel.jp:9190 にアクセスしてみます。そこでqwikwebの画面が表示されればwiki部分のインストールは成功です。続いてML部分を確認します。まずは正常に起動していてアクセスできるかどうかを確認してみましょう。telnetコマンドでポート9195に接続して確認します。<表qwikml-check>quickmlサーバが起動していてポート9195で起動していることが確認できたら「quit」と打ち込みtelnetコマンドから抜けてください。

qwikのwiki画面へのログイン方法は幾つかあるのですが、標準の認証方式ではパスワード生成のために /etc/qwik/password.txt にある文字列を乱数生成の元とします。デフォルトのままでは危険ですので適当な文字列(なんでもよし)を入れておきましょう。

Webプロキシの設定***

 Webプロキシとしてapache2のプロキシ機能を利用していきます。Debianl GNU/Linuxのパッケージあるプロキシの設定を利用すると全てのプロキシ機能が有効になってしまいセキュリティ上望ましくないので、サイトの設定と一緒に行なうこととします。設定の内容としてはdevel.jpへのport80番へのアクセスがあった場合にlocalhostの9190ポートに転送する。という設定になっています。<表site-available>設定完了後設定を反映するために /etc/init.d/apache2 reload 若しくは /etc/init.d/apache2 restart を行なってください。
 ここでお好みのブラウザからhttp://devel.jpにアクセスしてみてください。その時にトップページが表示されればqwikwebのWeb部分の設定は完了です。<図qwikweb>

メールサーバの設定***

 メールサーバとしてpostfixを利用していきます。設定の内容としてはdevel.jpに来たメールをtransportテーブルを使ってlocalhostのポート9195番のqwiwebサーバへ転送します。設定ファイルの内容は次の通りです。まずはpostfixのメインの設定を変更してdevel.jpへのメールを受け取るようにし、transportテーブルを用いることとファイルを指定します。<表/etc/postfix/main.cf>続いてtransportmapファイルを編集します<表/etc/postfix/transport>。編集完了後に # postmap /etc/postfix/tranport コマンドを実行しpostfixからtransportmapを扱えるようにします。
 設定が完了したら /etc/init.d/postfix restart もしくは /etc/init.d/postfix reload などを行なって変更を反映してください。
 ここまで完了したら確認を行ないます。
 まずhttp://devel.jpにお好みのブラウザからアクセスし右上のログインのアイコンをクリックしログイン画面に遷移します。<図login>次に「パスワード入手」をクリックしパスワード入手画面に遷移します。<図getpass>ここでメールアドレスを入力し「送信」ボタンを押します。しばらくすると入力したメールアドレスにパスワードが届いていれば全ての設定は成功です。

使ってみよう!(基本的な使い方)***

 まず新たにサイトを作ってみましょう、今回はテスト用に http://devel.jp/test/ というサイトを作って行きます。このサイトのMLのアドレスはtest@d...となります。
 お好みのMUAからtest@d...にメールを送ってください。subject、bodyはなんでもよいです。届いたメールの一番下にあるリンクをクリックしてあなたのwikiサイトへアクセスしてください。アクセスできれば無事あなたのサイトが作成されました、あとは使うのみです。
 wiki画面の編集にはログインが必要です。お好みのブラウザでhttp://devel.jp/test/を開き、前項でのメールサーバの設定の確認手順と同様にパスワードを取得し、ログイン画面に戻り取得したパスワードを使いログインします。ログイン後、loginのリンクがあった場所に「新規作成」及び「編集」というリンクがありますので、そこから「編集」をクリックして好きなようトップページを変更したり、「新規作成」をクリックしてページを追加したりしていきましょう。
 MLでのメールも自動的にwikiページになりますのでMLで流れたメールはwikiサイトから閲覧することができます。
 メンバーを追加したい場合はMLにメールを送る時にCCに追加したい人のアドレス書いて送信するだけです。<表 メンバー追加メール例>
    • qwikinst.txt--
    • qwikinst-zu.txt--

動作概念図

  ________________________________________
 |                                        |
 |              The Internet              |
 |________________________________________|
        |                          |
        |smtp                      |http
        |port 25番                 |port 80
________|________           _______|_______
メールサーバー Webプロキシ
_________________ _______________
        |                          |
        |smtp                      |http
        |port 9195                 |port 9190
________|________           _______|________
qwikメールサーバ qwikwebサーバ
_________________ ________________
        |                          |
        |                          |
        |__________________________|
            __________|___________
           |                       |
           |  qwikデータ領域  |
           |_______________________|
              /var/lib/qwik/data
    • qwikinst-zu.txt--
    • qwikinst-hyo.txt--

「apt-lineを追記(/etc/apt/sources.list)」
<表apt-line>

 deb http://www.eto.to/deb/ ./
 deb-src http://www.eto.to/deb/ ./

</表apt-line>

config.txt.pkg_orig となっているのはパッケージインストール時にインストールされる設定ファイルです
<表config.txt>
$ diff -u config.txt.pkg_orig config.txt

      • config.txt.pkg_orig 2006-02-14 01:32:50.000000000 +0900
      1. config.txt 2006-02-14 01:28:01.000000000 +0900

@@ -13,12 +13,12 @@

:ml_port:      9195

# Public Web address.
  1. :public_url: http://devel.jp/
:default_sitename:     www

# Mailing list setting.
  • :ml_domain: example.com
  • :ml_postmaster: postmaster@e...
  1. :ml_domain: devel.jp
  2. :ml_postmaster: postmaster@d...
# Send mail setting.
:smtp_host:    127.0.0.1

</表config.txt>

qwikのML部分のチェックです。
<表qwikml-check>
$ telnet devel.jp 9195
Trying 61.194.86.211...
Connected to qwik.jp.
Escape character is '^]'.
220 localhost ESMTP QuickML
</qwikml-check>

<表site-available>
$ cat /etc/apache2/sites-available/devel
<VirtualHost 61.194.86.211>
ServerName devel.jp
ServerAdmin webmaster@d...

DocumentRoot /var/lib/qwik/data/

ErrorLog /var/log/apache2/devel-jp/error.log
CustomLog /var/log/apache2/devel-jp/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
LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so

RewriteEngine on
RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK) [OR]{{br}} RewriteCond %{REQUEST_METHOD} ^OPTIONS
RewriteRule .* - [F]{{br}}

ProxyPass / http://127.0.0.1:9190/
</VirtualHost>
</表site-available>

<表/etc/postfix/main.cf>
mydestination = devel.jp
transport_maps = hash:/etc/postfix/transport
local_recipient_maps ={{br}} fallback_transport= smtp:127.0.0.1:9195
</表/etc/postfix/main.cf>

<表/etc/postfix/transport>
devel.jp :[localhost:9195]{{br}} </表/etc/postfix/transport>

<表メンバー追加メール例>
Subject: 江渡さんを追加
TO: test@d... <-MLのアドレス
FROM: yasuo@e... <-自分のアドレス
CC: 2006@e... <-招待したいアドレス

江渡さんを追加。 <-本文
</表メンバー追加メール例>

    • qwikinst-hyo.txt--

Mar 9, 2006 From: 2006@e...

えとです.

http://qwik.jp/wikibana-gihyo/qwikWebHajimeni.html
「はじめに」の部分のドラフトをあげてみました.
ちょい長いです.冗長な部分もあるので,削らろうと思ってます.

先日のミーティングで「メーリングリストによるグループの区分と,情報共有
の区分とが,そのまま重なっている様子を図にするといいんじゃないか」とい
う意見をたしか塚本さんからいただきましたが,どういう図にするのがいいの
か悩んでいます.

あと芸大のWikiのFrontPageの様子,オフィスのWikiのFrontPageの様子を
図版として加えようかと思ってますが,いらないかな….

Mar 10, 2006 From: yasuo@e...

えとーです。

運用部分までちょっと構成がしっくりこないので
明日、直します。

運用管理(2ページ)

	  ページの機能
       サイトメニュー
       サイト設定
       グループメンバー
       サイトアーカイブ

本文

サイトメニュー***

 サイトに関する設定などをここから行なうことができます。この中にはサイトの設定、サイトの各ページのヘッダやフッタ、アトリビュート、サイドメニューなどをカスタマイズすることができます。

サイト設定***

 「サイト管理」の「サイト設定」ここではサイトごとの設定を変更することができます。
 「open」wikiの公開、非公開を指定します。wikiを誰からでもアクセス可能にするには「true」にします、メンバーだけにしか見えないようにするには「false」のままにします。初期状態ではwikiの画面はメンバーしか見ることができません。
 「theme」wiki画面のテーマを指定します。現在の所「qwikgreen」、「qwikcyan」、「qwikborder」の3つから選択することができます。初期状態では「qwikgreen」になります。
 「sitename」ページのサイト名を指定します。初期状態ではサイトのドメイン名になります。ページのサイト名というのはhtmlヘッダの<title>タグの値にのことでこれを変更するとブラウザのタブ表示やブックマークの際のタイトルが変更されます。更に見た目をカスタマイズしたい場合は「サイト管理」の「サイトテーマ」をクリックし、このページにcssファイルを添付すると自分のcssを適用することができます。
 「reportmail」wikiサイトの編集が行なわれた時などに送られるレポートメールの送信間隔指定します。「hourly」、「daily」、「weekly」、「false」から選べます。falseにすると送られなくなります。
 「redirect」wikiで編集したリンクを一旦リダイレクトするかどうかを指定することができます。「true」にするとリダイレクトし、「false」の場合は直接リンク先に飛びます。

グループメンバー***

 「サイト管理」の「グループメンバー」では現在のメンバー一覧を表示することができます。この画面の編集を行なうことでユーザの追加や削除を行なうことができます。自分のアカウントなどを消すとアクセスできなくなりますので注意しながら編集してください。もちろんwikiサイトユーザとしてのだけでなくMLのメンバーとしても追加されます。

バックアップ、リストア***

 「サイト管理」の「サイトアーカイブ」をクリックするとあなたのサイトのバックアップをzip形式で取得することができます。ページ単位で以前どのような編集が行なわれたかを確認したい場合は「ページの機能」の「バックアップ」をクリックし編集時を選択することでその時点と直前の編集内容の差分を表示することができます。どのくらい戻したいかが曖昧な場合は「ページの機能」の「タイムマシーン」をクリックした画面上でグラフィカルに編集時点のページの表示に行き来することができます。
 サーバ管理者がサイト全体をバックアップしたい場合には「/var/lib/qwik/data/」を丸ごとバックアップしてください。リストアする場合はバックアップしたデータを「/var/lib/qwik/data/」に展開しオーナを「qwik」、グループを「qwik」にし、パーミッションを読み込み、書き込みの権限があるかどうか確認してください。将来的には「qwik-service」コマンドからバックアップやリストアが可能になる予定です(と言っておくと追加されそうです)。

qwik-serviceコマンド***

 コマンドラインでサーバの起動や停止、サイトの追加、ユーザのサイトへの追加、パスワードの表示などを行なうことができます。<表qwik-serviceコマンド>

サイトごとのMLの設定***

 デフォルトの設定は「/etc/qwik/config.txt」が適応されますがサイト毎に設定を変更したい場合には、「/var/lib/qwik/data/サイト名/,config.txt」を編集することでそのサイトのみMLの設定を変更することができます。<表 ,config>

導入、運用管理について***

 お手軽にMLとwikiを作ることができるqwikWebの導入及び運用管理を駆け足で紹介してきました。
 しかしqwikに限らずサーバに導入する場合などには適切な管理はかかせません。OSの機能を使いデータディレクトリの容量を制限したり、本誌でも特集が組まれているLidsなどのセキュアOSで適切な権限を割り当てたりするなども検討され、安全に楽しく使っていくようにしましょう。

<表 サイト設定項目>

項目 デフォルト 説明
open false サイトを公開するかどうか
theme qwikgreen サイトのテーマ
sitename なし サイト名
reportmail daily レポートメールの間隔
redirect false リンクでリダイレクトするかどうか

</表 サイト設定項目>

<表 qwik-service>

オプション名(省略形) オプション名 引数 説明
-c --config ファイル名 設定ファイルの場所をフルパスで指定する。
-d --[no-]debug なし デバックモードにするかどうか。
なし --start なし qwikwebサーバとqwikmlサーバを起動する。
なし --stop なし qwikwebサーバとqwikmlサーバを停止する。
なし --restart なし qwikwebサーバとqwikmlサーバを再起動する。
なし --web-start なし qwikwebサーバを起動する。
なし --web-stop なし qwikwebサーバを停止する。
なし --web-restart なし qwikwebサーバを再起動する。
なし --ml-start なし qwikmlサーバを起動する。
なし --ml-stop なし qwikmlサーバを停止する。
なし --ml-restart なし qwikmlサーバを再起動する。
なし --watchlog なし qwikwebサーバとqwikmlサーバのログを表示する。
なし --makesite サイト名, メールアドレス 新しくサイトを作る。
なし --adduser サイト名, メールアドレス サイトにユーザを追加する。
なし --showpassword メールアドレス ユーザのパスワードを表示する。
なし --incgen メールアドレス
-h --help なし ヘルプを表示する。
-v --version なし qwikのバージョンを表示する。

</表 qwik-service>

<表 qwik-service使用例>
原稿用のqwikWebサイトを作成

原稿用のqwikWebサイトに江渡さんを追加

デバックモードでqwikWebサーバを起動

qwikwebサーバを停止

</表 qwik-service使用例>

<表 ,config>

項目 デフォルト 説明
auto_unsubscribe_count 5 自動的にメンバーから削除される際の失敗メールの回数
forward false
max_mail_length 102400 メールの最大サイズ(バイト)
max_members 100 MLメンバーの最大数(アカウント)
ml_alert_time 2073600 最後のメールからML消滅の警告時間(秒)
ml_life_time 2678400 最後のメールからML消滅までの時間(秒)
permanent false MLの生存期間を無限にするかどうか(true/false)
unlimited false メールの最大サイズを無制限にするかどうか(true/false)

</表 ,config>

Mar 10, 2006 From: yasuo@e...

wikiのほうにまとめました。

本文
http://qwik.jp/wikibana-gihyo/202.html


http://qwik.jp/wikibana-gihyo/203.html


http://qwik.jp/wikibana-gihyo/204.html

という風にしてみました。

増やすほうはまだまだ行けます。

特にインストール部分などで解り難い所など
ありませんでしょうか?

ご意見募集中です。

削るほうとしは
コマンドなどの説明は削るならよいかなと思います。

以上、皆さまよろしくお願いします。

Last modified: 2006-03-10 Attached files total: 48MB