Apache for WindowsでWebDAV

免責事項: このページは Microsoft Corpolation の Windows2000 Professional にApache Web Servermod_dav for Win32 を導入した際の個人的な覚え書きです。もし貴方がこのページに書かれた内容を参考にして各種ソフトウェアの導入・設定・実行・運用を行い、それによって貴方が何らかの損害を被ったとしても当方は責任を負い兼ねますので予め御了承下さい。なお誤り等を発見された方はご指摘のメールを頂けると非常に有難いので宜しくお願いします。:D

mod_dav

まず最初にmod_davのコンパイル済みバイナリを入手します。mod_dav for Win32 オフィシャルページの"Download"セクションから最新版を辿ってください。ちなみに今回は2001//1/7現在の最新版である mod_dav-1.0.2.zip をダウンロードしました。ダウンロードが終ったらどこか適当な場所に展開しておいてください。

Apache for Windows

続いてWindows版のApache Web Server(以下 Apache for Windows)です。こちらはApache Projectのバイナリ配布等から入手してください。今回はOCNのRINGサーバ(ようするに作業環境からネットワーク的に最も近いミラーサイト)から apache_1_3_14_win32_r2.exe (先にダウンロードしたmod_davが対応している最も新しいバージョン)をダウンロードしました。ダウンロードが終ったらファイルを実行してインストールします。ちなみに以降の説明はインストール方法およびインストール先は標準設定のままであることを前提としますので注意してください。

標準の設定でインストールした場合、Apache for Windowsは C:\Program Files\Apache Group\Apache\ にインストールされます(以降このディレクトリをベースディレクトリと呼びます)。Apacheは基本的に以下のようなファイル配置になっています。

mod_davを展開した先にあるディレクトリ 1.3.14_module の中にある mod_dav.dll を上記の modules ディレクトリの中へコピーします。ちなみにもしApache for Windowsのベースディレクトリ内に xmlparse.dllxmltok.dll が無い場合は同じくmod_davの展開先から同名のDLLファイルをApacheのベースディレクトリにコピーしておいて下さい(もし既にある場合はそちらを使用します)。ここでひとまず Apache for Windows が正常に動くかどうか確かめてみましょう。コマンドプロンプトで C:\Program Files\Apache Group\Apache に移動して apache.exe を起動します。

C:\Program Files\Apache Group\Apache>apache

続いてInternet Explorer等から http://127.0.0.1/ (Apacheを動かしているマシンがホスト名を持っている場合はIPアドレスのかわりにホスト名で開いてもかまいません)を開いてみてください。このような画面が表示されればApacheは正常に動作しています。お使いのブラウザまたは環境によってはメッセージが英語かもしれません。

ではようやく mod_dav の設定です。ここでは http://127.0.0.1/~kotone/shared/、つまりユーザー名 kotone さんの shared ディレクトリを共有することにします。「~(チルダ)+ユーザー名」という形式でユーザディレクトリを参照したい場合、Apache for Windowsではユーザデータを格納するためのディレクトリ(以下ユーザディレクトリ)を用意し、その中に各ユーザー名と同じ名前のディレクトリを作成します。また httpd.confUserir で先程のユーザディレクトリを指定します。ここではユーザディレクトリは E:\users とします。エディタ等で httpd.conf を開いたら、まず

#LoadModule headers_module modules/ApacheModuleHeaders.dll

という行を探して先頭の # を削除してください。

LoadModule headers_module modules/ApacheModuleHeaders.dll

続いて

<IfModule mod_userdir.c>
  UserDir "C:/Program Files/Apache Group/Apache/users/"
</IfModule>

という行を探し、UserDirの部分を書き換えます。

<IfModule mod_userdir.c>
  UserDir "E:/users"
</IfModule>

最後に以下の一文を書き加えます。ちなみに DAVLockDB で指定しているパスは適当な場所で構いません。dav_lock という名前も適当なもので構いません。たとえば「"C:\dav_lock"」や「"C:/Program Files/Apache Group/Apache/dav_lock"」等でも大丈夫です。また共有ディレクトリを利用可能なユーザー名およびパスワードを記したファイルの保存先である AuthUserFile も適宜変更して構いません。

LoadModule dav_module modules/mod_dav.dll
DAVLockDB "D:/tmp/dav_lock"
<Location /~kotone/shared>
  DAV On
  Header add MS-Author-Via "DAV"
  AuthUserFile "C:/Program Files/Apache Group/Apache/user.passwd"
  AuthName Authorize
  AuthType basic
  Options Includes FollowSymLinks Indexes
  <Limit PUT POST DELETE PROPFIND PROPPATCH MKCOL COPY MOVE LOCK UNLOCK>
    Require user kotone
  </Limit>
</Location>

最後にパスワードファイルを作成して利用可能なユーザー名とパスワードを指定します。前述の設定では Require userkotone とだけしか書いていないので、kotone さんだけしか使えないことになりますが、上記のように共有ファイルへのフルアクセスを許可しているような状況では「必要最小限の範囲(ボリューム)のみ共有」および「必要最低限のユーザのみ利用を許可する」という方針を取っておいた方が無難でしょう。パスワードファイルの作成およびパスワードの指定は bin ディレクトリの htpasswd.exe を使います。コマンドプロンプトを開いてApacheのベースディレクトリへ移動し

htpasswd.exe -c パスワードファイル名 ユーザー名

を実行してパスワードを入力します。

C:\Program Files\Apache Group\Apache>bin\htpasswd -c user.passwd kotone

Automatically using MD5 format on Windows.
New password: ********
Re-type new password: ********
Adding password for user kotone

以上でサーバ側の設定は完了です。再度Apacheを起動してください。

C:\Program Files\Apache Group\Apache>apache

ちなみにWindows2000等ではApacheをサービスとして登録することでWindowsが起動する際自動的に Apache をバックグラウンドで走らせておくことが可能です。スタートメニューから「Apache Web Server」を開き「Apache as Service」の「Install service」を選択するとサービスに登録、「Unistall service」を選択すると登録解除されます。なおサービスで運用する際に設定を変更した場合は同じく「Apache as Service」内の「Restart Service」で Apache を再起動させて変更された設定を反映させます。

Windows2000から参照する場合

サーバ側の設定に問題がなければ :-P クライアント側の設定は非常に簡単です。デスクトップの「マイ ネットワーク」から「ネットワーク プレースの追加」を選んで http://127.0.0.1/~kotone/shared/ を指定します。もちろんIPアドレス(127.0.0.1)のかわりに(そのマシンの)ホスト名でも構いません。以下ではホスト名で指定しています。

ネットワーク プレースの追加ウィザードの開始

「次へ」で進むとユーザー名とパスワードを尋ねられますので、先程のユーザー名とパスワードを入力します。

ネットワークのパスワードを入力

これで準備が整いました。

ネットワーク プレースの追加ウィザードの終了

完了すると /~kotone/shared/ がWebフォルダとして開かれるはずです。あとは通常のエクスプローラと同様にファイルをコピー、削除、リネームすることが可能ですが、ここで一つだけ大きな問題があります。それは日本語のファイル名が使えないことです。正確には、ハードディスク上を直接参照する場合、およびWebブラウザから参照する場合には日本語のファイル名が正しく表示されるのですが、エクスプローラからWebフォルダとして開いた場合のみ日本語のファイル名が正しく表示されません。まあ日本語のファイル名を使わなければ問題はないのですが、たとえばWebフォルダの中に(Webフォルダ経由で)フォルダを新規作成した場合、エクスプローラは通常最初に「新しいフォルダ」という名前でフォルダを作成するので困ったことになってしまいます。恐らくエクスプローラとApacheでファイル名をやりとりする際の文字コードの問題だと思うのですが、どうにかこれをfixする方法は無いですかねぇ…

Mac OS X Public Betaから参照する場合

Finderの「移動」メニューから「サーバへ接続...」を選択、左上のプルダウンメニューから Web Servers を選んで「URL:」欄に先程と同じようにWebフォルダのURL「http://kudryavka/~kotone/shared/」を入力します。

サーバに接続

続いてユーザ名とパスワードを入力

WebDAV ファイルシステムの認証

これでデスクトップにエイリアスが作成されます。

Finder

多分こちらもWindows2000での場合と同様日本語のファイル名の問題があるかと思われます。出来るだけ日本語のファイル名は使わない方が無難かな?


by hibiki