編集 最近の変更 全部 履歴 差分 生データ トップ ヘルプ

nemuiDoc: DebianでWebDAVサーバ

ReverseLinks: IndexPage (1236d)

Debian で日本語ファイル名の使える WebDAV サーバを用意する方法をまとめておきます。

ただし、この方法では サーバ上のファイル名のエンコーディングは UTF-8 しか使えない という制限があります。これは mod_dav の仕様です。 ほかのエンコーディングを使用するには、以下の作業に加えて mod_davにパッチを当てる必要があります(2.0 の場合は apache core) 。 これに関しては、ここでは扱いません。

mod_encoding パッケージのインストール

woody の場合

オフィシャルパッケージはありません。

まず、/etc/apt/sources.list に以下を追加しします。

 deb http://ftp.arege.jp/debian-arege woody libapache-mod-encoding
 deb-src http://ftp.arege.jp/debian-arege woody libapache-mod-encoding

追加したなら

 apt-get update
 apt-get install libapache-mod-encoding

sarge/sid + apache1.3 の場合

オフィシャルパッケージがあります。単に

 apt-get install libapache-mod-encoding

でOK.

sarge/sid + apache2 の場合

私のパッケージは、ライセンスの問題でリリースに間に合わないかもしれません。

武藤さんの作られたパッケージがあります。

/etc/apt/sources.list に以下を書き、

 deb http://kmuto.jp/debian/experimental ./
 deb-src http://kmuto.jp/debian/experimental ./

apt でインストールします。

 apt-get update
 apt-get install libapache2-mod-encoding

設定する

以下のすべてが必要ですが、目的別に分けておきます。 自分の環境に合わせて書いてください。

ロックデータベース の指定

  <IfModule mod_dav.c>
    DAVLockDB   /var/lock/DAV/DAVLock
  </IfModule>

これは基本的に mod_dav のインストール時に自動的に かかれると思いますが、なければ設定ファイルのルートに 追加してください(ほかにも書けますがとりあえず)。

エンコーディングの指定 + コード変換の有効化

iconv に何を使うかによって微妙に設定が異なります。 また、注意事項がいくつかあります。

iconv_hook バージョン

woody なら必ずこれを使いましょう。

 <IfModule mod_encoding.c>
   EncodingEngine    on
   NormalizeUsername on
   SetServerEncoding     UTF-8
   DefaultClientEncoding JA-AUTO-SJIS-MS MSSJIS

   AddClientEncoding "cadaver/" EUC-JP
   AddClientEncoding "Microsoft .* DAV" MSSJIS
   AddClientEncoding "xdwin9x" SJIS
 </IfModule>

GNU iconv バージョン

武藤さんバージョン apache2 用のパッケージの場合、 もしくは sarge/sid で自動認識なんて要らないと言う人向け。

 <IfModule mod_encoding.c>
   EncodingEngine    on
   NormalizeUsername on
   SetServerEncoding     UTF-8
   DefaultClientEncoding CP932 SJIS EUC-JP-MS

   AddClientEncoding "cadaver/" EUC-JP-MS
   AddClientEncoding "Microsoft .* DAV" CP932
   AddClientEncoding "xdwin9x" SJIS
 </IfModule>

DAV の有効化

WebDAV でのアクセスを有効にしたい場所に書いてください。

 <IfModule mod_dav>
   Dav on
 </IfModule>

予備知識

iconv_hook って何?

特徴/メリット/デメリット

どこで使われているのか

mod_encoding は apache がリクエストを受け取った直後、一番最初に 要求されたURLのエンコードを変換して、後の本来の処理に引き渡す モジュールです。 この変換には iconv が使われますが、ここを iconv_hook でラップ することが可能です。

で、結局これは要るんですか?

mod_encoding を使うためには必須ではない。 でも、OS の iconv に問題があるなら使っておいた方がいい。 使ってもそれほど悪影響は起きない。 と言うわけで


最終更新: 2006-10-08/18:11:16 +0900 (1220d)