WindowsからLinuxサーバのファイルにアクセスするにはSCPを使うのが一番手っ取り早いけれど、 WebDAVを使えばシームレスにアクセスできる。もちろん同一ネットワークならSambaによる ファイル共有になるだろうけど、それ以外ならSSL経由のWebDAVが今の時点では一番よいと思う。
ただ、WebDAVアクセスを行うとApacheの実行権限でファイルが書き込まれるため 個人用にサーバを新しく立ててみた。*1
configure時にprefixを適切に設定する以外には特に注意点はなし。
$ "./configure" \ "--with-layout=Apache" \ "--prefix=/home/kazuki/httpd" \ "--with-mpm=worker" \ "--enable-mods-shared=all" \ "--enable-deflate" \ "--enable-so" \ "--enable-ssl" \ "--disable-asis" \ "--disable-auth_anon" \ "--disable-auth_dbm" \ "--enable-dav" \ "--enable-dav-fs" \ "--disable-imap" \ "--disable-status"
@ITの記事をなぞればOK。
$ cd ~/src $ wget http://webdav.todo.gr.jp/download/mod_encoding-20020611a.tar.gz $ wget http://webdav.todo.gr.jp/download/experimental/mod_encoding.c.apache2.20040616 $ tar zxf mod_encoding-20020611a.tar.gz $ cp mod_encoding.c.apache2.20040616 mod_encoding-20020611a/mod_encoding.c $ cd mod_encoding-20020611a/lib $ ./configure $ make $ su -c 'make install; /sbin/ldconfig' $ cd .. $ ./configure --with-apxs=~/httpd/bin/apxs $ make $ gcc -shared -o mod_encoding.so mod_encoding.o -Wc,-Wall -L/usr/local/lib -Llib -liconv_hook $ make install
変更したのは
あたり。
WebDAVに関する設定は
LoadModule encoding_module modules/mod_encoding.so LoadModule dav_module modules/mod_dav.so LoadModule dav_fs_module modules/mod_dav_fs.so <IfModule mod_encoding.c> EncodingEngine on NormalizeUsername on SetServerEncoding UTF-8 DefaultClientEncoding JA-AUTO-SJIS-MS SJIS AddClientEncoding "cadaver/" EUC-JP </IfModule> <Location /> deny from all </Location> Alias /dav "/home/username/" <Location /dav> allow from all DAV on <Limit GET PUT POST DELETE PROPFIND PROPPATCH MKCOL COPY MOVE LOCK UNLOCK> AuthType Basic AuthName "WebDAV" AuthUserFile /home/username/.htpasswd-webdav Require valid-user </Limit> </Location> DAVLockDB /home/username/httpd/var/DAVLock
修正が必要なのは
あたり。
これで準備は終わったので起動する。同梱の起動スクリプトは一般ユーザーからでは使えないようなので apachectlから。
$ ~/httpd/bin/apachectl -D SSL -k start
WindowsXPだったら[マイネットワーク]->[ネットワークプレースの追加]からWeb Folderを追加できる。 が、それでは使い勝手が悪いので「net use」を使ってドライブとして割り当てよう、と。
> net use z: https://host:nn/dav システム エラー 67 が発生しました。 ネットワーク名が見つかりません。
……えー。どうやらhttp://host/という形でないとだめらしい。http://host:port/ですらだめ。 Web Folderでは問題なく使えるのに。ドライブレターもらえないとまるで使えないのでがっくり。
もう一つバグ修正。<kkstyle-1.2.tar.gz> 最初キャッシュがあるのを忘れていて、ファイルを入れ替えても直らないのであせった。
*1 このあたりはperchildに期待だなぁ