WebDAV

環境: MacOS X Server 10.3.1
update: 2003-11-16

以下の例では www.ocean.shinagawa.tokyo.jp というドメイン名で
ohashi というユーザが WebDAV を使えるようにする仮定で書いてあります。
ここを自分の web server の domain-name, user-name に変更してください。
○ Public フォルダーを使えるようにする
  1. /Library/WebServer/Documents の下に以下のフォルダーを作成

    % cd /Library/WebServer/Documents
    % sudo mkdir DAVdocs
    % sudo chown -R www.www DAVdocs

  2. ファイル編集情報のロックファイルを作成

    % cd /var
    % sudo mkdir lock
    % cd lock
    % sudo mkdir apache
    % sudo touch apache/DAVLock
    % sudo chmod 700 apache
    % sudo chown -R www.www apache

  3. ServerName の設定

    % sudo vi /etc/httpd/httpd.conf

    #ServerName new.host.name
    の行を以下のように変更
    ServerName www.ocean.shinagawa.tokyo.jp

    #LoadModule dav_module /usr/libexec/httpd/libdav.so
    の行を以下のように変更
    LoadModule dav_module /usr/libexec/httpd/libdav.so

    #AddModule mod_dav.c
    の行を以下のように変更
    AddModule mod_dav.c
    < IfModule mod_dav.c>
    DAVLockDB "/var/lock/apache/DAVLock"
    DAVMinTimeout 600
    < Directory /Library/WebServer/Documents/DAVdocs>
    DAV on
    AllowOverride None
    Options None
    AuthType Basic
    AuthName WebDAV
    AuthUserFile /Library/WebServer/.htpasswd
    < LimitExcept GET HEAD OPTIONS>
    require valid-user
    </LimitExcept>
    </Directory>
    </IfModule>

    上をそのまま copy and paste して使う場合、< の後の空白 を削除してください。HTTP で表示するため、ここに SPACE が 入ってしまいます。

  4. ユーザ認証の設定

    % cd /Library/WebServer
    % htpasswd -c .htpasswd ohashi
    New password:
    Re-type new password:
    Adding password for user ohashi

  5. 日本語ファイル名の文字化け対策

    ファイル名を UTF-8 で扱っており、日本語ファイル名が文字化けするので mode_encoding というモジュールでこれを解決する。

    http://www.gnu.org/software/libiconv/
    の Get the Software から libiconv-1.9.1.tar を download する。
    % tar xf libiconv-1.9.1.tar
    % cd libiconv-1.9.1
    % ./configure
    % make
    % sudo make install

    次に mod_encoding をインストール
    http://webdav.todo.gr.jp/download/
    から mod_encoding.tar.gz をダウンロード
    % tar xf mod_encoding-20021209.tar
    % cd mod_encoding-20021209/lib/
    % ./configure --prefix=/usr
    % make
    % sudo make install
    % cd ..
    % ./configure --with-apxs=/usr/sbin/apxs --with-iconv-hook=/usr/local/iinclude/iconv_hook
    (註) ここは一行で入力します。
    % make
    % sudo make install

    httpd.conf を編集
    % sudo vi /etc/httpd/httpd.conf

    #LoadModule headers_module /usr/libexec/httpd/mod_headers.so
    の行を以下のように変更
    LoadModule headers_module /usr/libexec/httpd/mod_headers.so
    LoadModule encoding_module /usr/libexec/httpd/mod_encoding.so
    AddModule mod_headers.c
    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>
    上をそのまま copy and paste して使う場合、< の後の空白 を削除してください。HTTP で表示するため、ここに SPACE が 入ってしまいます。

  6. 設定のチェック

    % apachectl configtest

    で /etc/httpd/httpd.conf の記述の誤りをチェックできる。

  7. apache をリスタート

    % sudo apachectl restart

    Apache を再スタート

  8. Client から WebDAV へ接続してみる

    Finder の 「移動」「サーバへ接続...」メニューで以下をを指定してみる。

    http://www.ocean.shinagawa.tokyo.jp/DAVdoc
    user-name, password を聞かれた後 DAVdoc がマウントされるはず。


感想:以上は DAVdoc を public folder として使う方法で、 これは上の記述通りにやれば簡単に設定できました。 この他にユーザごとの private folder を設定する方法があります。 私としてはとりあえず public folder が使えればよいのですが、 private folder もトライしてうまく行ったらここに追加します。