Apache2.0.43とmod_encodingを使って,WebDAVサーバを構築する

WebDAVサーバの構築 (Apache2)

 WebDAVサーバを,Apache1.xから,Apache2に移行することにしました.

環境: RedHat Linux 7.1 (Kernel 2.4.18-18.7.x)

なお,Apache2.2の場合の話は,Apache2.0から2.2への移行に記述しています.mod_dav,mod_encodingについてです.

apache 2.0.43のインストール

httpd-2.0.43.tar.gzを,Apache HTTP Server Projectからダウンロードしてくる.

本体のコンパイル,インストール

$ gzip -dv httpd-2.0.43.tar.gz
$ tar -xvof httpd-2.0.43.tar
$ cd httpd-2.0.43
$ ./configure --enable-dav \
 --enable-headers \
 --enable-so
$ make
# make install

Apacheの操作を楽にするための仮想ユーザ(www)を作る

# useradd -d /usr/local/apache2 -s /bin/false www

WebDAVコンテンツ用のディレクトリを作る

# useradd -d /home/dav -s /bin/false dav
# chown nobody.nobody /home/dav
# chmod 770 /home/dav

mod_dav ロックファイルのディレクトリを作る

# mkdir /usr/local/apache2/var
# chown nobody.nobody /usr/local/apache2/var
# chmod 770 /usr/local/apache2/var

mod_encoding for Apache2 (日本語ファイル名対応)

 @ITに詳しい記事がありました.

Apache 2.0でWebDAV − 変更点と日本語リソース問題の解決 −

以下の2ファイルをWebDAV Resources JPからダウンロードして, 作業を行いました.

  • mod_encoding-20020611a.tar.gz
  • mod_encoding.c.apache2.20020611a-2

$ gzip -dv mod_encoding-20020611a.tar.gz
$ tar -xvof mod_encoding-20020611a.tar
$ cd mod_encoding-20020611a
$ ./configure --with-apxs=/usr/local/apache2/bin/apxs

mod_encoding.c.apache2.20020611a-2 で mod_encoding.c を上書き

$ cp ../mod_encoding.c.apache2.20020611a-2 mod_encoding.c

iconv_hookのコンパイル,インストール

$ cd lib
$ ./configure
$ make
# make install

mod_encodingのコンパイル,インストール

(ここで試行錯誤が入りました.)
$ cd ..
$ make
$ gcc -shared -o mod_encoding.so mod_encoding.o -Wc,-Wall -L/usr/local/lib -Llib -liconv_hook
# cp mod_encoding.so /usr/local/apache2/modules/
# ln -s /usr/local/lib/libiconv_hook.so ~www/lib/libiconv_hook.so.1

httpd.conf に追加した内容

Alias /dav /home/dav
<Location /dav>
  Options None
  AllowOverride None
  DAV on
</Location>
DAVLockDB  /usr/local/apache2/var/DAVLock

<Location />
    Header add MS-Author-Via "DAV"
</Location>

LoadModule encoding_module modules/mod_encoding.so
<IfModule mod_encoding.c>
  EncodingEngine        on
  SetServerEncoding     UTF-8
  DefaultClientEncoding JA-AUTO-SJIS-MS SJIS
  AddClientEncoding "cadaver/" EUC-JP
  NormalizeUsername on
</IfModule>
(↑ 認証などは入れてません.WebDAVサーバの構築をごらんください.)

Apacheの起動

# ~www/bin/apachectl start
kamolandをフォローしましょう


© 2017 KMIソフトウェア