WebDAVとは?#
'HTTP Extensions for Web Distributed Authoring and Versioning'の略で、 RFC4918
Apacheでも従来から実装されています。
コンパイル#
Apache2.2でWebDAVを利用するためには以下のモジュールが必要になります。- mod_dav
必要なモジュールを有効にするためのコンパイルは次です。
$ ./configure --enable-modules="so dav auth_digest authn_file authz_user authz_owner" $ make $ make install
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
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を再起動します。
FYI: Windows7からダイジェスト認証でログインするには?#
net use コマンド#
一番簡単なのはこれです。コマンドプロンプトから次のように入力すると、エクスプローラから「Wドライブ」でアクセス出来るようになります。ドライブレターは適宜換えてください。net use w: http://サイトURL (ユーザ名とパスワードの入力を求められるので入れる)
ネットワークドライブの割り当て#
「スタートメニュー」→「コンピュータ」で右ボタンメニューを出し、「ネットワークドライブの割り当て」を選んでhttp://サイトURL を入力します。認証ダイアログが表示されるのでユーザ名とパスワードを入力します。うまく接続できなかった時は?#
私のPCでは発生しなかったのですが、Windows7からうまくつながらないことがあるそうです。レジストリの設定によってSSL以外の認証を許さなくなっていることが理由とのことです。その場合は次のレジストリの値を「2」に設定してください。HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\WebClient\Parameters BasicAuthLevel
添付ファイルの追加
ログイン済のユーザのみが添付ファイルをアップロード出来ます。
«
This page (revision-10) was last changed on 07-5-2011 23:02 by ytp