WebDavの環境構築

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

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

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

Apache について確認すること

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

# httpd -l

mod_dav

mod_dav のインストール

まず、以下のダウンロード先で、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 として保存されます。

環境設定

ロックファイルを用意します。

# 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 の設定

下記を追加します。

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

mod_encoding のインストール

日本語ファイル名に対応するため、このモジュールを追加します。

今回ダウンロードしたのは、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 の設定

下記の内容を、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 による弊害

WebDAVの日本語対策でmod_encodingを導入すると、他のソフトの日本語環境やPHPやCGIで文字化けが発生する。

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

クライアントからアクセス

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

ie_open_menu.jpg

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

認証付き

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

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

1st_dialog.jpg

最初に出てくる認証ダイアログ

2nd_dialog.jpg

次に出てくる認証ダイアログ

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

Firefox からアクセス

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

素直に、最初から IE を使った方が良さそうです。認証などがない、単純な環境なら問題ないのでしょうけど。


参考サイト

履歴


添付ファイル: file1st_dialog.jpg 1054件 [詳細] fileie_open_menu.jpg 1033件 [詳細] file2nd_dialog.jpg 1050件 [詳細]

トップ   編集 凍結解除 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2006-04-10 (月) 02:09:01