9.24. WebDAV を利用する(mod_dav、mod_davfs)

WebDAV とは、HTTP プロトコルの拡張でクライアントからの Web サーバーのコンテンツの管理を可能にする機能です。HTTP は、Web サーバーにあるファイルやファイルの一覧などをクライアントに送るための規約ですが、WebDAV では、クライアントで作成したファイルのアップデートや、サーバー上のファイルの削除や移動、コピーなども可能にします。Apache では、WebDAV の機能は mod_dav および mod_davfs モジュールにより提供されます。便利な機能ではありますが、反面リモートクライアントからの更新を許可することになるためセキュリティを十分に考慮する必要もあります。なお、/etc/httpd/conf/httpd.conf には以下の記述があり、mod_dav および mod_davfs モジュールはデフォルトで読み込まれています。

LoadModule dav_module modules/mod_dav.so
LoadModule dav_fs_module modules/mod_dav_fs.so

9.24.1. 基本的な WebDAV の設定

WebDAV に関連する基本的なディレクティブは以下の通りです。

Dav On|Off

クライアントから書き込みを許可するディレクトリの Directory ディレクティブに WebDAV の有効(On)、無効(Off)を指定します。サーバーのセキュリティが確保できてからこの値を On にして変更してください。

DavLockDB file-path

ロックファイルのパスを指定します。Turbolinux 11 Server では初期状態で以下のように指定されています。

<IfModule mod_dav_fs.c>
    # Location of the WebDAV lock database.
    DAVLockDB /var/lib/dav/lockdb
</IfModule>

例えば、/var/www/php-source ディレクトリに対する DAV アクセスを許可するには以下のように指定します。WebDAV でファイル操作を許可するディレクトリへのアクセス制御(詳細は項9.9)やユーザー認証の設定(詳細は項9.17)は適切に行ってください。

<IfModule mod_dav_fs.c>
    DAVLockDB /var/lib/dav/lockdb
</IfModule>
Alias /php-source "/var/www/php-source"
<Location /php-source>
   DAV On

   AuthType        Basic
   AuthName       "web-dav"
   AuthUserFile    "/etc/httpd/conf/htpasswd"
   Require valid-user

   Order deny,allow
   Deny from all
   Allow from 192.168.1.0/24
</Location>

/etc/httpd/conf/httpd.conf の編集後は変更を反映させるために Apache の再起動が必要です。

WebDAV でファイル操作するディレクトリは、User ディレクティブと Group ディレクティブで指定されたユーザーに書き込みを許可する必要があります。Turbolinux 11 Server の初期値は、いずれも apache です。例えば /var/www/html/php-source ディレクトリに対する書き込みを許可したいときその他のユーザーに書き込み権限を追加します。

# mkdir /var/www/php-source
# ls -dl /var/www/php-source
drwxr-xr-x  2 root root 4096  7月 26 20:27 /var/www/php-source
# chmod o+w /var/www/php-source

9.24.2. クライアントの設定

WebDAV で書き込みを許可している Web サーバーへアクセスをするにはクライアント側の設定が必要です。Windows XP や Windows98 などの Windows クライアントでは標準で WebDAV クライアントの機能があります。

9.24.2.1. Windows XP の場合

エクスプローラのマイネットワークから"ネットワークプレースの追加"を選択します。次のようにネットワークプレースの追加ウィザードが起動されます。

[次へ]をクリックします。

[次へ]をクリックします。

インターネットまたはネットワークのアドレスに http://example.com/php-source/ のように指定をして[次へ]をクリックします。

ネットワークプレースの名前を指定して[次へ]をクリックします。

[完了]をクリックします。

マイネットワークのインターネットに次のようにアイコンが追加され、アクセスが可能になります。

9.24.2.2. Windows 98 の場合

Windows 98 等ではエクスプローラの Web フォルダを選択し、(Web フォルダの追加)アイコンをクリックします。ウィザードが起動され Web フォルダを設定します。IE 6.0 以降が必要です。

追加する場所をhttp://example.com/php-source/のように指定をして[次へ]をクリックします。

Webフォルダの名前を指定して[完了]をクリックします。

エクスプローラの Web フォルダに(Web フォルダ)アイコンが追加され、アクセスが可能になります。