[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[0273] [Solaris2] install notes about mod_encoding-20011211a + mod_dav-1.0.3-1.3.6-l10n



岩室です。

# 少々古いネタへのフォローになっていますが……。

In message "[webdav-jp:0161] Re: mod_encoding-20011211a を組み込むと apache が起動しない"
    on 02/01/30, tetu-s <tetu-s@xxxxxxxxx> writes:
> 本件、OSごとのFAQかInstall notesを作るか、mod_encodingのMakefileなり
> configureを賢くするかしませんか>有志の方々

以前、Solaris2.xでmod_encodingやmod_dav L10Nがうまくインストールできな
い、という話が出ていましたが、結論をまとめた資料が見つからなかった(見
落としてるかもしれませんが)、自分で試行錯誤してみた結果をまとめてみま
した。

再検証がまだなので、どなたか検証作業に協力していただけると幸いです。

〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜

		 Solaris2.6 で mod_dav をインストール
		  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
◎用意したもの

・(apache_1.3.23.tar.gz)
・libiconv-1.7.tar.gz
・expat-1.95.2.tar.gz
・mod_encoding-20011211a.tar.gz
・mod_dav-1.0.3-1.3.6.tar.gz
・mod_dav-1.0.3-1.3.6-l10n.diff

======================================================================

◎前堤

・apacheはDSOサポート付きでコンパイルされている。
・GNU autoconfがインストールされている。

======================================================================

◎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>
----------------------------------------------------------------------

======================================================================
-- 
岩室元典 [E-Mail: vmi@xxxxxxxxxxxxxxxxxx / iwa@xxxxxxxxxxxxxxxxx]
「しあわせでしたーーーーーーーーーーーーーーーーーーーーーーーーっ!!」
(「イリヤの空、UFOの夏 その2」秋山瑞人/電撃文庫)