WebDavによるファイルサーバー

家ではsambaを使っている訳で、あまり必要性を感じていませんでしたが、会社の小さな分散部署でファイルサーバーがあったらなぁという声があったので、実験的にやってみました。

WebDavって?

WikiPediaによると、もともとはmicrosoftが開発したものらしいです。HTTP・HTTPS等をつかって、ファイルを共有する仕組みで、apacheも対応しています。そのため、basic認証・dijest認証やアドレス制御もapacheの設定でいけてしまいます。(でも、ちょっと遅いいう噂も・・・)

インストール

といっても、いつもの apt-get ってわけじゃなく、apache の モジュール有効にするだけで準備は完了
$ sudo a2enmod dav_fs
$ sudo a2enmod dav
$ sudo a2enmod dav_lock
つづいて、対応するディレクトリについての設定。以下は例えば、localhost/webdav について、設定する場合
(localhost ルートから)
$ sudo chown flabo:flabo ./webdav
$ sudo chmod 700 ./webdav
flab:flaboの部分は、apache ユーザーを指定。apache の初期値は www-data:www-data。つづいて、basic 認証用のファイルを作成
sudo htpasswd -c ./passwd.webdav felix
(password聞かれるので入力)
上記は、felix を 新しい、認証ファイル(passwd.webdav) に書き込んだもの。追加するなら
sudo htpasswd ./passwd.dav felix2
となります。つづいて、webdavのディレクトリの設定ファイルを作成
$ cd /etc/apache/conf.d
$ sudo vi ./webdav
設定ファイルとして、新しい webdav というファイルが開くので
<Directory "/virtual/www/kanren.office-on-the.net/file">
       DAV on
       AuthType Basic
       AuthName "webdav"
       AuthUserFile /etc/apache2/pass.webdav
       Require valid-user
       DavMinTimeout 600
</Directory>
この DAV on の部分が、WebDav用のディレクトリの宣言なんでしょうね。最後は、
$ sudo /etc/init.d/apache2 restart
これで、Weindows から、マイネットワークで、
http://localhost/webdav
を追加していけば、basic認証のユーザー・パスワード聞かれるので認証してOK・・・と行きたいのですが、lockファイルが開けないエラーがでる場合があります。/var/lock/ に apache2 というファイルができている(一度もアクセスしていなければでないか?)ので、この権限を変更
$ sudo chown flabo:flabo /var/lock/apache2
デフォルトが、www-data:root になっているので、apache実行ユーザーを変えていない場合には、この設定は不要だと思います。

参考ページ