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認証は設定していません。したい方は、ここを参照してください。
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 install3) 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 install4) 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 install5) lock/data ディレクトリを作成します。
# cd /export/home
# mkdir -p www/lock
# mkdir -p www/data
# chown -R nobody:nobody www6) 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
mod_encoding 使用時には、cgi に影響が出る場合があります。ここを参照してください。