This is version . It is not the current version, and thus it cannot be edited.
[Back to current version]   [Restore this version]

WebDAVとは?#

RFC4918によって規定されていて、簡単に言うと、ブラウザからHTTPサーバにファイルをアップロードするためのプロトコルです。下位ではHTTPを利用しているため汎用性が高いのが特徴です。
Apacheでも従来から実装されています。

コンパイル#

Apache2.2でWebDAVを利用するためには以下のモジュールが必要になります。
  • mod_dav
必要なモジュールを有効にするためのコンパイルは次です。
$ ./configure --enable-modules="so dav"
$ make
$ make install
この設定では、デフォルトフォルダである '/usr/local/apache2' にインストールされます。インストールフォルダを換えたい場合は '--prefix=/好きなフォルダ' をconfigureに追加します。

httpd-dav.confの設定例#

上記の手順でコンパイルをすると、/usr/local/apache2/conf/extra/httpd-dav.conf が生成されます。中身は次の通りです。
#
# Distributed authoring and versioning (WebDAV)
#
# Required modules: mod_dav, mod_dav_fs, mod_setenvif, mod_alias
#                   mod_auth_digest, mod_authn_file
#

# The following example gives DAV write access to a directory called
# "uploads" under the ServerRoot directory.
#
# The User/Group specified in httpd.conf needs to have write permissions
# on the directory where the DavLockDB is placed and on any directory where
# "Dav On" is specified.

DavLockDB "/usr/local/apache2/var/DavLock"

Alias /uploads "/usr/local/apache2/uploads"

<Directory "/usr/local/apache2/uploads">
    Dav On

    Order Allow,Deny
    Allow from all

    AuthType Digest
    AuthName DAV-upload

    # You can use the htdigest program to create the password database:
    #   htdigest -c "/usr/local/apache2/user.passwd" DAV-upload admin
    AuthUserFile "/usr/local/apache2/user.passwd"
    AuthDigestProvider file

    # Allow universal read-access, but writes are restricted
    # to the admin user.
    <LimitExcept GET OPTIONS>
        require user admin
    </LimitExcept>
</Directory>

#
# The following directives disable redirects on non-GET requests for
# a directory that does not include the trailing slash.  This fixes a
# problem with several clients that do not appropriately handle
# redirects for folders with DAV methods.
#
BrowserMatch "Microsoft Data Access Internet Publishing Provider" redirect-carefully
BrowserMatch "MS FrontPage" redirect-carefully
BrowserMatch "^WebDrive" redirect-carefully
BrowserMatch "^WebDAVFS/1.[0123]" redirect-carefully
BrowserMatch "^gnome-vfs/1.0" redirect-carefully
BrowserMatch "^XML Spy" redirect-carefully
BrowserMatch "^Dreamweaver-WebDAV-SCM1" redirect-carefully
WebDAV関連のディレクティブは次の2つだけです。

Dav#

WebDAVの利用を宣言します。"On"という値を記述することで有効になります。

DavLockDB#

ロックデータベースファイルを指定します。ここで指定したフォルダ(上記例では/usr/local/apache2/var/)は、Apache実行ユーザ(デフォルトではdaemon)で読み書きできるようにパーミッションを設定しておく必要があります。
稼働すると、"DavLock.dir"と"DavLock.pag"の2つのファイルが生成されます。

その他の関連ディレクティブには次のものがあります。

LimitExcept#

サイトへのアクセスをさらに制限するためにLimitExceptを利用できます。
上記例では、HTTPのGETとOPTION以外のメソッドが使えるユーザを'admin'だけに限定しています。この結果、ファイルをアップロードできるのはadminだけになります。しかしこのディレクティブの使い方には注意が必要です。
デフォルトで生成されるhttpd-dav.confのコメント読むと「adminユーザだけに書き込みを限定し、一般ユーザには読み取りのみ許可する」と書いてありますが、私が試した限りでは少しややこしい動きになりました。
  • ブラウザからアクセスすると認証ダイアログが表示されず、常に読み取りのみになる。
  • DAV専用クライアントからアクセスするとadminユーザでしかログインできなくなる。
  • クライアントがWindowsの場合、net useコマンドによる接続もDAV専用クライアントと同じ。
そのためこのディレクティブを使わず次のように設定し、認証されたユーザは全員読み書き出来る前提で運用する事を私はお薦めします。
Require valid-user

httpd.confの設定#

httpd-dav.conf をインクルード(Include)している行のコメントをはずします。
# Distributed authoring and versioning (WebDAV)
Include conf/extra/httpd-dav.conf

設定後、'service httpd restart' などでApacheを再起動します。

添付ファイルの追加

ログイン済のユーザのみが添付ファイルをアップロード出来ます。
« This particular version was published on 07-5-2011 01:26 by ytp.