はじめに
自宅と会社で楽にファイルの受け渡しができるように、Webdavを入れました。
Apache 1.3+Webdavは比較的多くのサイトで構築方法が紹介されていますが、私も便乗して公開します。
構築した際のサーバ・クライアントの情報は以下の通りです。
■サーバ
■クライアント
Windows XPからBasic認証で失敗する人必読です。
mod_dav,mod_encodingのインストール
apacheは既にインストールされている事を前提で記述します。portsコレクションを最新にして、mod_dav,mod_encodingをインストールして下さい。mod_davはWebdavの本体モジュール、mod_encodingはWebdavで日本語ファイル名を使用する為に追加します。
| # portinstall mod_dav # portinstall mod_encoding |
自動的にmod_davのLOCKディレクトリ及びファイルも適切なパーミッションで/var/db配下に作成されます。後は/usr/local/etc/apache/httpd.confを設定するだけです。
/usr/local/etc/apache/apache.conf.mod_davというサンプルファイルも作成されますが、これはmod_encodingについての記述は無いので、参考にはしないことにします。
環境設定
Webdavの動作環境として以下の条件で設定する場合の設定を説明することにします。
実体ディレクトリの作成
/share/davディレクトリを作成します。ディレクトリのパーミッションはApacheが動作しているデフォルトのユーザ・グループで作成します。httpd.confのUser,Groupで指定しているユーザ・グループです。通常はwww:wwwになっていると思いますので、そのパーミッションで作成します。
| # cd /share # mkdir ./dav # chown www:www ./dav # chmod 750 ./dav |
ユーザの作成
この後指定するhttpd.confの設定と合わせれば別にどこに作成してもいいのですが、アカウント情報を/etc/webdav.passwdという名前で作成します。
ユーザ名とパスワードの作成は「htpasswd」というapacheに標準で含まれるコマンドを使用します。一人目のユーザを登録するときには-cオプションを付けて、ファイルの新規作成後にアカウント登録する形になります。以下の例では二人ユーザを登録しています。
| # htpasswd -c /etc/webdav.passwd user1 New password:(パスワード入力) Re-type new password:(パスワード入力) Adding password for user user1 # htpasswd /etc/webdav.passwd user2 New password:(パスワード入力) Re-type new password:(パスワード入力) Adding password for user user2 |
このパスワードファイルもオーナーはwww(apacheデフォルトの場合)しか読み取れなくていいのでwww:wwwで他のユーザのパーミッションを外してしまいましょう。
| # chown www:www /etc/webdav.passwd # chmod 700 /etc/webdav.passwd |
httpd.confの設定
httpd.confは以下の様に設定してください。
/usr/local/etc/apache/httpd.conf
LoadModule dav_module libexec/apache/libdav.so
LoadModule encoding_module libexec/apache/mod_encoding.so
AddModule mod_dav.c
AddModule mod_encoding.c
# webdav
<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>
DAVLockDB /var/db/DAVLock
DAVMinTimeout 600
Alias /dav "/share/dav"
<Location /dav>
DAV On
AuthType Basic
AuthName "Please Input ID and Password."
AuthUserfile /etc/webdav.passwd
<LimitExcept GET HEAD OPTIONS>
Require valid-user
</LimitExcept>
</Location>
|
NormalizeUsernameの指定はWindows XP独特の仕様変更で、Webdav認証時に「ホスト名\ユーザ名」として認証を試みる所をユーザ名だけで認証するために必要なパラメータです。
あとは、apachectl stopして、apachectl startすればWebdavが組み込まれたApacheが起動する筈です。
Windows XPからの共有
以下の手順で行います。
(1)マイネットワークから「ネットワークプレースの追加」を選択。

(2)ウイザード開始画面の「次へ」を選択

(3)「別のネットワークの場所を選択」を選び、「次へ」を選択

(4)URLの入力
URLに「http://www.hijiki.net/dav?」を入力
※URLの最後の「?」が重要です。これを入れないと先のユーザ認証で失敗します。

(5)ユーザ名、パスワードを入力

(6)ネットワークプレースの名前設定(すきな共有名)

(7)「完了」ボタンを押して終了

おわりに
Webdav共有は通常のファイル共有と違って、共有フォルダ上でファイルを開いたり実行したりはできませんが、遠隔地からファイルを共有する際にわざわざFTP等を使わないでも簡単に転送ができるのが良いと思います。
プロトコルにはHTTPを使用し、今回は認証もPlainなBasic認証なのでセキュリティ的にはどうかなと思いますが、便利に使えるので導入してみてはいかがでしょうか。
投稿者 yotan : 2004年11月29日 22:11| トラックバック(0)※コメント内にURLを書くとSPAM扱いとなります。2ch風に表記はOKです


