WebDAVのお話

NISOC 勉強会 2006/01/07
いまい ひろえ〜

目次

1 WebDAV って何?

1.1 概要

WebDAV --- Web-based Distributed Authoring and Versioning

Authoring(RFC2581)
Versioning(RFC3253)

1.2 用語

リソース
サーバ上にあるもの.ファイルやコレクションの総称.
コレクション
同一サーバ内のリソースを示すURIの集合.ディレクトリやフォルダのようなもの.
プロパティ(属性)
各リソースに付属する,名前と値のペアの集合.サーバによって定義されていて必須なものをライブ・プロパティ,クライアントが定義可能なものをデッド・プロパティと呼ぶ.

1.3 ファイルサーバと違う所

1.4 ファイル名文字コード問題

1.5 WebDAV 関連ソフトウェア

サーバ
クライアント
Windows
標準でサポート.「ネットワークプレイスの追加」でhttp://....で設定するとアクセス可能.
Mac OS X
標準でサポート.mount_webdavコマンドや,Filderの「移動」→「サーバに接続」でマウント可能.
neon
C言語用API
cadaver
コマンドラインで使えるクライアント
davfs2
Linuxファイルシステムドライバ
GNOME Nautilus
GNOMEのファイルマネージャ
KDE Konqueror
KDEのファイルマネージャ

2 Subversion って何?

2.1 概要

3 サーバ構築

3.1 目標

  1. WebDAVを有効にしたhttpdを動かす.
  2. SubversionのリポジトリをWebDAV経由でアクセス可能にする.

3.2 材料

  1. UNIXなOSインストール済みPC(この文書ではNetBSD3.0を使用)... 1個
  2. Apache HTTP Server 2.2のソース... 1組
  3. subversion 1.3.0のソース... 1組

3.3 設定

3.4 下拵え

  1. コンパイルに必要となる次のソフトウェアをインストールしておく.
  2. Apache HTTP server, subversionを/opt/webdav以下にインストールする.
    図 1 Apache HTTP server インストール例
    $ env CPPFLAGS='-I/usr/pkg/include -I/opt/webdav/include' ...
        LDFLAGS='-L/usr/pkg/lib -Wl,-rpath,/usr/pkg/lib ...
    	-L/opt/webdav/lib -Wl,-rpath,/opt/webdav/lib' ...
        ./configure --prefix=/opt/webdav ...
    	--enable-mods-shared=all ...
    	--enable-ssl --with-ssl=/usr 
    $ make
    $ sudo make install
    
    図 2 Subversion インストール例
    $ env CPPFLAGS='-I/usr/pkg/include -I/opt/webdav/include' ...
        LDFLAGS='-L/usr/pkg/lib -Wl,-rpath,/usr/pkg/lib ...
    	-L/opt/webdav/lib -Wl,-rpath,/opt/webdav/lib' ...
        ./configure --prefix=/opt/webdav --enable-shared ...
    	--with-berkeley-db=/usr/pkg --with-apr=/opt/webdav ...
    	--with-apr-util=/opt/webdav --with-apxs=/opt/webdav/bin/apxs 
    $ make
    $ sudo make install
    
    図 3 mod_encoding インストール例
    $ cd mod_encoding-*/lib
    $ ./configure --prefix=/opt/webdav
    $ gmake
    $ sudo gmake install
    $ cd ..
    $ sudo apcs -i -c -a -Wl,-rpath,/opt/webdav/lib ...
    	-L /opt/webdav/lib -l iconv_hook mod_encoding.c
    

3.5 webdav の基本的な設定

3.6 cgi や ssi を使う web ページを webdav で

3.7 アクセス制御

3.8 subversion で webdav リポジトリ

3.9 AutoVersioning

3.10 mod_encoding の利用

4 まとめと今後の課題

5 Webliography