Apache 2.2 で WebDAV


サーバーのディスクが余っていたのでファイルサーバーにしようかと思い,いくつか方法を考えていましたが, Apache を使っていたので WebDAV サーバーを構築してみました。

環境

  • Ubuntu 10.4 Server 版 (64-bit)
  • Apache 2.2
  • mod_dav

mod_dav の有効化

WebDAV を利用できるようにするために mod_dav を有効化します。

sudo a2enmod dav
## 勝手に有効化されるらしい
# sudo a2enmod dav_fs

Apache の設定

サーバー上のディレクトリ /var/www/dav をウェブサーバー上のロケーション /share に公開します。

まずはディレクトリの作成から。

sudo mkdir -p /var/www/dav
sudo chown www-data:www-data /var/www/dav

次に設定ファイルに以下を追加します。

DavLockDB /var/lock/apache2/DAVLock
Alias /share /var/www/dav
<Location /share>
   DAV On
   DavMinTimeout 600
   Options Indexes
   Order allow,deny
   allow from all
</Location>

WebDAV の開始

モジュールを有効にし,サイト設定をロードするために Apache を再起動します。

sudo /etc/init.d/apache2 restart

これでウェブブラウザから http://[host]/share にアクセスすれば,ファイル一覧が表示されます[A]

クライアントの設定

Windows Vista/7 の場合

エクスプローラーでコンピューターを開き,コンテキストメニューの [ネットワークの場所を追加する] からウィザードを開きます。あとはダイアログにしたがっていけば OK です。

Mac OS 10.6 の場合

Finder の [移動] メニューにある [サーバへ接続] からダイアログに入力します。

Ubuntu の場合

Mac OS X と同様に, [サーバへ接続] からダイアログに入力します。

別解として,直接マウントするという方法もあります。

sudo aptitude install davfs2
sudo mount -t davfs http://[host]/share /mnt/share

セキュリティ

以上の設定だと,ファイルは全て一般にさらされている状態です。 Apache の通常の設定と同じようにパスワード認証をかけたりアクセス元の IP を制限したりすることが可能です。ここでは割愛します。

なお, SSL クライアント認証を試した所,上記の方法で接続しようとした場合, Windows 以外では接続できませんでした。もしかしたらサードパーティー製のアプリケーションにはクライアント認証をサポートしているものがあるのかもしれません。

主要参考文献

脚注

  1. このときドットで始まるファイルが表示されません。セキュリティの問題からだと思いますが,ファイルサーバーとして使う場合には少し不都合です。表示する方法はないのでしょうか。 []