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


* 概要 [#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