[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


以上