[ロ] WebDAVで日本語ファイル名を使えるようにする。

このエントリーをはてなブックマークに追加
はてなブックマーク - [ロ] WebDAVで日本語ファイル名を使えるようにする。
Share on Facebook
Bookmark this on Yahoo Bookmark
Bookmark this on Livedoor Clip
Share on FriendFeed
[`tweetmeme` not found]

連休の合間を縫って、WebDAVを使える環境にしてみた。何気に最近は日本語ファイル名を利用することに慣れきってしまったので、標準で日本語ファイル名が使えないと知ったときには驚愕であった。いろいろ調べながらさくっと日本語対応してみたのでご参考までに。

日本語対応WebDAV
図1. Windowsから日本語ファイル名が使えているWebDAV共有フォルダ


○環境
インストール環境は以下のとおり


$ cat /etc/fedora-release
Fedora Core release 4 (Stentz)
$ rpm -qa | grep httpd
httpd-2.0.54-10.3
httpd-devel-2.0.54-10.3

○ダウンロード元
http://webdav.todo.gr.jp/download/
○参考情報
http://www.atmarkit.co.jp/flinux/special/webdav03/webdav01b.html
○準備
mod_encodingのパッケージ一式と、差し替えファイルをダウンロードする。
mod_encodingを解凍後mod_encoding.c.apache2.20040616に差し替える。


$ 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 xvzf ./mod_encoding-20020611a.tar.gz
$ cd mod_encoding-20020611a
$ ls
acconfig.h  config.h.in   INSTALL      Makefile.in      mod_encoding.c  stamp-h.in
aclocal.m4  configure     install-sh   Makefile.simple  NEWS
AUTHORS     configure.in  lib          missing          README
ChangeLog   COPYING       Makefile.am  mkinstalldirs    README.JP
$ cp ./mod_encoding.c.apache2.20040616 ./mod_encoding-20020611a/mod_encoding.c

○libiconv_hookのコンパイル&インストール


$ cd lib
$ ./configure
$ make
$ sudo make install
$ ls -la /usr/local/lib/libiconv_hook.*
-rw-r--r--  1 root root 250166 May  5 19:51 /usr/local/lib/libiconv_hook.a
-rwxr-xr-x  1 root root    748 May  5 19:51 /usr/local/lib/libiconv_hook.la
lrwxrwxrwx  1 root root     22 May  5 19:51 /usr/local/lib/libiconv_hook.so -> libiconv_hook.so.1.0.0
lrwxrwxrwx  1 root root     22 May  5 19:51 /usr/local/lib/libiconv_hook.so.1 -> libiconv_hook.so.1.0.0
-rwxr-xr-x  1 root root 232762 May  5 19:51 /usr/local/lib/libiconv_hook.so.1.0.0

○mod_encodingのコンパイル&インストール
どうも、makeだとうまくいかないっぽいので、直接コンパイルして、/etc/httpd/modules/以下に生成されたsoファイルを手動コピーした。


$ cd ..
$ ./configure --with-apxs=/usr/sbin/apxs
$ make
$ gcc -shared -o mod_encoding.so mod_encoding.o -Wc,-Wall -L/usr/local/lib -Llib -liconv_hook
$ sudo make install
$ sudo cp ./mod_encoding.so /etc/httpd/modules/

○シンボリックリンクの生成
この時点では気がつかなかったけど、実際にApacheの設定をしてconfigtestやると、libiconv_hook.so.1が見つからないといわれる。どうやらlibiconv_hook.so.1が配置されている場所が/usr/local/libなのがよくない模様。


$ sudo ln -s /usr/local/lib/libiconv_hook.so.1 /usr/lib/libiconv_hook.so.1

○Apacheの設定
httpd.conf中に「——」の間を記述すればよい。LoadModuleの最後の行に追加してみた。


$ sudo vi /etc/httpd/conf/httpd.conf
----------------------------------------------
LoadModule encoding_module  modules/mod_encoding.so
<IfModule mod_encoding.c>
    EncodingEngine    on
    NormalizeUsername on
    SetServerEncoding     UTF-8
    DefaultClientEncoding JA-AUTO-SJIS-MS SJIS
    
    AddClientEncoding "cadaver/" EUC-JP
</IfModule>
----------------------------------------------

○テスト、そして起動


$ sudo /etc/rc.d/initd/httpd configtest
Syntax OK
$ sudo /etc/rc.d/initd/httpd restart

Popular Posts:

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*