2011年2月24日木曜日

CentOS5.5にmod-chxj_0.12.37

結構ハマったわりにはネット上に情報がないので、書いておく。

前提は、openssl, apacheはソースからコンパイルしたものを使い、それぞれopenssl0.9.8oが/home/opensslに、apache2.2.16が/home/httpdにインストールされている。
あちこちで書かれている前提パッケージはすでにインストール済みとする。

まず引っかかったのは、make。

$ ./configure \
> --with-apache-header=/home/httpd/include \
> --with-apxs=/home/httpd/bin/apxs \
> --with-apr-config=/home/httpd/bin/apr-1-config \
> --with-apu-config=/home/httpd/bin/apu-1-config \
> --with-openssl=/home/openssl


でconfigureするとmakeで、

(cd serf; CFLAGS=-fPIC CXXFLAGS=-fPIC ./configure --enable-shared --with-apr=`dirname /home/httpd/bin/apr-1-config` --with-apr-util=`dirname /home/httpd/bin/apu-1-config` --with-openssl /home/openssl; make)
configure: WARNING: you should use --build, --host, --target
configure: WARNING: invalid host type: /home/openssl
checking for chosen layout... Serf
checking for working mkdir -p... yes
checking build system type... Invalid configuration `/home/openssl': machine `/home/openssl' not recognized
configure: error: /bin/sh build/config.sub /home/openssl failed

なんで/home/opensslでinavlid host typeとか言われるんだ?と思ってよく見てみると、src/serfの下でconfigureやってて、--with-opensslと/home/opensslの間に=がない。
直接src/Makefileの該当個所を変更して、コンパイルは通った。

インストールしてapacheを再起動すると今度は、
# ./apachectl restart
httpd: Syntax error on line 427 of /home/httpd/conf/httpd.conf: Cannot load /home/httpd/modules/mod_chxj.so into server: /home/httpd/modules/mod_chxj.so: undefined symbol: libiconv

0.8.5のインストール手順を参考にしてlibiconvをソースから入れたのがいけなかったらしく、最新はlibiconvは必要ないとのこと。

/usr/local/libの下のlibiconv関係のライブラリ(3つ)削除、/usr/local/includeの下のiconv関係のヘッダ(3つ)削除して、configureからやり直して、起動できた。

0 件のコメント:

コメントを投稿