mod_dav に関するインストールメモ(2002/06/26) 
 

動作を行った環境

・Intel-Solaris8 2/02版で行いました。GNUmake, GNUpatch をインストールしている状態です。

・標準で入っている apache は、削除しました。

・apache-1.3.26 を使用しました(DSO を使用できるようにするため再コンパイルした)。ここを参照してください。

・expat - XML Parser Toolkit Version 1.2 が必要です。

libiconv が必要です(libtool も必要です)。

・Basic認証は設定していません。したい方は、ここを参照してください。

    参考 : Intel版 Solaris8 への mod_dav のインストール

    参考 : Solaris2.6 で mod_dav をインストール

mod_dav(WebDav)とは

Qube3Jで mod_dav の設定を行た詳細記事を参考にしてください 1 2 3 。ここでは、環境設定の手順のみ紹介します。

設定方法

1) libiconv (libtool が必要)をインストールします。 

% cd /opt/local/src
% wget ftp://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.7.tar.gz
% gzip -cd libiconv-1.7.tar.gz | tar xf -
% cd libiconv-1.7
% ./configure --prefix=/usr/local
% make
% su
# make install
    ※libiconvのインストール先は、OS標準のiconvとかちあわないように違うディレクトリに・・・

2) expat - XML Parser Toolkit Version 1.95 インストールします。

% cd /opt/local/src
% wget http://prdownloads.sourceforge.net/expat/expat-1.95.2.tar.gz
% tar xvfz expat-1.95.2.tar.gz
% cd expat-1.95.2
% env CFLAGS=-O3 ./configure 
% make
% su
# make install

3) mod_encodeing をインストールします。

% cd /opt/local/src
% wget http://webdav.todo.gr.jp/download/mod_encoding-20011211a.tar.gz
% gzip -cd mod_encoding-20011211a.tar.gz | tar xf -
% cd mod_encoding-20011211a
% wget http://iwa.ath.cx/software/webdav/mod_encoding-makefile.diff
% patch < mod_encoding-makefile.diff
   ----------------------------------------------------------------------
   -APXS = apxs -Wc,-Wall
   +APXS = /opt/local/apache/bin/apxs -Wc,-Wall

   -INCS =
   +ICONV = /usr/local
   +INCS = -I$(ICONV)/include
   DEFS = -DMOD_ENCODING_DEBUG=1 -Diconv=iconv_hook \
   -Diconv_open=iconv_hook_open -Diconv_close=iconv_hook_close
   -LIBS = -L/usr/local/lib -Llib -liconv_hook
   +LIBS = -L/usr/local/lib -Llib -L$(ICONV)/lib -Wl,-R$(ICONV)/lib -liconv_hook

   RM = rm -f
   CP = cp

   all: mod_encoding.so

   mod_encoding.so: mod_encoding.c
      - $(APXS) -c $(DEFS) $(INCS) $(LIBS) $<
      + $(APXS) -c $(DEFS) $(INCS) $(LIBS) mod_encoding.c

   install: mod_encoding.so
      - $(APXS) -i $^
      + $(APXS) -i mod_encoding.so

   clean:
      $(RM) *.so *.o
   ----------------------------------------------------------------------
% cd lib
% wget http://iwa.ath.cx/software/webdav/mod_encoding-lib-makefile.diff
% patch < mod_encoding-lib-makefile.diff
   ----------------------------------------------------------------------
   TARGET = libiconv_hook.so

   SRCS = iconv_hook.c iconv_hook_default.c iconv_hook_ja_auto.c \
   iconv_hook_mssjis.c identify_encoding.c
   OBJS = $(SRCS:.c=.o)

   DEFS = -DHAS_ICONV
   -LIBS =
   +LIBS = -L/usr/local/lib -R/usr/local/lib -liconv

   -CC = gcc -Wall
   +CC = gcc -Wall -O2 -fPIC -I/usr/local/include
   RM = rm -f
   INSTALL = install

   .c.o:
      $(CC) -c $(DEFS) $<

   all: $(TARGET)

   $(TARGET): $(OBJS)
      $(CC) -shared -o $@ $(OBJS) $(LIBS)

   install: $(TARGET)
      $(INSTALL) -m 755 $(TARGET) /usr/local/lib

   clean:
      $(RM) *.o *.so *~
   ----------------------------------------------------------------------

% make
% su
# make install
# cp iconv_hook.h /usr/local/include
# exit
% cd ..
% make
% su
# make install

4) mod_dav 公式サイト(http://www.webdav.org/mod_dav)から、リリース版「mod_dav-1.0.3-1.3.6」をダウンロードし解凍&コンパイルを行いインストールする。

% cd /opt/local/src
% wget http://www.webdav.org/mod_dav/mod_dav-1.0.3-1.3.6.tar.gz
% gzip -cd mod_dav-1.0.3-1.3.6.tar.gz | tar xf -
% cd mod_dav-1.0.3-1.3.6
% wget http://webdav.todo.gr.jp/download/mod_dav-1.0.3-1.3.6-l10n.diff
% patch < mod_dav-1.0.3-1.3.6-l10n.diff
% autoconf
    env LIBS='-L/usr/local/lib -R/usr/local/lib -liconv_hook' \
        ./configure --with-apxs=/opt/local/apache/bin/apxs \
        --with-apache=/opt/local/apache --with-expat=/usr/local
% vi Makefile
    ----------------------------------------------------------------------
    mod_dav.c \
    dav_lock.c \
    dav_opaquelock.c \
    - dav_dyn.c \
    - iconv_hook_default.c \
    - iconv_hook_ja_auto.c \
    - iconv_hook_mssjis.c \
    - identify_encoding.c
    + dav_dyn.c
    ----------------------------------------------------------------------
% make
% su
# make install

5) lock/data ディレクトリを作成します。

# cd /export/home
# mkdir -p www/lock
# mkdir -p www/data
# chown -R nobody:nobody www

6) httpd.conf に mod_dav/mod_encoding の定義を記述します。

LoadModule headers_module  libexec/mod_headers.so
LoadModule dav_module      libexec/libdav.so
LoadModule encoding_module libexec/mod_encoding.so

AddModule mod_headers.c
AddModule mod_dav.c
AddModule mod_encoding.c

<IfModule mod_encoding.c>
   EncodingEngine on
   SetServerEncoding UTF-8

   AddClientEncoding "Microsoft-WebDAV-MiniRedir/" UTF-8
   AddClientEncoding "Microsoft .* DAV 1\.1$" SJIS
   AddClientEncoding "Microsoft .* DAV" UTF-8
   AddClientEncoding "xdwin9x/" SJIS
   AddClientEncoding "cadaver/" EUC-JP
</IfModule>

<IfModule mod_dav.c>
   DavServerEncoding EUC-JP
   DAVLockDB /export/home/www/lock/DAVLock
   DAVMinTimeout 600

   Alias /DAV /export/home/www/data
   <Location /DAV>
      AllowOverride None
      Options None
      DAV on
      Header add MS-Author-Via "DAV"
   </Location>
</IfModule>

7) apache をスタートします。

# /opt/local/apache/bin/apachectl start

8) init.d および rc3.d の設定を行います。

# vi /etc/init.d/apache         ← これを編集する
# chmod 755 /etc/init.d/apache
# ln -s /etc/init.d/apache /etc/rc3.d/S50apache

WebDAV を使用している時の cgi の影響について

mod_encoding 使用時には、cgi に影響が出る場合があります。ここを参照してください。