* 概要 [#u21d3abb]
WebDAV(Distributed Authoring and Versioning protocol for the WWW)でファイル共有ができるようにします。
* 設定手順 [#q99a91fe]
** ロックディレクトリの作成 [#z772071d]
# mkdir /usr/local/apache2/lock
# chown apache.apache /usr/local/apache2/lock/
# chown apache:apache /usr/local/apache2/lock/
>apache2の動作ユーザーapacheがアクセスできるように、lockディレクトリの所有者をapacheに変更します。
** WebDAVディレクトリの作成 [#t7d2d8eb]
# mkdir /home/httpd/dav
# chown apache:apache /home/httpd/dav/
>davディレクトリの所有者をapacheに変更します。
- SSL用のディレクトリを作る場合
# mkdir /home/httpd/davssl
# chown apache.apache /home/httpd/davssl/
# chown apache:apache /home/httpd/davssl/
** httpd.confの編集 [#a38cfd70]
# 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を使うための設定]]を行ってください。
** アクセス用パスワードの作成 [#w50881b1]
"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の再起動 [#w6ad8bd9]
# /etc/rc.d/init.d/apache2 restart
httpdを停止中: [ OK ]
httpdを起動中: [ OK ]
** 動作の確認 [#l4020057]
#ref(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 [#y0b9815e]
**エラーが記録されてる [#vac56666]
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のリンクとして開きたい [#p27a96b5]
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フォルダとしてアクセスできます。
* コメント [#j56264e0]
#comment