WebDAVサーバ |
iBookでMacOS X使ってると、液晶を開くとすぐにSleepから復帰するのは大変便利なのですが、このときSleep前にマウントしていたネットワークドライブがマウント解除されるのがとても鬱陶しい。WebDAVでマウントすれば、Sleepから復帰してもマウントが継続するはずなんで、これはぜひやってみたい。Apacheのモジュールを入れたらいいはずなんでまずは挑戦。
debian.dodes.orgからWebDAVのパッケージlibapache-mod-dav_1.0.3-3_sh4.debをダウンロード。これをLANDISKに転送し、
| dpkg-deb -x libapache-mod-dav_1.0.3-3_sh4.deb . |
|
LoadModule dav_module libexec/libdav.so AddModule mod_dav.c |
これだけ追加するとライブラリ不足のエラーは出なくなりましたが、今度は
|
Syntax error on line 247 of /usr/local/apache/conf/httpd.conf: Cannot load /usr/local/apache/libexec/libdav.so into server: /usr/local/apache/l ibexec/libdav.so: undefined symbol: ap_ctx_get |
LANDISKの開発環境を整えるには、
開発マシンとしては非力に見えるLANDISKでも、充分実用的なスピードでビルドができます。68k macでNetBSDを動かすよりも、またはiBookG4/800上のVirtualPC 6.0でcuiでlinuxを動かすよりも体感的には高速です。
mod_davをインストールしただけでは日本語のファイル名が文字化けするので、mod_encodingもビルドし追加インストールし、WebDAV環境は完成です。
debian.dodes.orgに置いてあるmod_davとmod_encodingのsh4用バイナリは、LANDISKのhttpdでは使えません。自分でビルドするのがめんどい場合は、以下のバイナリを使ってください。
/usr/local/apache/conf/httpd.confのmod_davとmod_encodingに関する設定は以下のようにしました。
LoadModule dav_module libexec/libdav.so
LoadModule encoding_module libexec/mod_encoding.so
AddModule mod_dav.c
AddModule mod_encoding.c
Alias /DAV "/mnt/hda3/share/LANDISK/DAV"
<IfModule mod_dav.c>
DAVLockDB /mnt/hda3/var/lock/DAVLock
DAVMinTimeout 600
<Directory "/mnt/hda3/share/LANDISK/DAV">
AllowOverride FileInfo AuthConfig Limit
Options MultiViews Indexes
DAV On
</Directory>
</IfModule>
<IfModule mod_encoding.c>
EncodingEngine On
NormalizeUsername On
SetServerEncoding UTF-8
DefaultClientEncoding JA-AUTO-SJIS-MS SJIS
</IfModule> |
この設定でWindows/Classic Mac/MacOS X 混在環境でも日本語ファイル名の文字化けは起こりませんが、LANDISK内では日本語ファイル名はUTF-8で扱われます。私の場合、SambaやnetatalkでCAPエンコーディングを設定しているので、Sambaやnetatalk経由でコピーした日本語ファイル名のファイルは、WebDAV経由では文字化けしてしまいます。逆にWebDAV経由でコピーした日本語ファイル名のファイルをSambaやnetatalk経由でアクセスしても、当然ダメ。netatalkがUTF-8を扱えるようになれば解決なんだけど...