#contents

* WebDavの環境構築 [#aa377966]

WebDavを実装したいと思います。既に稼動中の Apache1.3 なので、動的モジュールとして追加します。

以下余談ですが、似たような機能の提供として、Samba や FTP があります。うちは、以下のような形で使い分けたいと思います。

|匿名FTP|大きなファイルのダウンロード用|
|samba|LAN環境下でのファイル交換|
|FTP|インターネットでのファイル交換(容量問わず)|
|WebDav|インターネットでのファイル交換(小容量、https利用でセキュア)|

** Apache について確認すること [#u0cf1ecd]
Apache1.3 に、mod_dav を動的モジュールとしてインストールする場合、Apache本体に mod_so が静的モジュールとして組み込まれていなくてはなりません。下記のコマンドを打ち、mod_so が表示されるか確認してください。表示されない場合は、Apache の再構築が必要です。

 # httpd -l

** mod_dav [#e0b38bc5]
*** mod_dav のインストール [#h604fc50]
まず、以下のダウンロード先で、mod_dav を入手します。
- [[mod_dav: a DAV module for Apache:http://www.webdav.org/mod_dav/]]

うちは、プレインストールのApacheを使っているため、apxs のパスは、"/usr/sbin/apxs" になっています。ソースからインストールした場合は、"/usr/local/apache/bin/apxs" にあるかと思います。単純に "-with-apxs" とのみ指定した場合は、すでに apxs にパスが通っているものと解釈されます。

 [bokupi@pokota mod_dav-1.0.3-1.3.6]$ ./configure --with-apxs=/usr/sbin/apxs
 checking for gcc... gcc
 checking for C compiler default output... a.out
 checking whether the C compiler works... yes
 checking whether we are cross compiling... no
 checking for executable suffix...
 checking for object suffix... o
 checking whether we are using the GNU C compiler... yes
 checking whether gcc accepts -g... yes
 checking for ranlib... ranlib
 checking how to run the C preprocessor... gcc -E
 checking for ANSI C header files... yes
 checking for static Apache module support... no
 checking for dynamic Apache module support (via APXS)... found at /usr/sbin/apxs
 checking for expat... found in /usr/include/apache
 configure: creating ./config.status
 config.status: creating Makefile
 config.status: creating libdav.module
 config.status: creating config.h

続いて、make します。
 [bokupi@pokota mod_dav-1.0.3-1.3.6]$ make

スーパーユーザーになり、make install します。
 [root@pokota mod_dav-1.0.3-1.3.6]# make install

モジュールのインストールと、httpd.conf の更新が行なわれます。古い設定ファイルは、httpd.conf.bak として保存されます。

*** 環境設定 [#g95a09a1]
ロックファイルを用意します。
 # mkdir /var/www
 # mkdir /var/www/lock
 # chown apache:apache /var/www/lock
 # chmod 0770

ファイルを格納する領域を用意します。
 # mkdir /home/httpd/dav
 # chown apache:apache /home/httpd/dav

*** httpd.conf の設定 [#q589ed1d]
下記を追加します。

 DAVLockDB /var/www/lock/DAVLock
 <Location /dav>
     DAV On
 </Location>

これで、/dav 以下は、WebDavとして利用できます。

しかし、うちの場合、これではいささか不具合があります。それは、バーチャルホストを利用しているため、Location指定だと、全ドメインで /dav 以下が、WebDav になってしまうのです。それを避けるために、Directory指定を用いました。

 <Directory /home/private/dav>
     DAV On
     AuthUserFile /home/private/.htpasswd
     AuthGroupFile /dev/null
     AuthType Basic
     <Limit PUT POST DELETE PROPFIND PROPPATCH MKCOL COPY MOVE LOCK UNLOCK>
         Require user bokupi
     </Limit>
 </Directory>

** mod_encoding [#v02a6951]
*** mod_encoding のインストール [#z482653a]
日本語ファイル名に対応するため、このモジュールを追加します。
- [[WebDAV Resources JP(Download Page):http://webdav.todo.gr.jp/download/]]

今回ダウンロードしたのは、mod_encoding-20021209.tar.gz です。

 [bokupi@pokota mod_encoding-20021209]$ ./configure -with-apxs=/usr/sbin/apxs

 [bokupi@pokota mod_encoding-20021209]$ make

 [root@pokota mod_encoding-20021209]$ make install

*** httpd.conf の設定 [#p9ec28ae]
下記の内容を、httpd.conf に追加してください。場所はどこでもいいです。

 LoadModule mod_encoding
 AddModule mod_encoding.c

 <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>


*** mod_encoding による弊害 [#ff8b2527]
[[WebDAVの日本語対策でmod_encodingを導入すると、他のソフトの日本語環境やPHPやCGIで文字化けが発生する。:http://www.aconus.com/~oyaji/faq/apache_encoding.htm]]

うちは、日本語は使わないようにします。どうしても必要であれば、ftpを利用すればいいのですし。

** クライアントからアクセス [#vfbfbf78]
一番簡単なのは、IE からアクセスする方法です。IE の「ファイル」メニューを開き、「開く」を選択します。出てきたダイアログに対し、WebDav として利用したい URL を入力します。そして、「Webフォルダとして開く」にチェックを入れます。下の画像を参考にしてください。

#ref(ie_open_menu.jpg);

OKボタンを押すと、指定した URL の中身を、エクスプローラーの形式で見ることができます。ファイルの新規作成などできるか、確認しましょう。

*** 認証付き [#nb9cb33b]
うちは、すでに上位層で認証を掛けている領域のなかに、WebDav 用のディレクトリを作成しています。そのためなのか、IE からアクセスすると、認証系がおかしいです。

最初に出てくるダイアログは正しいID やパスワードを入れても、何度も出てきてしまいます。このダイアログでは、キャンセルボタンを押します。すると次のダイアログが出てきます。ここで正しいID やパスワードを入れると、ログインができます。

#ref(1st_dialog.jpg);~
最初に出てくる認証ダイアログ

#ref(2nd_dialog.jpg);~
次に出てくる認証ダイアログ

最初の認証は、どこか違うところのものでしょうか。しかし、次に出てくる認証をなくすと、最初の認証も出なくなります。謎です。

*** Firefox からアクセス [#ke91a1f2]
openwebfolder というエクステンションを入れれば、WebDavを利用できます。
openwebfolder というエクステンションを入れれば、WebDavを利用できるらしいです。エクステンションを追加したあと、右クリックメニューを開くと、「Open As Webfolder」という項目があるので、それを選択します。すると、IEが立ち上がり、Webフォルダを開こうとするのですが…、うまくいきません。

素直に、最初から IE を使った方が良さそうです。認証などがない、単純な環境なら問題ないのでしょうけど。
----
** 参考サイト [#qa61f3cf]
- [[Apache(WWW)-DAVサーバ構築:http://d-net.robata.org/inetbuild-apache-dav.html]]
- [[WEBDAVを使ってみる(2002-03-03):http://nemuneko.com/nifty/RH7.2/webdav.html]]
- [[mod_dav のインストールと設定:http://webdav.todo.gr.jp/howto/install-mod_dav.html]]

** 履歴 [#v17671be]
- 2006/04/09 新規作成 ぼくぴ

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS