VineLinux3.x/Apache2.0/WebDAVを使うための設定
概要 †
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 ]
動作の確認 †
クライアントで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フォルダとしてアクセスできます。