2009-05-03 21:15:50
前から少し気になっていたWebDAV。AppleのiDiskや、Dropbox、Box.netとかいろいろあるので、いまさら自前で似たようなものを用意する必要があるのかと思ったのだけれど、容量制限を気にしなくていいし(もちろんハードディスクの容量による制限はあるけれど、2GBとか20GBなんてことはない)、一度自分で試してみたいと思った訳だ。さっそく、Ubuntu 8.10で準備してみた。
まず、日本語ファイル名を扱えるように(あまり自分では日本語名を名づけないのだけど)、sudo apt-get install libapache2-mod-encodingとやってmod-encodingをインストール。そして、/etc/apache2/mods-available/にencoding.confという名のファイルを作成し、以下を記述。
<IfModule mod_encoding.c> EncodingEngine on NormalizeUsername on SetServerEncoding UTF-8 DefaultClientEncoding JA-AUTO-SJIS-MS SJIS AddClientEncoding "cadaver/" EUC-JP </IfModule>次に、モジュールを有効化する。
sudo a2enmod dav sudo a2enmod dav_fs sudo a2enmod encodingそして、先日増設したハードディスクにdav用の領域を作り、permissionの設定をする。
sudo mkdir /mnt/HD2/www/webdav sudo chown -R www-data:www-data /mnt/HD2/www/webdav sudo chmod 755 /mnt/HD2/www/webdav最後に、Apache2の設定ファイルの
Alias /dav/ /mnt/HD2/www/webdav/ <Directory "/mnt/HD2/www/webdav"> Dav on AuthUserFile "/etc/xxx/dav.htpasswd AuthName "WebDav Server" AuthType Basic Require valid-user </Directory>そうです。Basic認証です。なんと安直な。SSLでしょう、普通。でも、設定が面倒くさかったので。これでapache2を再起動すればできあがり。
Dell Inspiron mini9 / ubuntu 8.04でこいつをマウントしてみようと、メニューの「場所」→「サーバへ接続」を選び、接続方式を WebDAVとして、サーバ名、ディレクトリ名、ユーザ名など入力して接続しようとしても、そんなところには繋がらないと言われてしまう。WebDAVがうまく機能していないのかとずいぶん悩んだが、ホームディレクトリに「nDisk」という名のディレクトリを作り、sudo mount -t davfs http://nakano.no-ip.org/dav /home/xxxx/nDisk -o uid=xxxx -o gid=xxxx -o nolocksとやったら問題なくマウントできた。やはりコマンドラインは裏切らないということなのか。
やってみると意外に簡単。まあ、Basic認証だけど。
追記:MacOSXからは、メニューの「移動」→「サーバへ接続」を選び、http://nakano.no-ip.org/davとか入れるだけ。ユーザ名とパスワードを求められるので、これを入れればマウントされる。ユーザ名とパスワードをキーチェインに登録しておけば次回以降訊かれることもなくなる筈。よく使うサーバとしてブックマークしておけば次回からはもっと簡単になる。なかなか便利である。速度はまだ未確認だけれども。