mod_dav_lock mod_dav 用の汎用ロックモジュール Extension mod_dav_lock.c dav_lock_module バージョン 2.1 以降

このモジュールは mod_dav のどのバックエンド からでも使える汎用ロック API を提供します。 使用には最低限 mod_dav を必要としますが、これを利用するバックエンドが存在しないと役に立たないので、 そのような場合はサーバに読み込むべきではありません。 mod_dav_lock を実際に利用するバックエンドモジュールの例としては subversion プロバイダモジュールの mod_dav_svn があります。

mod_dav_fs は特化された専用のバージョンを 使うため、この汎用モジュールは必要ないことに注意して ください。

mod_dav_lock を機能させるには、 以下で説明されている DavGenericLockDB を使って ロックデータベースの場所を指定するだけです。

開発者向けのメモ

ロックを提供している関数へのポインタを取得するためには、 ap_lookup_provider API を、引数 dav-lock, generic, 0 を指定して使う必要が あります。

mod_dav DavGenericLockDB DAV ロックデータベースの場所 DavGenericLockDB file-path server configvirtual host directory

DavGenericLockDB ディレクティブを 使って、拡張子を除いたロックデータベースへのフルパスを 指定します。絶対パスでないときは ServerRoot からの相対パスとして 扱われます。mod_dav_lock の実装ではユーザの ロックを追跡するのに SDBM データベースを使います。

DavGenericLockDB var/DavLock

ロックデータベースファイルのあるディレクトリは Apache が実行されている UserGroup によって 書き込み可能でなければなりません。セキュリティ上の理由から、 既存のディレクトリのパーミッションを変更するのではなく、 専用のディレクトリを作るのが良いでしょう。上の例では、 Apache は ServerRoot の下の var/ ディレクトリに、ファイル名の本体が DavLock で サーバが選択した拡張子を持つファイルを作成します。