HOWTO Use Catacomb with Apache

GRASE Lab at UCSC grase (at) cse.ucsc.edu

0.01, 2002-08-30

Japanese translation by wakatono at WebDAV Resources JPwakatono (at) todo.gr.jp. 原文はこちら


これは、Catacombの簡単な説明である。この文書では、Catacombが何であるか?Catacombのインストールと使用はどうするか?について解説している。Catacombは、DASLプロトコルで規定されたSEARCHメソッドを使用できるようにする。Catacombは、Apacheのモジュールであり、mod_davのリポジトリインタフェースである。

1. Introduction

現在、多くのWebサーバがある。あなたは数百万というドキュメントを格納したWebサーバを持っていると仮定して、 Jimという人が書いた java というキーワードを持つドキュメントを探し出すためにはどのようにしているだろうか。Catacombは、そのような場合の最適な解決法である。

WebDAV プロトコルは、HTTPの拡張であり、ユーザに対してHTTPサーバへの書き込みやリソースに対するプロパティ付与などを可能にする。DASLはWebDAVの拡張であり、ユーザによるWebサーバ上のリソース検索を可能にする。Catacombは、Apache + mod_dav のための DASL 実装である。

この文書では、Catacombのインストール方法および使用方法について述べる。

1.1 Copyright

Copyright (c) 2002, The Regents of the University of California.

The Regents of the University of California MAKE NO REPRESENTATIONS OR
WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE, EITHER EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR
NON-INFRINGEMENT. The Regents of the University of California SHALL
NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF
USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.

2.Catacombsって何?

完結に言うと、これは以下のようなものである。

DASL は、リソースを検索、特定するSEARCHメソッドを規定している。言い換えるならば、DASLは、DASLプロトコルをサポートするWebサーバにおいて、ユーザがリソースを検索するとこを可能にする。Catacombは、WebサーバがSEARCHメソッドを使用できるようにするDASLの実装である。

検索機能を実装するために、Catacombは MySQL を使用する。これは、WebDAVのメソッドであるPUTやMKCOLを用いて何らかのリソースを(サーバ上に)保存する場合に、それらの全てのリソースや情報はファイルシステムではなくDBMSに保存されるということを意味する。

3. インストール

3.1 必要なものは?

以下のものが必要である。

3.2 クイックツアー

MySQL が /usr/local 配下にインストールされていると仮定する。

<shell> tar xvfz  httpd-2.0.36.tar.gz
<shell> cd http-2.0.36
<shell> ./configure --enable-dav --enable-so
<shell> make; make install
<shell> cd ..
<shell> tar xvfz catacomb-x.x.x.tar.gz 
<shell> cd catacomb-x.x.x
<shell> ./configyre --with-apache=/usr/local/apache2 --with-MySQL=/usr/local
<shell> make; make install
<shell> add this in /usr/local/apache2/conf/httpd.conf
___________________________________________________________ 
|# This is server configure now                           |
|DavDBMSHost localhost                                    |
|DavDBMSDbName repos                                      |
|DavDBMSId   root                                         |
|DavDBMSPass root                                         |
|DavDBMSTmpDir /tmp/                                      |
|                                                         |
|<Location /repos>                                        |
|DAV repos                                                |
|<//Location>                                             |
-----------------------------------------------------------

<shell> mysqladmin create repos
<shell> mysql repos < table.sql
<shell> mysql repos < data.sql
<shell> /usr/local/apache2/bin/apachectl start
DASL対応の Apache serverが出来上がった!

3.3 インストール

インストールにあたっては、MySQL が必要である。MySQL については、MySQL の Webサイトからダウンロード可能である。ここでは、すでにMySQLがあなたのマシンにインストールされていると仮定して話をすすめる。Catacombのインストールには、特別なオプションは必要ないので、もしすでにMySQLをインストールしたマシンがあれば、Catacombのために新たにMySQLを再インストールする必要はない。MySQL をインストールするにあたって何か難しいと思ったら、MySQLのホームページを見て欲しい。なお、デフォルトのMySQLインストール先は /usr/local である。

Catacombを使うには、Apache2.0.36以降が必要である。これについては、ApacheのWebサイトからダウンロード可能である。Apacheインストール時には、2つのオプションをconfigure時に付加して欲しい。そのオプションとは、--enable-dav と --enable-so である。Catacombは、mod_davのインタフェースであるため、mod_davを有効にしておく必要があり、Catacombのオブジェクトはシェアードオブジェクトであるため、Apacheもシェアードオブジェクトを扱える必要がある。デフォルトのApacheのインストール先は、/usr/local/apache2 である。なお、configure時に先述の2つのオプションを有効にするには、以下のコマンドラインを実行する。

<shell> ./configure --enable-dav --enable-so

Apacheのインストールが終わったら、Catacombの番である。最新版が、Catacomb プロジェクトのWebサイトからダウンロード可能である。ソースを展開し、Catacombを configure する時に、2つのオプション --with-apache と --with-mysql を必要に応じて指定してほしい。--with-mysql オプションは、MySQL Cクライアントライブラリを指定するのに必要であり、--with-apacheオプションは、Apacheのインストール先を指定する。MySQL については、/usr/local がデフォルトであり、Apacheについては/usr/local/apache2 の指定がデフォルトになる。

configure が終了したら、make および make install を実行のこと。

3.4 設定

インストール後、Catacombを使うには、以下の2種類の設定を行う必要がある。

Apache の設定については、以下の設定を /usr/local/apache2/conf/httpd.conf に追加すればよい。

___________________________________________________________ 
|# This is server configure now                           |
|DavDBMSHost localhost                                    |
|DavDBMSDbName repos                                      |
|DavDBMSId   root                                         |
|DavDBMSPass root                                         |
|DavDBMSTmpDir /tmp/                                      |
|                                                         |
|<Location /repos>                                     |
|DAV repos                                                |
|<//Location>                                          |
-----------------------------------------------------------
以下に、各ディレクティブの説明を示す。

次の設定は、Catacombのためのデータベースおよびテーブル作成である。他の用途のために作成されたデータベースを再利用するのは可能であるが、できれば新しいデータベースをCatacombのために作成することをお勧めする。新しいDBの作成は、mysqladminコマンドを利用して行う。具体的には以下のコマンドラインを実行する。

<shell>mysqladmin create repos
このコマンドは、reposという名前のデータベースを作成する。

Catacombが使用するテーブルがいくつかあるが、Catacombに同梱される table.sql というファイルをインポートすることにより作成できる。具体的には以下のコマンドラインを実行する。

<shell>mysql repos < table.sql

もしデータベースのユーザを指定したいのであれば、mysqlコマンドの-uや-pオプションを使う。最終的には、データのインポートには、Catacombが許可したディレクトリのルートがどこになるかという情報が必要となる。我々が提示した例では、ディレクトリ名は /repos である。もし他のディレクトリを指定したいのであれば、data.sql を編集する必要がある。Catacombを用いて2つ以上のLocationディレクティブを有効にしたい場合は、異なるディレクトリ情報を持った data.sql をそれぞれインポートする必要がある。以下は、data.sql の例である。

INSERT INTO dasl_resource VALUES 
(1,'','/repos',651165539,'(null)','(null)',0,'httpd/unix-directory',
'(null)',1014759103979654,'(null)',1,0,'(null)',1,2,NULL,'1234567890');
上記の例において、3番目の引数(/repos)が httpd.conf の Location と同じであるかどうかを確認のこと。data.sql をインポートする場合には、以下のコマンドラインを実行せよ。
<shell>mysql repos < data.sql

3.5 Apache の起動

<shell>/usr/local/apache2/bin/apachectl start

4. DASL クライアント

DASL対応のWebDAVサーバを手っ取り早くチェックするには、telnet を用いるのが最もシンプルでよい手段である。サーバ名とポート番号を指定して telnet を実施する。ここれは、DAS対応のWebDAVサーバを ocean.cse.ucsc.edu とし、ポート番号を 7777 としよう。その後、試験のために以下のような感じでOPTION メソッドを実行する。

ocean 10> telnet ocean.cse.ucsc.edu 7777
Trying 128.114.51.104...
Connected to ocean.cse.ucsc.edu.
Escape character is '^]'.
OPTIONS /dasl/ HTTP/1.1
Host: ocean.cse.ucsc.edu

HTTP/1.1 200 OK
Date: Wed, 08 May 2002 09:16:13 GMT
Server: Apache/2.0.36-dev (Unix) DAV/2 DASL/0.1
DAV: 1
DAV: <http://apache.org/dav/propset/fs/1>
MS-Author-Via: DAV
Allow: OPTIONS,GET,HEAD,POST,DELETE,TRACE,PROPFIND,PROPPATCH,COPY,MOVE,SEARCH
DASL: <DAV:basicsearch>
Content-Length: 0
Content-Type: text/plain; charset=ISO-8859-1
Allow フィールドに SEARCH メソッドが確認できれば、DASL対応のWebDAVサーバは適切に動いている。

4.1 Read/Write resources

残念だが、Catacombは MySQL をリソースやプロパティ等の格納場所に使うため、Apacheのファイルシステム上のディレクトリを操作するような感覚でリソースのコピーをしたりディレクトリを作成したりということができない。このため、DASL対応のWebDAVサーバにおいては、WebDAVクライアントを使ってこれらの操作を実施する必要がある。WebDAVクライアントプログラムに多くの種類があるので、それらのいずれかを選んでリソースの読み書きに使えばよいだろう。単にリソースを読みたいだけなのであれば、Webブラウザを使うのがベターだろう。WebDAVに関するソフトウェアについては、WebDAV Resourcesを見て欲しい。

4.2 検索

今までは、DASLクライアントはそんなに多くはなかった。我々がこの HOWTO を書いている時点で、cadaver DASL パッチが開発中である。みなさんがこのHOWTOを読むころには、cadaver クライアントがDASLをサポートしているであろう。近いうちに、多くのDASLクライアントが出てくることが期待できる。

5. トラブルシューティング

DASL対応のWebDAVサーバがうまく動かない時には、Apache の error_log を見るのが良い。以下に、簡単なチェックリストを示しておく。

6. おわりに

Catacombプロジェクトはまだはじまったばかりであり、やらなきゃならないことや改善しなきゃならないことはたくさんある。CatacombとこのHOWTOが、あなたのインターネット環境をよりよくすることを期待する。

6.1 プロジェクト参加のお誘い

Catacombは、Apache License の元にすすめられるオープンソースプロジェクトである。なので、プロジェクトへの参画は誰でも歓迎する。もし興味があるならば、grase(at)cse.ucsc.eduにコンタクトを取って欲しい。