先日インストールした Webdav なのですが、私が試験したWindowsXP SP2と同じバージョンなのに、認証ではじかれたり、日本語フォルダ名などでエラーになったりと、環境によってはまだまだ問題が多いことがわかりました。
しかたがない、もう少し改善の努力をしましょう、ということで、まずはmod_encodingを入れてみることにしました。これによって、WindowsXPのおかしな認証動作も改善されるかもしれないし。
WebDAV Resources JPを最初に見てみたのですが、パッチがたくさんあって、どれを使うのか調べるだけで時間がかかりそう... もう少し検索してみると、全てのパッチをまとめてくれている方がいらっしゃるのですね。
WebDAV - PukiWiki初めは、Fedora 6用という最新(?)のmod_encoding-20061118.tar.gzを試してみたのですが、makeで失敗しました。Vine 3.2はカーネルが2.4ですからね。
mod_encoding-20040430a.tar.gzをダウンロードし、
$ tar zxvf mod_encoding-20040430a.tar.gz
$ cd mod_encoding-20040430
$ cd lib
$ ./configure
$ make
$ su
# make install
# /sbin/ldconfig -v
これで、iconv_hookのコンパイルとインストールが終了です。次に、mod_encoding本体です。
$ cd ..
$ ./configure --with-apxs=/usr/bin/apxs --with-iconv-hook=/usr/local/include
$ make
$ gcc -shared -o mod_encoding.so mod_encoding.o -Wc,-Wall -L/usr/local/lib -Llib -liconv_hook
$ su
# cp mod_encoding.so /usr/lib/apache2/modules
最後に、apacheの設定変更ですね。こんな設定にしてみました。
# vi /etc/apache2/conf/apache2.conf
<IfModule mod_dav_fs.c>
# Location of the WebDAV lock database.
DavLockDB /var/lock/dav/DavLock
</IfModule>
Alias /webdav "/var/www/webdav"
<Location /webdav>
Options All
AllowOverride All
DAV on
AuthType Digest
AuthName "DAV"
AuthDigestFile /etc/dav/dav-auth
Require valid-user
</Location>
<IfModule mod_encoding.c>
# モジュールを有効化
EncodingEngine On
# サーバ側のファイル名エンコーディング
SetServerEncoding UTF-8
# デフォルトのエンコード(自動判定)
DefaultClientEncoding JA-AUTO-SJIS-MS
# 各種エージェントごとのエンコーディング
AddClientEncoding UTF-8 "Microsoft-WebDAV-MiniRedir/"
AddClientEncoding SJIS "Microsoft .* DAV 1\.1$"
AddClientEncoding UTF-8 "Microsoft .* DAV$"
AddClientEncoding SJIS "xdwin9x/"
AddClientEncoding EUC-JP "cadaver/"
# WindowsXPからのアクセス時にユーザ名に付加されたホスト名を消去する
NormalizeUsername On
</IfModule>
最後にapacheをリスタートして終了。
# service apache2 restart
サーバー側のエンコードをVine Linux 3.2に合わせてEUC-JPにしてみたのですが、動作は変化ありませんでした。何か足りないんでしょうね。
Mac OS Xからアップした日本語ファイル名がWindowsから見ると「デ」→「テ・」のように化ける件は、「OS Xは、UnicodeのNormalization (正規化) として、かなの濁点半濁点つきの文字等は合成文字として、基底文字と結合文字 (濁点半濁点) に分離して保持する方式 (Normalization Form D) を使っています」ということが理由のようです。なるほど、知りませんでした。
参考:
Mac OS XでWebDAVサーバ同じUTF-8なのに違ってしまうとは、何なんでしょうね。
それに対応するMac OS X用のmod_encodingパッチもあるようですが、今のバージョンに対応しているものは見つかりませんでした。きっと誰か作っているんだろうと思うんだけどなぁ。
posted by 急いでジャンプ at 13:56|
Comment(1)
|
TrackBack(1)
|
Linux
|
|