• お問い合わせ
  • ユーザー登録
ドキュメント
サポート案内
ユーザー登録
サポートセンター
ドキュメント
ダウンロード
セキュリティ
よくある質問とその回答
製品マニュアル
カタログ
収録パッケージ一覧


ネットワーク No. 469

WebDAV によるファイル共有


【解説】

WebDAV とは HTTP/1.1 の拡張機能の一つで、HTTP を使用してサーバー/クライアント
間のファイル転送を可能とし、Webサーバーによるファイル共有を可能とする機能です。
Turbolinux 7 Server から Apache の WebDAV モジュールである mod_dav がサポート
されます。なお、現在のWebDAVモジュールは、日本語を正しく処理することができま
せん。そこで、mod_encoding モジュールを使用して日本語に対応させます。

WebDAV に対応している主なクライアントとしては、
Internet Exploler 5
Mac OS X
cadaver
等があります。

【設定】

(1) apache と mod_dav パッケージがインストールされている事を確認します。

# rpm -q apache
# rpm -q mod_dav

(2) dev_module と encoding_module が apache の httpd.conf ファイルに定義されて
いることを確認します。

この設定は、初期状態で記述されていますので、特に編集する必要はありません。

[/etc/httpd/conf/httpd.conf]
-------------------------------------------------------------------
   LoadModule dav_module         /usr/libexec/apache/libdav.so
   LoadModule encoding_module    /usr/libexec/apache/mod_encoding.so
...(省略)
   AddModule mod_dav.c
   AddModule mod_encoding.c
-------------------------------------------------------------------

(3) httpd.conf にWebDAVの設定を追記します。

[/etc/httpd/conf/httpd.conf]
-----------------------------------------   
#
# WebDAV setting
#
<IfModule mod_dav.c>
   DAVLockDB "/var/lock/apache/DAVLock"
   DAVMinTimeout 600
   <Location /WebDAV>
       DAV On
   </Location>
</IfModule>
-----------------------------------------

(4) ロックファイルを作成します。

# cd /var/lock/
# mkdir apache
# touch apache/DAVLock
# chmod 640 apache/DAVLock
# chmod 700 apache
# chown -R nobody.nobody apache

(5) ファイル共有ディレクトリを作成します。

# cd /var/www/html/
# mkdir WebDAV
# chmod 700 WebDAV
# chown nobody.nobody WebDAV

(6) httpd.conf に mod_encoding の設定を追記します。

mod_encoding を設定し、日本語ファイル名が扱えるようにします。
httpd.conf に以下の記述を追加してください。

[/etc/httpd/conf/httpd.conf]
--------------------------------------------------
<IfModule mod_encoding.c>
  EncodingEngine on
  SetServerEncoding UTF-8
 
  AddClientEncoding SJIS   "Microsoft .* DAV"
  AddClientEncoding SJIS   "xdwin9x/"
  AddClientEncoding EUC-JP "cadaver/"
</IfModule>
--------------------------------------------------

AddClientEncoding行には、各クライアントの UserAgent 名とエンコーディングを追加
してください。

(7) 動作確認

WebDAV クライアントからアクセスし、ファイルの共有が正常に動作することを確認し
てください。各クライアントの設定方法につきましては、各クライアントに付属の
マニュアル類をご参照ください。

Windows2000の場合:
「マイネットワーク」を開き、「ネットワークプレースの追加」を開きます。すると、
「ネットワークプレースの追加ウィザード」が開始されますので、指示に従って設定を
行ってください。設定が完了すると、「マイネットワーク」にネットワークプレースが
追加されています。これを開き、ファイルをドラック&ドロップする事によってファイル
を送受信することが可能です。

(8) 認証の設定を行います。

このままでは誰でもアクセスできるので、セキュリティ上問題になります。
そこで WebDAV ディレクトリに基本認証機能を設定します。
(3) の設定部分を以下のように変更してください。

[/etc/httpd/conf/httpd.conf]
-------------------------------------------------------------------------------
#
# WebDAV setting
#
<IfModule mod_dav.c>
   DAVLockDB "/var/lock/apache/DAVLock"
   DAVMinTimeout 600
   <Location /WebDAV>
       DAV On

       AllowOverride None
       Options None
       AuthUserFile     /var/www/DAVUsers
       AuthGroupFile    /dev/null
       AuthName         PublicFolder
       AuthType         Basic
# 指定ユーザのみ読み書きが可能となる設定
       <Limit HEAD PUT POST DELETE PROPFIND PROPPATCH MKCOL COPY MOVE LOCK UNLOCK>
           Require user davuser
       </Limit>

# 書き込み時のみ認証を実行する設定
#      <LimitExcept GET HEAD OPTIONS>
#          Require valid-user
#      </LimitExcept>
   </Location>
</IfModule>
-------------------------------------------------------------------------------

(9) 認証ファイルの作成とユーザの追加 

/var/www/DAVUsers に davuser ユーザを追加します。

# htpasswd -c /var/www/DAVUsers davuser

【注意】

Turbolinux 7 Server にインストールされる mod_encoding は、未完成の部分が残って
おり、以下のような問題が発生する場合があります。これらの問題については、将来の
バージョンで修正される予定です。

1. 「〜」などの特定の文字が Microsoft WebFolder で使用できません。
2. Microsoft WebFolder には、ファイル名を UTF-8 で送信するものと (MS-)SJIS で
送信するものの二種類があり、これを正しく判別できません。

【参考】

WebDAV Resources:
http://www.webdav.org/

a DAV module for Apache:
http://www.webdav.org/mod_dav/

# rpm -qd mod_dav
で表示されるドキュメントファイル
キーワード
apache WebDAV

関連文書
(none)


Last modified : Thu Oct 06 JST 2005 # 2