[Subject Prev][Subject Next][Thread Prev][Thread Next][Subject Index][Thread Index]
[webdav-jp:0172] Re: Fw: Re: mod_encoding-20011211a を組み込むと apache が起動しない
安田です。
佐藤@奈良先端 さんのご協力により
apache を起動することができました。
どうもありがとうございました >佐藤さん
以下、私と佐藤さんのメールのやり取りをまとめ、
MLの情報とさせていただきます。
長くなりますがご了承ください。
【現象】
mod_encoding20011211a と libiconv を
インストールし、apachectl start すると、
Syntax error on line 1077 of /var/local/apache/conf/httpd.conf:
Cannot load /var/local/apache/libexec/mod_encoding.so into server: ld.so.1: /var
/local/apache/bin/httpd: 重大なエラー: 再配置エラー: ファイル /var/local/apache/
libexec/mod_encoding.so: シンボル libiconv: 参照シンボルが見つかりません。
/var/local/apache/bin/apachectl start: httpd could not be started
というエラーがでて起動しない。
【環境】
SunOS hostname 5.8 Generic_108528-12 sun4u sparc SUNW,Ultra-5_10
apache: 1.3.20(Unix)
webDAV: 1.0.3-1.3.6
mod_encoding: mod_encoding-20011211a
libiconv: libiconv-1.6.1
# gcc -v
Reading specs from /usr/local/lib/gcc-lib/sparc-sun-solaris2.8/2.95.3/specs
gcc version 2.95.3 20010315 (release)
【対策】
・libiconv_hook.so が作成されていないことを確認
# cd ~/mod_encoding~/ (mod_encodingが展開されたディレクトリ)
# nm lib/libiconv_hook.so | grep iconv_open
nm: lib/libiconv_hook.so: ファイルもディレクトリもありません。
1.mod_encoding~/lib/Makefile の
LIBS =
#LIBS = -liconv
を、
#LIBS =
LIBS = -liconv
に書き換える。
2.make
3.makeでエラーが出たら、1.と同じ lib/Makefile の
lib/Makefileの
$(CC) -shared -o $@ $(OBJS) $(LIBS)
を、
ar -q $@ $(OBJS) $(LIBS) /usr/local/lib/libiconv.so
に書き換える(/usr/local/lib は libiconv.so をインストール
した場所によって変える)
4.make
5.make中に
ar: cannot open -liconv
というエラーが出るが無視する。
6.ls して libiconv_hook.so が作成されていることを確認する。
7.nm libiconv_hook.so | grep iconv_open と入力し、
# nm lib/libiconv_hook.so | grep iconv_open
[12] | 0| 0|NOTY |GLOB |0 |UNDEF |libiconv_open
[7] | 0| 48|FUNC |LOCL |0 |2 |local_iconv_open
[7] | 0| 236|FUNC |LOCL |0 |2 |ja_auto_iconv_open
[7] | 200| 88|FUNC |LOCL |0 |2 |mssjis_iconv_open
[754] | 96200| 1796|FUNC |GLOB |0 |8 |libiconv_open
#
libiconvがリンクされていることを確認する。
8.mod_encofing^/Makefile の
LIBS = -Llib -liconv_hook
となっていることを確認する。(違う値ならば変更する)
*9.同じく mod_encoding^/Makefile の
$(APXS) -c $(DEFS) $(INCS) $(LIBS) -Wc,-Wall $<
を、
$(APXS) -c $(DEFS) $(INCS) $(LIBS) -Wc,-Wall $>
に変更する(行の最初はスペースではなく必ず tab にする)
10.make
11.make でエラーが出たら、
$(APXS) -c $(DEFS) $(INCS) $(LIBS) -Wc,-Wall $>
を
$(APXS) -c $(DEFS) $(INCS) $(LIBS) -Wc,-Wall $?
に書き換える。
12.make
13.make install
*9. gmake がインストールされていれば mod_encoding^/Makefile
を変更しないで gmake する。その後、make install
14.apache/conf/httpd.conf に
LoadModule dav_module libexec/libdav.so
LoadModule encoding_module libexec/mod_encoding.so
AddModule mod_encoding.c
など、それぞれの行が記述されていることを確認する。
15.apachectl start
以上