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


用意したもの


前堤


libiconvのインストール

OS標準のiconvでうまくいくかどうかわからないので、とりあえずGNU iconvを入れてみる。

  1. tar xvfz libiconv-1.7.tar.gz
  2. cd libiconv-1.7
  3. ./configure --prefix=/usr/local/iconv
  4. make
  5. sudo make install

※libiconvのインストール先は、OS標準のiconvとかちあわないように、独立したディレクトリにしている。


expatのインストール

  1. tar xvfz expat-1.95.2.tar.gz
  2. cd expat-1.95.2
  3. ./configure
  4. make
  5. sudo make install

mod_encodingのインストール

  1. tar xvfz mod_encoding-20011211a.tar.gz
  2. cd mod_encoding-20011211a
  3. Makefileに以下のパッチを適用。apxsのパスは環境に合わせること。(/usr/ccs/bin/makeだと、$<や$^に反応してくれない。何故?)
    ----------------------------------------------------------------------
    --- Makefile.ORIG	Fri Mar  1 15:41:55 2002
    +++ Makefile	Fri Mar  1 15:41:55 2002
    @@ -1,10 +1,11 @@
     
    -APXS = apxs -Wc,-Wall
    +APXS = /usr/local/apache/bin/apxs -Wc,-Wall
     
    -INCS =
    +ICONV = /usr/local/iconv
    +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
    @@ -15,10 +16,10 @@
     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
    
    ----------------------------------------------------------------------
    
  4. cd lib
  5. Makefileに以下のパッチを適用。
    ----------------------------------------------------------------------
    --- Makefile.ORIG	Fri Mar  1 15:38:59 2002
    +++ Makefile	Fri Mar  1 15:38:59 2002
    @@ -6,10 +6,10 @@
     OBJS = $(SRCS:.c=.o)
     
     DEFS = -DHAS_ICONV
    -LIBS =
    +LIBS = -L/usr/local/iconv/lib -R/usr/local/iconv/lib -liconv
     #LIBS = -liconv
     
    -CC      = gcc -Wall
    +CC      = gcc -Wall -O2 -fPIC -I/usr/local/iconv/include
     RM      = rm -f
     INSTALL = install
     
    @@ -22,7 +22,7 @@
     	$(CC) -shared -o $@ $(OBJS) $(LIBS)
     
     install: $(TARGET)
    -	$(INSTALL) -m 755 $(TARGET) /usr/local/lib
    +	$(INSTALL) -m 755 $(TARGET) /usr/local/iconv/lib
     
     clean:
     	$(RM) *.o *.so *~
    
    ----------------------------------------------------------------------
    
  6. make
  7. sudo make install
  8. sudo cp iconv_hook.h /usr/local/iconv/include
  9. cd ..
  10. make
  11. sudo make install

mod_davのインストール

  1. tar xvfz mod_dav-1.0.3-1.3.6.tar.gz
  2. cd mod_dav-1.0.3-1.3.6
  3. patch -p1 < mod_dav-1.0.3-1.3.6-l10n.diff
  4. Makefile.inに以下のパッチを適用。
    ----------------------------------------------------------------------
    --- Makefile.in.ORIG	Fri Mar  1 15:52:03 2002
    +++ Makefile.in	Fri Mar  1 15:52:16 2002
    @@ -27,11 +27,7 @@
     	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
     
     REPOS_SRCS = \
     	dav_fs_dbm.c \
    
    ----------------------------------------------------------------------
    
  5. autoconf
  6. env INCLUDE='-I/usr/local/iconv/include' LIBS='-L/usr/local/iconv/lib -R/usr/local/iconv/lib -liconv_hook -R/usr/local/lib' ./configure --with-apxs=/usr/local/apache/bin/apxs --with-expat=/usr/local
  7. make
  8. sudo make install

mod_headersのインストール (mod_headersがインストールされていない場合)

  1. tar xvfz apache_1.3.23.tar.gz (展開済みなら省略可)
  2. cd apache_1.3.23/src/modules/standard
  3. /usr/local/apache/bin/apxs -c mod_headers.c
  4. sudo /usr/local/apache/bin/apxs -i mod_headers.so

httpd.confの設定

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

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

<IfModule mod_encoding.c>
    EncodingEngine on
    SetServerEncoding EUC-JP
    AddClientEncoding "Microsoft .* DAV" SJIS
    AddClientEncoding "xdwin9x/" SJIS
    AddClientEncoding "cadaver/" EUC-JP
</IfModule>

<IfModule mod_dav.c>
    DavServerEncoding EUC-JP
    DAVLockDB /usr/local/www/var/DAVLock

    <Location /WebDAV>
        AllowOverride None
        Options None
        DAV on
        Header add MS-Author-Via "DAV"
        # 以下は必要に応じて適宜変更
        AuthType Basic
        AuthName WebDAV
        AuthUserFile /usr/local/www/etc/passwd
        AuthGroupFile /usr/local/www/etc/group
        require group webdav
    </Location>

</IfModule>
----------------------------------------------------------------------


[BACK]