この設定手順はapache1.3用で、第2世代RedHatサーバで行ったものです。
WebDAVとは(簡単に言うと)HTTPでファイル転送を行う,FTPに変わるものと注目されるファイル共有プロトコルです.コネクションが単一
方向なので,どうもファイアウォールでFTPが邪魔される,ということも無くなるようです.また,サーバサイドでの処理,一本のコネクションでの処理とい
うメリットもあります.なお,ここで紹介する設定例はapache1.3用です.ご了承ください.
まず,apacheに必要なモジュールが入っているか確認します.mod_so.cが入っていれば利用可能です
% httpd -l
Compiled-in modules:
http_core.c
mod_so.c
SUExec: enabled; valid wrapper /usr/sbin/suexec
rpmを探してきてインストールしましょう.パッケージによってはすでに入っていることもあるようです.以下のコマンドで確認してみましょう.私はすでにインストール済みでした.入れた覚えはないのですが….
% rpm -qa | grep mod_dav
いよいよhttpd.confの設定です.
#以下の2行はあらかじめ書いてあるかもしれません
LoadModule dav_module modules/libdav.so
AddModule mod_dav.c
#ロックデータベースの設定.どこに設定してもいいが,ディレクトリに
#httpdプロセスのユーザ権限で書き込み可能でなくてはならない.
DAVLockDB /usr/local/apache/DAVLock
#Aliasの設定.設定した方がいいかも.
#エイリアス先はpublic_html以下はさけた方が無難.
Alias /dav "/home/httpd/davhome"
#指定のディレクトリに対してWebDAV可能にする.
<Location /dav>
DAV on
</Location>
httpdの再起動を忘れずに.ここまででとりあえず可能です.Windowsだと,「ネットワークプレイスの追加」により利用可能です.上の設定
例だとホスト名http://www.tamochan.com/davで設定します.XPだと,ドライブ名を割り当てることもできます.
しかし,ここまでだと誰でもファイルを閲覧可能です.ここで,.htaccessファイルにより認証設定を行います.以下に.htaccessの設定例を示します.
AuthUserFIle /usr/local/apache/pass.pwd #パスワードファイル名.後述.
AuthGroupFile /dev/null #認証用グループファイル
AuthName DAVhome #認証ダイアログ表示用文字列
AuthType Basic #認証タイプ
<LimitExcept GET OPTIONS>
Require user tamochan
</LimitExcept>
GET,OPTIONS以外の操作は認証が必要という設定でした.次にパスワードの設定です.以下のコマンドによりパスワードを入力してください.
% htpasswd -c /usr/local/apache/pass.pwd tamochan
さらに,.htaccessが動くようにhttpdの設定です.httpd.confに以下の設定を加えてください.
<Directory /home/httpd/davhome>
AllowOverride Limit AuthConfig
</Directory>
これで,(WinXPではなく)Win2000ではアクセスすると認証画面が表示されます.WinXPではなぜか認証画面が出ても認証されません.
さらに,このままだと日本語のファイル名を持つものを登録するとファイル名が文字化けしてしまいます.よって,mod_encodingというモジュールを導入します.これはWinXPの認証問題と日本語の問題を一気に解決してくれるものです.
まず,WebDAV Resourcesからソースアーカイブをダウンロードします.適当に展開します.
次にコンパイルですが,まず展開されたディレクトリの直下にlibディレクトリがあるので,そこの中からコンパイルです.
% cd lib
% ./configure
% make
% make install
これについては詳しいことはあまり述べないことにします.次に本体のコンパイルです.
% cd ..
(コメント)apxsというコマンドのパスとiconv_hookライブラリの
(コメント)パスの指定をしてください.
% ./configure --with-apxs=/usr/sbin/apxs --with-iconv-hook=/usr/local/lib
% make
% make install
さらに,httpd.confの設定です.
LoadFile /usr/local/lib/libiconv_hook.so
LoadModule encoding_module modules/mod_encoding.so
<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>
httpdを再起動して確認してください.