VineLinux3.x/Apache2.0/WebDAVを使うための設定

Last-modified: 2008-11-08 (土) 11:29:59 (3301d)

概要

WebDAV(Distributed Authoring and Versioning protocol for the WWW)でファイル共有ができるようにします。

設定手順

ロックディレクトリの作成

# mkdir /usr/local/apache2/lock
# chown apache:apache /usr/local/apache2/lock/

apache2の動作ユーザーapacheがアクセスできるように、lockディレクトリの所有者をapacheに変更します。

WebDAVディレクトリの作成

# mkdir /home/httpd/dav
# chown apache:apache /home/httpd/dav/

davディレクトリの所有者をapacheに変更します。

  • SSL用のディレクトリを作る場合
    # mkdir /home/httpd/davssl
    # chown apache:apache /home/httpd/davssl/

httpd.confの編集

# vi /usr/local/apache2/conf/httpd.conf

一番最後に追加

Alias /dav "/home/httpd/dav"
DAVMinTimeout 600
DavLockDB lock/DavLock
<Location /dav>
        DAV On
        Options Indexes
        AuthType Basic
        AuthName "Webdav"
        AuthUserFile "/usr/local/apache2/conf/.htpasswd"
        Require valid-user
</Location>
Alias /dav "/home/httpd/davssl"		←SSL用
<Location /davssl>		
        DAV On
        Options Indexes
        SSLRequireSSL
        AuthType Basic
        AuthName "Webdav (SSL)"
        AuthUserFile "/usr/local/apache2/conf/.htpasswd"
        Require valid-user
</Location>

この設定ではSSLを有効にしないとBasic認証になるためパスワードが平文で流れます。暗号化パスワードで認証したい場合は、Apache2でDigest認証を行ってください。
SSLだと認証も含め、すべての通信が暗号化されます。SSLで使う場合は、先にApache2でSSLを使うための設定?を行ってください。

アクセス用パスワードの作成

"test"ユーザーのパスワードを作成

# /usr/local/apache2/bin/htpasswd -c /usr/local/apache2/conf/.htpasswd test
New password:
Re-type new password:
Adding password for user test

apache2の再起動

# /etc/rc.d/init.d/apache2 restart
httpdを停止中:                                             [  OK  ]
httpdを起動中:                                             [  OK  ]

動作の確認

dav.png

クライアントでIEを起動して、ファイル→開く、でWebDAVの"ドメインorIP:80/dav"を入力。SSLの場合は"ドメインorIP:443/davssl"。ポート番号を後ろにつけるのがポイント。そして、Web フォルダとして開くにチェックをいれOKをクリック。パスワード入力のダイアログが出るので入力し、無事に入れればOK。

ファイルをコピーしたりフォルダを作成したりしてみてください。うまくいかない場合はディレクトリのパーミッションに問題がないか確認してください。WindowsXPのWebフォルダのみでやり取りする場合、特に文字化けはしないようです。

うーむ、Windows2000からだと文字化けする・・・。やっぱり、mod_encodingが必要なのかなあ・・・。

WindowsXPは標準でURLをUTF-8として送信しているようです。ですが、Windows2000などはURLをShift_JISで送信していると思われます。つまり、URLの文字コードがWebDAVで扱っているUTF-8以外だと文字化けしてしまうようです。それらとやり取りする場合はmod_encodingの導入が必要です。もしくは、IEの設定で「常にUTF-8としてURLを送信する」のチェックをつければいいかも(未確認)。

Tips

エラーが記録されてる

Webフォルダからアクセスするとerror_logに、

_vti_inf.html
_vti_bin

といったファイルがないと言われる。動作に問題は無いが気持ち悪いので出ないようにする。

これはWindowsのWebフォルダが誤作動を起こしているためで、このエラーを出さないためにはapache2のモジュールmod_headersをインストールする。

apache2のソースディレクトリに移動する

# cd httpd-2.0.54/modules/metadata/

コンパイル、インストール

# /usr/local/apache2/bin/apxs -c -i -a mod_headers.c

/usr/local/apache2/modules/mod_headers.soがインストールされる

httpd.confの編集

# vi /usr/local/apache2/conf/httpd.conf

LoadModule headers_module modules/mod_headers.so が記述されていることを確認し、以下を追加する

<Location />
     Header add MS-Author-Via "DAV"
</Location>

保存してapache2を再起動

# /etc/rc.d/init.d/apache2 restart
httpdを停止中:                                             [  OK  ]
httpdを起動中:                                             [  OK  ]

htmlのリンクとして開きたい

IE5以上でブラウザから直接リンクとしてWebフォルダを開きたい場合は、htmlファイルの中に

<STYLE TYPE="text/css">
	<!--
	A {behavior: url(#default#AnchorClick);}
	-->
</STYLE>

<A FOLDER="http://xxxx:80/dav">Open Folder View</A>

と記述してOpen Folder ViewをクリックするとWebフォルダとしてアクセスできます。

コメント



添付ファイル: filedav.png 135件 [詳細]