最終更新日 2004/9/3  戻る  493714 人 REMOTE = 38.103.63.59 REFERER =

WebDAVの構築

Vine 2.6にWebDAVを導入します.
VinePlusにrpmファイルがありますのでここからmod_dav-1.0.3-4vl1.i386.rpmをダウンロードします.
# rpm -ivh mod_dav-1.0.3-4vl1.i386.rpm
とすれば自動的にlibdav.soやmod_dav.cなどがhttpd.confに組み込まれます.
DAV用のディレクトリを作成
自分のHPのルートディレクトリを/home/user/httpdocsとします.
# cd /home/user/httpdocs
# mkdir dav
apacheを実行するユーザー権限apacheが書き込めるように,
# chmod 770 dav
# chown apache:apache dav
ロックファイルを置くディレクトリ作成.
# cd /var/run
# mkdir DAVLock
# chmod 770 DAVLock
# chown apache:apache DAVLock
httpd.confに以下を付け加えます.

Alias /dav "/home/user/httpdocs/dav"
<Location /dav>
    DAV on
  <Limit GET PUT POST DELETE PROPFIND PROPPATCH MKCOL COPY MOVE LOCK UNLOCK>
    AuthUserFile /home/user/.htpasswd
    AuthGroupFile /dev/null
    AuthName "WebDAV Security"
    AuthType Basic
    Require user user-name
  </Limit>
</Location>
DAVLockDB /var/run/DAVLock/

基本認証をつけたので,その設定.
# cd /home/user
# htpasswd -c .htpasswd user-name
# service httpd restart
これで,IEからファイル->開くとして,Webフォルダとして開くにチェックを入れhttp://domain/davと入力すると,基本認証を聞いてきますのでそれに答えればOKです.
あとは,普通のWindowsのフォルダと同じように使えます.
このままでは日本語が使えませんのでmod_encodingを導入します.
ここからmod_encoding-20021209.tar.gzをダウンロード.
例によって,mod_encoding-20021209.tar.gzが/usr/local/srcにあるとします.
# cd /usr/local/src
# tar xvzf mod_encoding-20021209.tar.gz
# cd mod_encoding
# /usr/sbin/apxs -c mod_encoding.c
# /usr/sbin/apxs -i mod_encoding.so
これで,mod_encoding.soはapacheのディレクトリに作成されます.
httpd.confに以下を付け加えます.

LoadModule encoding_module modules/mod_encoding.so
AddModule mod_encoding.c
<IfModule mod_encoding.c>
  EncodingEngine on
  NormalizeUsername on
  SetServerEncoding UTF-8
  DefaultClientEncoding JA-AUTO-SJIS-MS SJIS
  AddClientEncoding "cadaver/" EUC-JP
</IfModule>

最後に
# service httpd restart

おまけ
上記は基本認証ですが,MD-5を使ったダイジェスト認証にしてみましょう.
まずは,ここからapache_1.3.27.tar.gzをダウンロード.
apache_1.3.27.tar.gzが/usr/local/srcにあるとします.
# cd /usr/local/src
# tar vzxf apache_1.3.27.tar.gz
# cd apache_1.3.27/src/modules/experimental
# /usr/sbin/apxs -c -D DEV_RANDOM mod_auth_digest.c
# /usr/sbin/apxs -i mod_auth_digest.so
httpd.confに以下の内容を付加する
LoadModule digest_auth_module modules/mod_auth_digest.so
AddModule mod_auth_digest.c
これでmod_auth_digest.soがapacheにインストールされます.
ダイジェスト認証の認証ファイルを作ります.
# cd /home/user
# htdigest -c digest_file_name realm user-name
digest_file_name,realm,user-nameは自分の好きなものにします.
httpd.confに以下を追加します.

LoadModule digest_auth_module modules/mod_auth_digest.so
AddModule mod_auth_digest.c
Alias /dav "/home/user/httpdocs/dav"
<Location /dav>
    DAV on
    AuthDigestFile /home/user/digest_file_name
    AuthName realm
    AuthType Digest
    <Limit PUT POST DELETE PROPFIND PROPPATCH MKCOL COPY MOVE LOCK UNLOCK>
        Require user user-name
    </Limit>
</Location>
DAVLockDB /var/run/DAVLock/

最後に
# service httpd restart

参考HP
http://www.atmarkit.co.jp/flinux/special/webdav/webdav01a.html
http://freebsd.servj.com/howto/freebsd_3.html
(apache2です)

apache2でのDAV
http://www.atmarkit.co.jp/flinux/special/webdav03/webdav01b.html
http://freebsd.servj.com/howto/freebsd_3.html
からの抜粋です.
httpd-2.0.47.tar.gz,mod_encoding-20020611a.tar.gz,mod_encoding.c.apache2.20020611a-2をダウンロード
/usr/local/srcにあるとします.
# cd /usr/local/src
# tar xvzf httpd-2.0.47.tar.gz
# cd httpd-2.0.47
# ./configure --enable-so --enable-ssl --enable-dav
# make
# make install

httpd.confの設定はapache1.3.27と同じ.
Alias /dav "/home/user/httpdocs/dav"
<Location /dav>
    DAV on
  <Limit GET PUT POST DELETE PROPFIND PROPPATCH MKCOL COPY MOVE LOCK UNLOCK>
    AuthUserFile /home/user/.htpasswd
    AuthGroupFile /dev/null
    AuthName "WebDAV Security"
    AuthType Basic
    Require user user-name
  </Limit>
</Location>
DAVLockDB /var/run/DAVLock/
ここまでで,日本語は使えませんがDAVは動きます.
ここからは,mod_encodingのインストール.
mod_encoding.c を差し替えます.
# cd /usr/local/src
# tar xvzf mod_encoding-20020611a.tar.gz
# cd mod_encoding-20020611a
# cp /usr/local/src/mod_encoding.c.apach2.20020611a-2 mod_encoding.c

iconv_hookライブラリのコンパイルとインストールを行います.iconv_hookライブラリとは,プラットフォームやライブラリによって異なるiconv()の動作について一部のエンコーディングの扱いを変更するようなライブラリに差し替えたりできる動作フック用のライブラリです.

# cd lib
# ./configure
# make
# make install

これでlibiconv_hook.so(iconv_hookライブラリ)が/usr/local/lib配下にインストールされます。
# cd ..
# ./configure --with-apxs=/usr/local/apache2/bin/apxs --with-iconv-hook=/usr/local/include --prefix=/usr/local

Makefile の編集

(変更前) LIBS = -liconv_hook
(変更後) LIBS = -I/usr/local/include -L/usr/local/lib -L./lib -liconv_hook

# gmake
# gcc -shared -o mod_encoding.so mod_encoding.o -Wc,-Wall -L/usr/local/lib -Llib -liconv_hook
# gmake install

これでmod_encoding.soライブラリが/usr/local/apache2/modules下にインストールされます.

httpd.conf の編集
httpd.conf の適当な場所に以下を追加しApache を再起動します.

LoadFile /usr/local/lib/libiconv.so
LoadModule encoding_module /usr/local/apache2/modules/mod_encoding.so

<IfModule mod_encoding.c>
  EncodingEngine on
  NormalizeUsername on
  SetServerEncoding UTF-8
  DefaultClientEncoding JA-AUTO-SJIS-MS SJIS
  AddClientEncoding "cadaver/" EUC-JP
</IfModule>


☆WebDavを使う上での注意点
1.大きいファイルをDavにあげようとしてだめな場合や,普通に使っていても何らかの不具合が出る場合は
IE->ツール->インターネットオプションー>インターネット一時ファイルの削除を施行.これでOKになる確率はかなり大きいと思われます.理由は分かりません.
2.基本認証をかけてWebDavを設定している場合WindowsXPからDavに入れないと言う問題が出てきます.これはXPがユーザー名をServername\user-nameにしてしまうためです.ですから
require valid-userにするか,
require user user-name yaguma.com\\user-name
としておいて,.htpasswdにyaguma.com\\user-nameを加える必要があります.
#cd /home/user
#htpasswd .htpasswd yaguma.com\\user-name
パスワードを2回入力
-cオプションは付けない.でないと.htpasswdが書き変わってしまいます.


Copyright 2002-2003 Kai All Rights Reserved & This site is Link Free 戻る