mod_dav Frequently Asked Questions

---last Modified on 19 Oct 2001


この FAQ はDAV コミュニティdav-dev ML、そして、 その他多くの方々より寄せられた mod_dav についての質問と回答の まとめです。この FAQ 自体は mod_dav についてのものですが、 実際には関連事項に加え、mod_dav_svn や DAV についての項目も 一部含んでいます。もし DAV についての全般的な疑問がある場合は、 DAV FAQを 読まれると良いでしょう。

この FAQ に掲載されている情報は dav-dev ML を始めとする各所から集められたものです。元々の情報の多くは、質問に 対する明確な回答という形であったものではなく、話題の流れの一部分として 出てきたものです。この FAQ への掲載に当たっては、明解かつ簡潔に見せる ために、本質的な部分だけを取り出しています。また、情報提供者への クレジットと、さらに深く調べるための手がかりとして、大本の情報と 日時を併記するようにしています。もし、FAQ 中に非公開もしくは著作権を 侵害する類の情報を見つけられた場合は、本 FAQ の編集者への連絡があり 次第、削除いたします。

本ドキュメント中のすべての電子メールアドレスは、SPAM 抑制のために ぼかされています。正しいアドレスは [at] を @ に戻したものです。

注記および警告: 本 FAQ の情報には OS 依存のものが含まれて います。また、掲載されている情報が正しいこと、最新であること、 そして無害であることの一切の保証はありません。

この FAQ はオープンソースコミュニティーにおいて利用される資料として 提供される著作物です。この概念に基づき、すべての再配布および派生物に 対して本 FAQ の著作者および web-dav コミュニティのクレジットを付記する ことで、自由に複写・複製・改変・利用を行なうことが許可されています。

この文書の最新版は http://www.sitepen.com/moddav/FAQ.html から入手可能です。

---Ellis Teer (teer[at]sitepen.com) on 13 Oct 2001

  1. 一般的な疑問について

    1. mod_dav って何ですか?
    2. どこで mod_dav は入手できますか?
    3. mod_dav のライセンス体系は?
    4. WebDAV サーバを利用できるクライアントはどういったものがありますか?
    5. mod_dav_svn と mod_dav_fs とは何ですか?
    6. davfs とは何ですか??
    7. なぜ mod_dav の提供と ML 運営は lyra.org ドメインの下で行なわれているのですか?

  2. できること・できないこと

    1. WebDAV の仕様のどれくらいまでを mod_dav はサポートしていますか?
    2. mod_dav は WebDAV の仕様である RFC 2518 を完全に満たしていますか?
    3. WebDAV プロトコルで、サーバー上のファイルを、全体をダウンロードせずにランダムシークしたり、任意の部分を読むことはできますが?
    4. WebDAV もしくは派生的な DAV 実装は、ファイル共有システムとして万能なのでしょうか?
    5. mod_dav はどれくらい安全ですか?
    6. mod_dav でディスク容量に制限をかけられますか?
    7. Linux/UNIX 環境で、mod_dav でディスク容量制限をかけられますか?

  3. インストール

    1. mod_dav のインストール方法を教えて下さい
    2. Linux/UNIX で、どうやったら mod_dav/Apache を一からインストールできるでしょうか?
    3. mod_dav と Basic 認証を組み合わせた Apache の設定例はありませんか?

  4. Configuration

    1. DAV では各ユーザーのユーザー名とパスワードをどうやって Apache から得ているのですか?
    2. どうしたら Apache のではなく、システム側の認証機構を mod_dav を併用できるでしょうか?
    3. ユーザーはどうやって追加したら良いですか?

  5. 運用

    1. ファイルへのロックを操作するツールはありませんか?
    2. Microsoft WebFolder が LOCK リクエストを発行していないようなのですが?
    3. クライアントからアクセスした時に、シンボリックリンクが見えません。
    4. なぜ中国語/日本語/韓国語/ラテン語/その他のファイル名が正しく扱えないのでしょう?
    5. ファイル名に UTF-8 以外のエンコーディングを使えますか?




  1. 一般的な質問

    1. mod_dav とは何ですか?

      mod_dav は Apache に WebDAV 機能 (RFC 2518) を追加するためのモジュールです。これは Apache スタイルのライセンスで 提供される、オープン ソースなモジュールです。

      ---Greg Stein (gstein[at]lyra.org) from webdav.org on 11 Oct 2001

    2. どこで mod_dav は入手できますか?

      http://www.webdav.org/mod_dav/ から配布されており、こちらでダウンロードも可能です。

      ---Ellis Teer (teer[at]sitepen.com) on 13 Oct 2001

    3. mod_dav のライセンス形態は?

      mod_dav はオープンソースソフトウェアで、 http://www.webdav.org/mod_dav/license-1.html で参照できる、Apache ライセンスを若干改変したライセンスで配布されています。

      ---Ellis Teer (teer[at]sitepen.com) on 13 Oct 2001

    4. WebDAV を利用できるクライアントはどのようなものがありますか?

      サーバー/クライアント共にその数は増え続けています。もっとも広く 使われているクライアントとしては、(最近の Windows や 一部 Office 製品に 付属の)Microsoft WebFolders、Cadaver、WebDAV Explorer、そして Adobe GoLive が挙げられます。参照先つきの完全なリストは http://www.webdav.org/projects/ にあります。

      ---Ellis Teer (teer[at]sitepen.com) on 13 Oct 2001

    5. mod_dav_svn と mod_dav_fs とは何ですか?

      Apache http 2.0Subversion に 含まれている最新の mod_dav では、取り扱うコレクションや リソースにアクセスするためのインタフェースを定義しています。 冒頭の mod_dav_svn と mod_dav_fs はそのインタフェースを実装して いるものです。どちらを使うかは、Apache の設定ファイルで選択します。 なお、Apache 1.x では、内部に mod_dav_fs 相当の機能が含まれている ため、mod_dav のみで十分です。

      mod_dav_fs は通常のファイルシステム上のファイルやディレクトリを mod_dav から扱うための機能を提供します。 Apache httpd 2.0 から標準モジュールとして付属するようになった mod_dav には この mod_dav_fs もしくは相当品がセットになっています。

      mod_dav_svn は新たに策定された Delta-V 仕様に基づいて、CVS ライクな機能を提供するものです。 これは WebDAV の拡張機能で、バージョン管理を行なう場合に 有用です。より詳しくは http://subversion.tigris.org/ の Subversion プロジェクトを参照して下さい。

      ---Ellis Teer (teer[at]sitepen.com) on 15 Oct 2001

    6. davfs とは何ですか?

      davfs とは WebDAV サーバーをディスクとしてマウント可能にする、 WebDAV クライアントとして動作する Linux のファイルシステム ドライバです。これは mod_dav + Apache を WebDAV サーバとして使う こととは直接関係しません。というのも、davfs はあらゆる WebDAV サーバをディスクのようにマウントして使うためのものだからです。 davfs を使うにあたり考えられる設定は、Apache + mod_dav な WebDAV サーバをLinuxディスクドライブとしてマウントすることです。

      ---Ellis Teer (teer[at]sitepen.com) on 06 Nov 2001

    7. なぜ mod_dav と ML は lyra.org ドメインなのですか?

      現在の @lyra.org の利用は完全に歴史的なものです。将来のある時点で、 必要な時間を見つけられ次第、dav-dev@lyra.org は mod_dav@webdav.org か 何かに切替えるつもりです。 同様に dav-announce@lyra.org は announce@webdav.org となります。

      ---Greg Stein (gstein[at]lyra.org) from dav-dev archive on 4 Oct 2001

  2. できること・できないこと

    1. mod_dav は WebDAV の仕様のどれくらいを満たしていますか?

      mod_dav (+ Apache) は Class 1 および Class 2 の WebDAV サーバーの 機能を持っています。これはつまり、リソース(ファイル)、リソース 属性、そしてリソースへの排他ロックの操作ができるということです。

      ---Ellis Teer (teer[at]sitepen.com) 13 Oct 2001

    2. mod_dav は RFC 2518 の WebDAV 仕様を完全に満たしていますか?

      いえ、mod_dav には RFC 2518 の仕様を満たしていない点がいくつかあります。コストが高過ぎる、 通常の利用では問題のない部分である、などの理由で実装されませんでした。 これは将来のバージョンでは修正されるかもしれません。

      • COPY および MOVE リクエストで、 <DAV:propertybehavior> の値が無視されます。また、実際にはリクエストボディ全体が 無視されています。さらに、第 8.8.2 項では、有効なプロパティは 複製の上、操作先の無効なプロパティとしなくてはならない、と あります。mod_dav の実装では、操作元と操作先では同一の有効な プロパティを持つ必要があり、さらに、操作先のプロパティを 無効化することにも問題があります。このため RFC で要求されて いる複製自体が行なわれません。
      • ロック機構では認証ユーザー名を記録せず、また、ロック機構の 使用にあたって認証されていることを要求していません。 これは第 6.3 項と相反します。この問題は 1.0 リリースでは ほぼ解決されていますが、まだ POST に絡んで残っている問題に ついては文書化しておく必要があるでしょう。
      • 内部的に XML Namespace URI とエレメント名を連結せず、ペアデータと して扱っています。これは第 23.4.2 項に書かれている挙動と相反します。 より細かい説明については、Yaron Goland の この件に関するスレッドを 参照して下さい。
      • PROPPATCH リクエストにおいて、 <DAV:source> 属性が第 13.10 項で定義されている DTD に適合しているかの チェックがされていません。
      • DAV:getcontentlength がコレクションに対して定義されません。これは第 13.4 項の 記述と相反します。

      ---Greg Stein (gstein[at]lyra.org) from www.webdav.org 13 Oct 2001

    3. WebDAV ではファイル全体を転送せずに、任意位置をシークしたり 読み出しすることは可能ですか?

      可能です。HTTP (RFC 2616) 仕様に含まれている Range: ヘッダについて 調べるとよいでしょう。

      ---Greg Stein (gstein[at]lyra.org) from dav-dev archive on 5 Oct 2001

    4. WebDAV、もしくはそれに派生する DAV 実装はファイル共有システムとして 万能でしょうか?

      DAV は、MacOS X を見れば明らかなように、たしかに ファイル共有システムとして使うことができます。 (MacOS Xでは)DAV サーバーをファイルシステムとして マウントできますし、サーバー版にはそれ自体に DAV サーバー 機能が含まれています(実際には Apache/mod_dav ですが)。 DAV それ自体には、リモートファイルシステムとしての利用を 妨げるものは一切ありません。現時点で足りないものを挙げると すれば、リモート認証機構とシンボリックリンク的な機能でしょう。 しかし、前者は目処が立っている ACL 仕様で提供されますし、 後者は Reference 仕様で提供されます(こちらは策定プロセスが 止まっていますが)。

      ---Greg Stein (gstein[at]lyra.org) from dav-dev archive on 4 Oct 2001

    5. mod_dav はどれくらいセキュアですか?

      Apache と mod_dav はかなりセキュアといってよいでしょう。 過去3年間、最初にリリースされて以来、コーディング上の セキュリティ問題はただの1件も報告されていません。 もちろん、自分で間違った設定を行なうことはできます。 実際、SuSE Linux はそのような問題を含んだパッケージをリリースし、 その結果、セキュリティ報告とアップグレードのアナウンスをすることに なりました。しかし、付属のインストール文書に書かれている注意事項を 念頭に設定しさえすれば、Apache と mod_dav はかなりセキュアといって よいでしょう。

      ---Greg Stein (gstein[at]lyra.org) from dav-dev archive on 4 Sep 2001

    6. mod_dav でディスク容量制限をかけることは可能ですか?

      現在、mod_dav にはディスク容量の制限機構は含まれていません。 実現手法が各プラットフォームで異なっており、プラットフォーム独立な 方法で実装することが困難なためです。ユーザー管理とディスク容量の 制限方法についてはこれまでも議論されていますが、実装作業としては 行なわれていません。どのような形で実装されるにせよ、オペレーティング システムの機構とは別に、追加機能として(必ずしも連動しない形で) 入ることになるでしょう。

      ---Ellis Teer (teer[at]sitepen.com) on 19 Oct 2001

    7. Linux/Unix のファイルシステムを利用する形でなら ディスク容量制限をかけることができますか?

      mod_dav には既存のディスク容量制限機構を利用する仕組みは入って いませんが、Apache を各ユーザーの権限の下で動かすことで、結果的に サポートさせることができます。なお、これは Apache を root 権限で 走らせる必要があるので、熟考の上でされることをお勧めします。

      さて、まずは apache を CFLAGS に -DBIG_SECURITY_HOLE をつける形で再コンパイルして下さい。これで apache が root 権限で 走るようになり、後で認証結果に基づいて seteuid(2) を発行できるようになるわけです。

      # 名前の通り、重大な問題が発生する可能性がありますが、 # そのリスクは取れるものとします

      再コンパイルが終った後は、認証結果から得られるユーザー名を システムユーザーの uid にどうやって対応させるか決めなくては なりません。

      もし単純に /etc/passwd のエントリの通りに割り付けたいのであれば、 http://www.snert.com/Software/Become/ から入手できる mod_become を導入すればOKです。

      上にあてはまらない場合、認証結果から得られる uid に 対して seteuid(2) が呼ばれるように、自分で apache の モジュールを作らなくてはなりません。もっともこれは 簡単で、二つの点に注意するだけです。

      1. seteuid を fixup ステージで呼んで、実行 uid が 変わってしまっている状態を短くすること。
      2. logging もしくは cleanup ステージで seteuid を 再度呼び、次のリクエスト処理ループ開始時に元の状態に戻しておくこと。

      実際のコードは次のようになります:

        /*
         * in fixup stage
         */
      
        /* 渡されたユーザー名に対応する uid を得る - 中は自分で書くこと */
        uid_t uid = mygetuid(username);
      
        if (uid == 0)
          uid = uid_for_some_safe_user; /* とりあえず root で処理はしない */
        seteuid(uid);
      
        ...
      
        /*
         * in logging/cleanup stage
         */
        seteuid(ap_user_id); /* 次の seteuid(2) のために元の権限に戻しておく */
      

      もし mod_perl やそれ系のモジュールも入れている場合、上記処理は一行で 書くことも可能です。必要なのは PerlFixupHandler と PerlLogHandler を フックして、$> の値を変えるだけです。

      ---Taisuke Yamada (tai[at]iij.ad.jp) from dav-dev archive on 23 Mar 2001

  3. インストールについての質問

    1. mod_dav のインストール方法は?

      http://www.webdav.org/mod_dav/install.html を参照して下さい。

      ---Ellis Teer (teer[at]sitepen.com) on 10 Oct 2001

    2. UNIX/Linux で一から mod_dav/Apache をインストールしたいのですが?

      これから述べる手順は、Apache を mod_dav 付きで一から作ることを 想定しています。既にコンパイル済みの Apache に mod_dav を追加する 方法については、mod_dav 付属の文書を参照して下さい。また、 Apache と mod_dav の作成には GNU gcc コンパイラが必要です。 いくつかのプラットフォームについては、バイナリパッケージが 用意されています(http://www.gnu.org/software/gcc/gcc.html)。

      まず Apache/mod_dav を置くフォルダを決め、その中に "www" もしくは その系統の名前のサブフォルダを作成し、そこをカレントディレクトリとして 移動して下さい。ここでは、/myfiles1/www を 前提に話を進めます:

      prompt% cd /myfiles1
      prompt% mkdir www
      prompt% cd www

      そして、以下のパッケージを src フォルダにダウンロードして下さい:
      Apache version 1.3.20: http://httpd.apache.org/dist/httpd/apache_1.3.20.tar.gz
      mod_dav version 1.0.2: http://www.webdav.org/mod_dav/mod_dav-1.0.2-1.3.6.tar.gz
      これらを gunzip し、展開します:

      prompt% gunzip apache_1.3.20.tar.gz
      prompt% tar xvf apache_1.3.20.tar
      ...
      prompt% gunzip mod_dav-1.0.2-1.3.6.tar.gz
      prompt% tar xvf mod_dav-1.0.2-1.3.6.tar
      ...

      まずは Apache の方で "configure" コマンドを実行します:

      prompt% cd apache_1.3.20
      prompt% ./configure --prefix=/myfiles1/www/apache_1.3.20
      ...

      次は mod_dav の方で同様に "configure" コマンドを実行します:

      prompt% cd ../mod_dav-1.0.2-1.3.6
      prompt% ./configure --with-apache=/myfiles1/www/apache_1.3.20
      ...

      mod_dav モジュールを作成します:

      prompt% make
      ...
      prompt% make install
      ...

      そして、コンパイルされた mod_dav を組み込むために、再度 "configure" を Apache の方で実行します:

      prompt% cd ../apache_1.3.20
      prompt% ./configure --prefix=/myfiles1/www/apache_1.3.20 --activate-module=src/modules/dav/libdav.a
      ...

      最後に、Apache を mod_dav を組み込んだ形で作成します:

      prompt% make
      ...
      prompt% make install
      ...

      ---Eric G. Stephan (Eric.Stephan[at]pnl.gov) on 10 Oct 2001

    3. mod_dav と Basic 認証を併用する場合の httpd.conf の例はありませんか?

      mod_dav 入りの Apache のインストールを終え、ユーザーアカウントの 登録も終ったら、Apache の httpd.conf を編集してサーバー設定を 行なわなくてはなりません。この設定ファイルは、インストール後の "conf" フォルダにあります。ここでは、とりあえず動かすために必要な 最低限の内容を述べます。

      メモ: どんな変更を加える場合でも、httpd.conf のバックアップを取った 上で編集する習慣を付けておくとよいでしょう。

      まずは、httpd.conf を編集するにあたっての基礎知識です:

      • このファイルはサーバーの起動時に一回だけ読み込まれます
      • この httpd.conf の中身は、単純な「命令」のリストです
      • 「命令」はサーバーのパラメータを定義します
      • 「#」はコメント文字です。ある命令を有効にしたかったら、 その先頭についている「#」を外せば有効になります
        • それではエディタを使って、httpd.conf を以下のように編集して下さい:

          1. "Listen" 命令で、ウェブサーバーを外部に公開するためのポートを 指定します
          2. "User" 命令で、ウェブサーバーの実行権限を指定します。 もし root で起動している場合は、 この "User" のところには "nobody" を指定して下さい
          3. "Group" 命令は上記ユーザーが属すべきグループを指定します。 もし root で起動している場合は、この "Group" には "nobody" を 指定して下さい。なお、グループ ID 番号で指定する場合は、 数字の先頭に「#」を付けます。
          4. "ServerAdmin" 命令では、管理者へのメールアドレスを指定します。
          5. "ServerName" 命令では、ウェブサーバーのドメイン名を含む完全なホスト名を指定します。
          6. "DocumentRoot" 命令では、DAV ユーザー領域(=ファイルの 保管場所)へのフルパスを指定します
          7. "AccessFileName" 命令は ".htaccess" を指定します
          8. "AllowOverride" 命令は "None" を指定します
          9. "DocumentRoot" 命令の中では、さらに以下の命令を追加して下さい:
            1. DAVDepthInfinity On 全領域を対象にする PROPFIND リクエストをサポートさせる場合
            2. DAVLockDB + DAV のロック管理データベースを置くフォルダ名
            3. DAVMinTimeout 600
            4. <Directory/>
                Options FollowSymLinks
                AllowOverride None
              </Directory>
            # ここは DocumentRoot に合わせて下さい
            #
            <Directory "/files0/home/e-wwwdocs">
            #
            # ここは "None", "All", もしくは "Indexes", "Includes",
            # "FollowSymLinks", "ExecCGI", "MultiViews" の組み合わせを設定します
            #
            # なお、"MultiViews" だけは明示的に指定が必要です --- "Options All" では
            # 設定されません。
            #
                Options Indexes FollowSymLinks MultiViews Includes
            #
            # ここでは .htaccess を使って各フォルダで何を設定できるかを制限します。
            # "All" もしくは "Options", "FileInfo", "AuthConfig", "Limit" の
            # 組合せを指定します。
                AllowOverride None
            #
            # 誰がこのサーバーにアクセスできるかを制御します
            #
                Order allow,deny
                Allow from all
            </Directory>
            # --
            # -- ここ以降はアクセス制御など他の機能に関連する設定です
            # --
            
            # DAV アクセス可能なディレクトリの指定
            # ここでは DAV を有効にし、すべてのウェブブラウザからのアクセスを
            # 可能にする一方、アクセス許可は読み出しのみ、としています。
            # AuthName は用途に応じて適当に設定して下さい。
            <Directory full-DAV-directory-path>
              AuthName "any-name-you-want"
              AuthUserFile directory-path-to-password-file/password-file-name
              AuthType Basic
              AllowOverride None
              DAV On
              Options Indexes
              Order allow,deny
            # デフォルトで読みだしのみとして公開する場合の設定例。
            # 追加的な認証設定は .htaccess でも行なうことができます。
              Allow from all
                <Limit HEAD GET POST OPTIONS PROPFIND>
                    Allow from all
                </Limit>
                <Limit MKCOL PUT DELETE LOCK UNLOCK COPY MOVE PROPPATCH>
                    Deny from all
                </Limit>
              require valid-user
            </Directory>
            

          ---Eric G. Stephan (Eric.Stephan[at]pnl.gov) on 10 Oct 2001

  4. 設定に関する質問

    1. DAV では各ユーザーのユーザー名とパスワードをどうやって Apache から得ているのですか?

      まず、mod_dav によるアクセス制限は、Apache により提供されている、他のドキュメントアクセス制限と同じ方法で実現可能です。 -- 例えば、.htaccess ファイルを用いた標準の認証設定が使用可能です。 mod_dav の内部に作りこまれている認証機構はありませんし、そうする必要がありません。 -- 認証に関する Apache のモジュールはすでに提供されています(必要であれば、SSLによる暗号化もあります)。 ここで注意しなければならないのは、Apache の認証(要は mod_dav の認証)は、通常の(/etc/passwd に記述されている)UNIXユーザとパスワードとは何の関連もないことです。-- もっともこれは、Apache の認証を使うにあたっての共通した誤解のように思います。

      ---Brendan Quinn (brendan[at]clueful.com.au) from dav-dev archive on 11 Oct 2001

    2. どうしたら Apache のではなく、システム側の認証機構を mod_dav を併用できるでしょうか?

      mod_dav がApache モジュールであることを理解すれば、(少なくとも)ここに書かれてることがトリッキーであることがわかるでしょう。Apache は、サーバが走行しているユーザ権限(一般的には nobodyユーザ権限で走行しています)でファイルを書き込みます。ここで取りうる選択肢としては、

      1)Apache を -DBIG_SECURITY_HOMEオプションを付加してコンパイルし、root 権限で Apache を走行させてください。その結果、Apache はsetuidを必要に応じて利用することができます。これはもちろん、a Bad Thing(tm) であることは言うまでもありません。

      2)Apache のインスタンスをシステムにアクセスしたいユーザ権限で走行させてください。これを実行するには少し悩むかもしれませんが、不可能ではありません。どの程度煩雑になるかというのは、このようなことをしたいユーザがどの程度いるかに依存します。もし、少ない数のユーザ(100人以下)であれば、これは難しいことではありません。ポート80をlistenしてリクエストに応じてhttpd -c usernameというコマンドラインを実行するような(小さい)プログラムを作成すればいいだけのことです。必要な username をリクエストにより把握するには、2つの方法があります。私はこれは理想的な方法とは思いませんが、実装は面白いでしょうね。

      3) suexecから起動される DAV server CGI を作成するなり見つけるなりしてください。私はそのようなプログラムの存在は知りませんが、あればあなたの問題を解決することができるでしょう。もちろんこのような場合、fork() (+exec())の分の性能コストは払うことになります。これは、トラフィックによっては問題になるかもしれません。

      ---Noah Robin (sitz[at]onastick.net) from dav-dev archive on 1 Oct 2001

    3. ユーザーはどうやって追加したら良いですか?

      Apache をインストールしたら"htpasswd"というユーティリティがbin ディレクトリの下に作成されます。これを用いてユーザアカウントの管理が可能になります。Nulshell の本によると、 htpasswd は単にパスワードファイルを作成したり、ユーザや暗号化されたパスワードをファイルに追加したりするだけのシンプルなツールです。このユーティリティの全てのオプションを以下に示します。

      prompt% htpasswd -?

      パスワードファイルを生成するためには、以下のようにします。

      prompt% htpasswd -c /my-directory-path/my-password-file user-name

      注意: コマンド実行時に、同じパスワードを2回入力するよう促されます。

      追加のユーザアカウントをパスワードファイルに追加するには、以下のようにします。

      prompt% htpasswd /my-directory-path/my-password-file user-name-2

      警告: セキュリティ上の理由から、パスワードファイルを Apache の Web root 配下には作成/格納しないことが推奨されています。

      (訳注:セキュリティ上のことを考えるのであれば、ベーシック認証ではなくダイジェスト認証を使用した方がベターです。ベーシック認証は平文で認証のためのユーザ名とパスワードが流れますが、ダイジェスト認証はユーザ名とパスワードから生成されたダイジェスト文が流れるだけなので、ベーシック認証よりは安全です。)

      ---Eric G. Stephan (Eric.Stephan[at]pnl.gov) on 10 Oct 2001

  5. 運用に関する質問

    1. ファイルへのロックを操作するツールはありませんか?

      mod_dav は、ロックファイルの操作をするようなユーティリティはいっしょに提供していません(mod_dav の中に作成されているロック機構はさておきますが)。しかし、ロックファイルとして作成された .dir ファイルと .pag ファイルを削除することで、いとも簡単に全てのロックを解除することができます。しかし、この方法は他の誰かがあるべきことを期待しているロックを除去できてしまうことに注意してください。ある種のDAVクライアントは、lock が消失するかタイムアウトするかするまでレスポンスを返さなくなります(例えば MS Office がその1つです)。推奨されているアプローチは、その時間を管理のためのダウンタイムと呼ぶことです。ロックファイルを削除する前に、「これから1分ほどダウンします(言い方はいくつもあるでしょうが)とユーザにアナウンスしてください。そうすれば、ユーザは作業ファイルを保存したり閉じたりすることができるでしょう(このために Apache そのものを停止する必要はないことに注意してください)。

      ---Greg Stein (gstein[at]lyra.org) from dav-dev archive on 4 Oct 2001

    2. Microsoft WebFolder が LOCK リクエストを発行していないようなのですが?

      クライアントはLOCK要求を発行しなければなりません。MS Office や他のクライアントはLOCK要求を出しますが、Webフォルダは出していません。

      ---Keith Wannamaker (Keith[at]Wannamaker.org) from dav-dev archive on 11 Sep 2001

    3. クライアントからアクセスした時に、シンボリックリンクが見えません。

      mod_dav はシンボリックを表示しません。また、見つけたとしても無視します。シンボリックリンクは、RFC 2518の中では、シンボリックリンクは定義されていません。リポジトリやファイルシステムは、mod_dav とは独立しているべきです。そしてmod_dav はシンボリックリンクを作成できませんので、利用者はシンボリックリンクを使わないようにしましょう。但し、手動でシンボリックリンクを作成するか、他のプログラムでこれを実現する場合にはこの限りではありません。もしあなたが mod_dav が注意深くロック動作等をしている裏をかいてリポジトリを手動で操作しようとするのであれば、潜在的な問題が引き起こされることがあります。

      ---Ellis Teer (teer[at]sitepen.com) on 15 Sep 2001

    4. なぜ中国語/日本語/韓国語/ラテン文字/その他のファイル名が正しく扱えないのでしょう?

      もし使われているクライアントが Microsoft WebFolder だった場合、 それには相互運用上の問題があることが知られています。 ファイル名として UTF-8 ではなく、プラットフォーム上で使われている、 生の、自動判定困難なエンコーディングを送ってくるのです(これは 最近のリリースでは修正されている様ですが、具体的にどの版が修正されて いるのかはまだ不明です)。多くの UNIX ベースの実装も同様の問題を 抱えています。

      さて、mod_dav 自体は UTF-8 以外のエンコーディングを認識しませんが、 これへのパッチ、または独立した形で提供される Apache モジュールを 利用することで対応することが可能です。モジュールについては http://www.lyra.org/pipermail/dav-dev/2001-May/002428.html より入手可能です。現在大幅な機能拡張中であり、新版も まもなく入手可能となるでしょう。

      ---Taisuke Yamada (tai[at]iij.ad.jp) on 19 Oct 2001

    5. ファイル名に UTF-8 以外のエンコーディングを使えますか?

      サーバー側でのファイル名に UTF-8 以外のエンコーディングを利用可能にする パッチが現在開発中です(このパッチは上で触れた Microsoft WebFolder パッチ とは別の物です)。このパッチを WebFolder パッチと併用することで、 クライアント側、サーバー側ともに任意のエンコーディングが利用可能と なります。

      このパッチの初期実装の一つとして、 http://www.sera.desuyo.net/WebDAV/ で日本語対応を可能にするパッチが公開されています。現在、数種ある 各種実装を統合し、すべてのエンコーディングに対応するための作業を チームを組んで作業中です。なお、統合版では日本語の取り扱いについても 大きく改良されています。

      これもまた、近いうちに入手可能となるでしょう。

      ---Taisuke Yamada (tai[at]iij.ad.jp) on 19 Oct 2001