« VirtualBoxでVineLinux4.2を仮想化する | トップページ | Ubuntu8.04へアップグレードする »

2008/03/23

VineLinux4.2でWebDAVを使用する。

前回、VirtualBoxでVineLinux4.2を仮想化できたため、日ごろ試してみたかったけど怖くて出来ないような検証ができるようになりました。

その第一弾
Linux4.2 と Apache2.2 で WebDAVサーバを立ててみます。
WebDAVの設定自体は VineLinux2.6 Apache1.3 の環境で行ったことがあります。
WebサーバのWebDAV化に挑戦
この時は、Vineのパッケージで mod_encoding が提供されていたため、そんなに苦労せずに設定できましたが、VineLinux4.2 では提供されていないようです。
ネットで調べても、Apache2でのWebDAV化は、パッチを当てたりモジュールを組み込んだりとややこしそうです。
どうなることやら。

参考にしたページはいくつかあります。
本家(?)のWebDAV Resources JP
困った時にはよくお世話になるパソコンおやじWebDAVの日本語対策でmod_encodingを導入すると、他のソフトの日本語環境やPHPやCGIで文字化けが発生する。とか、
Cyber SupportVine Linux 3.2 の Webdav に mod_encodingとか。

で、一番楽できそう(汗)だったのが
WebDAV PukiWikiでした。
というか、いろいろ失敗を繰り返しているうちにこのページにたどり着いた感じ。


さて、以下行った作業です。

まず、VineLinux4.2のApache2.2について調べました。
/usr/sbin/ に本体がいる。
設定ファイルなどは
/etc/apache2
以下にあり、モジュールの置き場所もここから辿っていける。
コンテンツは、
/var/www 以下に設置するようになっている。


WebDAVの設定
WebDAVは標準で使用可能になっていますが、
/etc/apache2/conf/httpd.conf
には、ロックファイルの設定のみ書かれています。
/etc/apache2/conf/extra
に、httpd-dav.conf
があるので、これを利用します。
/etc/apache2/conf.d へコピーします。
$ su -
# cd /etc/apache2/conf.d/
# cp ../conf/extra/httpd-dav.conf ./

httpd-dav.confを編集
# vi httpd-dav.conf
ロックファイルなどの設定がありますが、Vineのデフォルトの設定とは異なっているので、
15行目~36行目までをコメントします。
/var/www/dav をWebDAV用のフォルダとして設定することとします。
以下を記述。

Alias /dav "/var/www/dav"

<Location "/dav">
    Dav On
</Location>


ちなみにこれは動作確認のための最低限の設定です。(検証環境なので。)
本来は、
WebサーバのBasic認証
とか
WebサーバのWebDAV化に挑戦
で書いたものと同じ方向になるかと思います。


/var/www/dav ディレクトリを作成し、apacheユーザー権限にします。
# cd /var/www
# mkdir dav
# chown apache:apache dav

Apacheの再起動
# service apache2 restart
サーバへ接続、から
http://localhost/dav/
に接続し、ファイルが置けるか確認します。

Windowsから使うと、案の定文字化けしました。
日本語に強いVineLinuxだからと思って淡い期待を持っていたのですが。(笑)
やっぱりmod_encoding をインストールする必要があります。
本来はパッチを当てたりとか、かなり大変なのですが、
http://elug.selfip.org/index.php?WebDAV
にパッチを当てたものをまとめてくれているので、ここの
mod_encoding-20061118.tar.gz
を使ってみました。
Fedora Core 6 用なんだけど・・・・。


apxsを使用できるようにSynapticから、apache2-devel をインストールします。
apxs は、/usr/bin/ にインストールされます。

mod_encoding-20061118.tar.gz
をダウンロードし、ユーザーのホームディレクトリに置きます。
展開します。
$ cd
$ tar xzvf mod_encoding-20061118.tar.gz

インストール
$ cd mod_encoding-20061118
$ ./configure --with-apxs=/usr/bin/apxs
$ make
$ gcc -shared -o mod_encoding.so mod_encoding.o -Wc,-Wall
できたモジュールを、Apacheのモジュールのディレクトリへコピーします。
$ su
# cp mod_encoding.so /etc/apache2/modules/

httpd.conf の
LoadModule dav_fs_module modules/mod_dav_fs.so
の下に、
LoadModule encoding_module modules/mod_encoding.so
を追加します。

httpd-dav.conf に以下を追加します。

<IfModule mod_encoding.c>
    EncodingEngine on
    NormalizeUsername on
    SetServerEncoding UTF-8
    DefaultClientEncoding JA-AUTO-SJIS-MS SJIS
    AddClientEncoding  "cadaver/" EUC-JP
</IfModule>

ここの
SetServerEncoding UTF-8
がポイントです。
SetServerEncoding にEUC-JPを使いたいのですが、
DavServerEncoding EUC-JP を記入できないのです。(エラーになる。)
この状態で SetServerEncoding にEUC-JP と記入すると、文字化けしてしまいます。
UTF-8にするとターミナルなどからファイルを見ると化けてしまうのですが、しかたないかなあ。
VineのファイルマネージャNautilusは日本語に超強力で文字化けしにくいので、実用上は問題無いと思い納得しています。
(GUIが無いとダメだけど・・・。)

さて、Apacheを再起動して動作を確認します。
# /sbin/service apache2 restart

今度はLinuxからファイルを置いてもWindowsからファイルを置いても文字化けしません。

|

« VirtualBoxでVineLinux4.2を仮想化する | トップページ | Ubuntu8.04へアップグレードする »

Apache」カテゴリの記事

VineLinux」カテゴリの記事

WebDAV」カテゴリの記事

コメント

この記事へのコメントは終了しました。

トラックバック


この記事へのトラックバック一覧です: VineLinux4.2でWebDAVを使用する。:

« VirtualBoxでVineLinux4.2を仮想化する | トップページ | Ubuntu8.04へアップグレードする »