2004年4月26日月曜日

サーバ運営9 -WebDAV-

MacOSXとApacheでのWebDAVの設定をしてみました。

1.httpd.confのバックアップ
日付などをつけてバックアップ
cd /etc/httpd
sudo cp httpd.conf httpd.conf.20040426

2.WebDAVモジュールの組み込み
httpd.confに変更を加える
sudo pico httpd.conf

WebDAVモジュールがコメントアウトされているので、コメント(#)を外す
#LoadModule dav_module libexec/httpd/libdav.so
#AddModule mod_dav.c

3.共有フォルダの設定
httpd.confに以下の3行をを加え、保存
<Directory /Library/WebServer/Documents/Public>
DAV On
</Directory>

共有フォルダを作成する。どのユーザからもアクセスできるようにパーミッションを777に設定
cd /Library/WebServer/Documents/
sudo mkdir Public
sudo chmod 777 public

4.ロックファイルを作成する
cd /Library/WebServer
mkdir lock
touch DAVLock.dir
touch DAVLock.pag
sudo chown -R www DAVLock.*

5.apacheの再起動
apacheのコンフィグファイルの動作テストを行い、syntax OKならapacheを再起動
apachectl configtest

6.ダイジェスト認証モジュールの追加
ダイジェスト認証用のモジュールファイルは標準は組み込まれていないので、apacheのソースをダウンロードして、その中からmod_auth_digest.cだけコンパイルする。apxsコマンドでモジュールを組み込む
cd apache_1.3.29/src/modules/experimental
/usr/sbin/apxs -c -D DEV_RANDOM mod_auth_digest.c
sudo /usr/sbin/apxs -i mod_auth_digest.so

以下の2行をhttpd.confに追記する
LoadModule digest_auth_module libexec/httpd/mod_auth_digest.so
AddModule mod_auth_digest.c

7.パスワードファイルの作成
htdigestコマンドで、認証用のパスワードファイルを作成する。
cd /Library/WebServer
htdigest -c .htdigest WebDAV ユーザ名
Adding password for common in realm WebDAV.
New password: ********
Re-type new password: ********

8.共有フォルダに対するダイジェスト認証の有効化
httpd.confを以下のように変更する
<IfModule mod_dav.c>
DAVLockDB /Library/WebServer/lock/DAVLock
DAVMinTimeout 600
<Directory /Library/WebServer/Documents/Public>
DAV On
Options None
AuthType Digest
AuthName WebDAV
AuthDigestFile /Library/WebServer/.htdigest
<LimitExcept GET HEAD OPTIONS>
require valid-user
</LimitExcept>
</Directory>
</IfModule>

5.apacheの再起動
apacheのコンフィグファイルの動作テストを行い、syntax OKならapacheを再起動
apachectl configtest

http://ドメイン名/Public
にアクセス。ファイルの読み書きができるはず。

0 件のコメント: