印刷用表示へ切り替え 通常表示へ切り替え 更新履歴を表示 更新履歴を隠す
Linux WebDAV サーバの構築

Apache 1.3 に mod_dav モジュールを導入して WebDAV サーバを構築する。若干動きがおかしいが何とか動く。

■ ■ ■

mod_dav モジュールを Apache Web サーバに追加すると,WebDAV の環境が構築できる。WebDAV は HTTP を拡張したプロトコルで,サーバとのファイル転送を行うことができる。ファイル転送するだけなら FTP を使えばよいが,Windows のクライアントの実装の違いにより使い勝手も違うため,WebDAV ならではのご利益もある。インストール方法については,WebDAVクライアント/サーバ環境の構築 が参考になる。Vine Linux の場合,RPM パッケージが用意されているので,これよりずっと手軽にインストールができる。

動作環境は Vine Linux 3.2, apache 1.3.33, mod_dav 1.0.3 である。

mod_dav のインストールには libiconv_hook ライブラリが必要なので,まずはこのライブラリをインストールする。mod_dav, libconv_hook ともに RPMS.extras に格納されている。近くの ring サーバからファイルをダウンロードする。

$ wget http://www.ring.gr.jp/pub/linux/Vine/apt/3.2/i386/RPMS.extras/libiconv_hook-20021209-0vl3.i386.rpm
$ wget http://www.ring.gr.jp/pub/linux/Vine/apt/3.2/i386/RPMS.extras/mod_dav-1.0.3-5vl1.i386.rpm
# rpm -ivh libiconv_hook-20021209-0vl3.i386.rpm
# rpm -ivh mod_dav-1.0.3-5vl1.i386.rpm

WebDAV 用のディレクトリを作成する。「WEBDAV」を小文字にしてみたところ,なぜか動作しなかった。すべて大文字でなければならない。謎である。

# mkdir /home/httpd/html/WEBDAV
# chown apache:apache /home/httpd/html/WEBDAV

WebDAV を有効化するために,設定ファイル /etc/httpd/conf/httpd.conf を編集する。関連するディレクティブは以下の通り。追加する部分を赤字で示す。

<IfDefine HAVE_DAV>
LoadModule dav_module         modules/libdav.so
</IfDefine>

<IfDefine HAVE_DAV>
AddModule mod_dav.c
DAVLockDB /tmp/webdav
</IfDefine>

Alias /webdav /home/httpd/html/WEBDAV
<Location /webdav>
  DAV On
</Location>

上の設定により,WebDAV のロックファイル用のディレクトリは /tmp で,「webdav」をプリフィックスとするファイル webdav.dir と webdav.pag が自動的に生成される。最初は /var/lock/webdav ディレクトリを作り,ここに /var/lock/webdav/DAVLock の名前で書き込みたかったのだが,エラーとなってしまった。ディレクトリを作り所有者を apache にしたのにダメだった。謎である。

さらにもうひとつの謎は,Alias+Location でなければ動かなかったことである。Directory で直接ディレクトリ指定して DAV On をした場合は動作しなかった。

httpd を再起動すれば,WebDAV サーバとして動作するようになる。

Windows XP を WebDAV クライアントとして使う場合は,「マイネットワーク」→「ネットワークプレースを追加する」として「http://nlogn.ath.cx/webdav」などとする。最後のスラッシュはあってもなくてもよい。ディレクトリ名は小文字でよい(小文字になってしまう)。アクセスすると,サーバのエラーログに次のように残るのは謎。

[error] [client 123.234.123.234] File does not exist: /home/httpd/html/WEBDAV//

さて,Windows XP にはネットワークプレースとして \\nlogn.ath.cx\webdav のような形で登録される。つまり,Windows のネットワークフォルダのように見えるということになり,そのフォルダに置かれたファイルはローカルディスクにあるファイルと同様の扱いができるということである。

ということは,ご利益があるではないか。例えば GTDTiddlyWiki はネットワーク対応ではないが(nlog(n): GTDTiddlyWiki が動かない),ファイルを WebDAV サーバにおいておけばネットワーク対応のように使えることになる。これは嬉しい。試してみたところ,動作はする。バックアップも WebDAV サーバ上に作成される。しかし,遅い。遅すぎる。遅すぎて使いものにならん。

クライアントとして Windows だけを使う場合は問題がないが,Linux クライアントも使う場合は,mod_encoding モジュールを導入して文字化け対策をする必要があるようだ(日本語ファイル名の利用とバージョン管理)。

Posted by n at 2006-06-30 00:05 | Edit | Comments (0) | Trackback(0)
Trackbacks

  • 「手違いで複数トラックバックを送ってしまった!」という場合でも気にしないでください (重複分はこちらで勝手に削除させていただきます)
  • タイムアウトエラーは,こちらのサーバの処理能力不足が原因です (詳細は トラックバック送信時のエラー をご覧ください)
  • トラックバックする記事には,この記事へのリンクを含めてください(詳細は 迷惑トラックバック対策 をご覧ください)
Comments
Post a comment
  • 電子メールアドレスは必須ですが,表示されません (気になる場合は「メールアドレスのような」文字列でもOKです)
  • URL を入力した場合はリンクが張られます
  • コメント欄内ではタグは使えません
  • コメント欄内に URL を記入した場合は自動的にリンクに変換されます
  • コメント欄内の改行はそのまま改行となります
  • 「Confirmation Code」に表示されている数字を入力してください (迷惑コメント対策です)


(必須, 表示されます)


(必須, 表示されません)


(任意, リンクされます)


Confirmation Code (必須)


Remember info (R)?