Debian-sargeでWebDAV、Macの濁点問題を解消する

最近CentOSばかりいじってましたが、WebDAV用途に自宅で公開サーバーにしているのはDebianなのです。CentOSならすんなりいくのかもしれませんが、Debianではなかなかに手こずった作業なので、ここに記しておきます。まずは、各種パッチ等を制作された皆さんに、感謝!


MacOSXで採用されているUnicodeがマイナーな規格らしく、通常でセットアップしたWebDAVでは(それでも日本語が通りようにするには手間がかかるのですが)Macからコピーしたファイルの濁点などが、Winowsから見た場合に化けてしまう問題があります。


化けてもアクセスは出来るようなので気にせずに使っていたのですが、せっかくですので対処してみました。


簡単に説明すると、mod_davにパッチを当て、mod_encoding.cを差し替えます。パッチと差し替えようファイルはこちら。メーリングリンスとアーカイブページだと思います。検証もそれほどされた形跡はないのですが、結論としてはOKでした。


まずはmod_dav。ソースパッケージをタウンロードして、パッチを当て、リビルドします。
適当な作業ディレクトリを作って、
#apt-get source apache2
今ですとapache2-2.0.54です。同じ名前のディレクトリに中身が展開されてます。上記のパッチをdebian/patchesに放り込めば終了かと思いきや、いまくパッチが当たりません。しかたありませんからupstream/tarballsにあるhttpd-2.0.54.tar.gzをtar xvzfで展開し、patch -p1 < パッチファイル名 してパッチを当てます。
パッチを当てたらtar cvfで丸めて、gzipしてhttpd-2.0.54.tar.gzを作り直します。以前ものは消すかmvしておきます。(追記:パッチを当てたmod_dav.cの中に、一カ所だけap_pallocという文字列があるので、そこをapr_pallocに修正してからtarで丸めます)
そしたらapache2-2.0.54ディレクトリに戻って、
#dpkg-buildpackage -uc -b
して出来上がりです。
たくさんdebパッケージが出来ますので、必要なものをdpkg -i します。
次はmod_encoding.c。これがまたややこしい。
debianにはパッケージ化されたものが非公式にですが配布されています。こちら
先ほどと同じくソースを入手します。
#apt-get source libapache2-mod-encoding
libapache2-mod-encoding-20040616に中身が展開されます。パッチを作るのが面倒だったので、この中のmod_encoding.cを上記のものと入れ替えて、pathcesにあるパッチを手動で適用します。もしかしたらそのままdpkg-buildpackageで行けるのかもしれませんが、試行錯誤のさなかにやっていたものですからそんな確認もせずに、エディタで本当に手動でパッチを当てました。-の行を削り、+の行を加えていくわけです。(追記:パッチを当てたmod_encoding.cの中に、一カ所だけap_pallocという文字列があるので、そこをapr_pallocに修正します)
そしてrulesファイルの中のパッチを当てている部分を(patchコマンドの前後3行か4行ぐらいでした)削除して、
#dpkg-buildpackage -uc -b
です。出来上がったらインストールします。そしたら
/etc/init.d/apache2 restart
でapache2を再起動して、OKなはずです。初めてapache2をインストールする場合はもちろん諸々の設定がいります。mod_encodingの設定は通常通りの設定のままでOKです。
丸一日かかりました。
libapache2-mod-encodingの存在に気づかず、ソースからがんばっていたのですがどうしてもmakeでエラーが出てしまって時間がかかりました。
でも、がんばったおかげでMacからもWindowsからも快適なWebDAV環境が出来上がりました。うまく動いた瞬間は、何とも言えない気持ちよさですね。
コメントを投稿

このブログの人気の投稿

トランシーバーアプリzelloにオススメの片耳イヤホンマイク

買っちゃった ASUSのスティックPC VivoStick TS10

アメックスのフリー・ステイ・ギフトで予約してみた