2010年12月10日

WebDAV

twitterでFollowしている某氏の発言の中に「WebDAV」と言う言葉が頻繁に出てくるようになった。恥ずかしながら何のことかわからないのでちょっとググってみるとなんか便利そう。

サーバーに入れてみよう。

チェックしてみると/usr/local/etc/apache22/httpd.confに
LoadModule dav_module libexec/apache22/mod_dav.so
は既に書かれていた。

以下を追加
----------------------------------------------------------------
### WebDAV
DavLockDB /var/tmp/apache/DavLock
Alias /dav "/home/dav/"
<Directory /home/dav>
AllowOverride FileInfo AuthConfig Limit Indexes
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
<Limit GET POST OPTIONS PROPFIND>
Order allow,deny
Allow from all
</Limit>
</Directory>
<Location /dav>
DAV On
Options FollowSymLinks Indexes
AuthType Basic
AuthName "WebDAV"
AuthUserFile /usr/local/etc/apache22/webdav.passwd
<Limit GET PUT POST DELETE PROPFIND PROPPATCH MKCOL COPY MOVE LOCK UNLOCK>
require valid-user
</Limit>
</Location>
----------------------------------------------------------------

$ sudo mkdir /home/dav
$ sudo chown www:www /home/dav
$ sudo mkdir /var/tmp/apache
$ sudo chown www:www /var/tmp/apache
$ sudo htpasswd -c /usr/local/etc/apache22/webdav.passwd user名
New password:
Re-type new password:

$ sudo /usr/local/etc/rc.d/apache22.sh restart

ここまででMacのfinderから「サーバーに接続」「http://XXX.XXX.XXX.XXX/dav/」でマウント可能に!local diskと同じように中のファイルが扱える!

次、WindowsXP
「マイ ネットワーク」から「ネットワークプレースを追加する」でURLを入力。
ところがBasic認証が通らない。

http://support.microsoft.com/?kbid=841215
この問題らしい。

----------------------------------------------------------------
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters
[ 編集 ] メニューの [ 新規作成 ] をポイントし、[ DWORD 値 ] をクリック。
UseBasicAuth を入力して Enter。
[ 編集 ] の [ 変更 を] をクリック。
値のデータ ] 1 と入力して [OK]。
レジストリ エディターを終了、コンピューターを再起動。
----------------------------------------------------------------

これでもダメ。
http://XXX.XXX.XXX.XXX:80/dav
とポートを指定してやれば良いらしい。
もしくは
http://XXX.XXX.XXX.XXX/dav?
でもアクセス可能に。

さて次なる問題点は文字化け。orz

/usr/ports/www/mod_encoding
をインストール
/usr/local/etc/apache22/httpd.confに以下を追加して再起動。
ふー・・・・
----------------------------------------------------------------
LoadModule encoding_module libexec/apache22/mod_encoding.so

<IfModule mod_headers.c>
Header add MS-Author-Via "DAV"
</IfModule>

<IfModule mod_encoding.c>
EncodingEngine on
NormalizeUsername on
SetServerEncoding UTF-8
DefaultClientEncoding JA-AUTO-SJIS-MS SJIS

AddClientEncoding "cadaver/" EUC-JP
</IfModule>
----------------------------------------------------------------

Windowsではこんなに手間がかかるうえ、local diskと同じようには扱えない。
ファイルをダウンロードしてから扱わないとダメみたいだ。
Windows最低。

trackbacks

trackbackURL:

comments

comment form
comment form