WebLogic用にApacheを構成しようとして少々はまる
Solaris10上で、WebLogic9.2用にApache2.2を構成させようとしたときの話。
$ PATH=/usr/local/bin:/usr/bin:/usr/ccs/bin; export PATH $ LD_LIBRARY_PATH=/usr/local/lib:/usr/lib; export LD_LIBRARY_PATH $ $ cd /usr/local/src $ gzip -dc httpd-2.2.11.tar.gz |tar xvf - $ cd httpd-2.2.11 $ $ ./configure --prefix=/usr/local/apache2 $ make $ make install
で、バージョンの確認。
$ cd /usr/local/apache2 $ ./apachectl -V
ld.so.1: httpd: 重大なエラー: /usr/local/lib/libgcc_s.so.1: ELF クラスが正しくありません: ELFCLASS32 強制終了
ということで、libgccの64bit対応版を指すよう設定。
$ LD_LIBRARY_PATH=/usr/sfw/lib/sparcv9:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH $ ./apachectl -V
Server version: Apache/2.2.11 (Unix) Server built: Jul 30 2009 09:44:58 Server's Module Magic Number: 20051115:21 Server loaded: APR 1.3.3, APR-Util 1.3.4 Compiled using: APR 1.3.3, APR-Util 1.3.4 Architecture: 64-bit Server MPM: Prefork threaded: no forked: yes (variable process count) Server compiled with.... (以下略)
これで、Apacheが64bitになっている。
httpd.confのServerNameを書き換えてから設定を確認。
$ ./apachectl -t
Syntax OK
次にhttpd.confに以下を追記。
LoadModule weblogic_module modules/mod_wl_22.so
WebLogicのプラグインをモジュールディレクトリにコピーしてから、設定を再確認。
$ cp -p /opt/bea/weblogic92/server/plugin/solaris/sparc/mod_wl_22.so /usr/local/apache2/modules/ $ ./apachectl -t
httpd: Syntax error on line 411 of /usr/local/apache2/conf/httpd.conf: Cannot load /usr/local/apache2/modules/mod_wl_22.so into server: ld.so.1: httpd: fatal: /usr/local/apache2/modules/mod_wl_22.so: wrong ELF class: ELFCLASS32
プラグインモジュールを確認してみる。
$ file modules/mod_wl_22.so
modules/mod_wl_22.so: ELF 32-bit MSB dynamic lib SPARC Version 1, dynamically linked, not stripped
32bit版じゃ動くはずないよね。ということで64bit版のプラグインを探してみるも見つからず。
Solaris用のプラグインは32bit版しか(今のところ)ないことに、この時点で気づく。(泣)
というわけで、結局Apacheを32bitで再コンパイルことに。
$ gcc -v
(省略) gcc version 3.4.4
このバージョンはデフォルト64bitでコンパイルするみたいなので、明示的に32bitを指定。
$ rm -fr /usr/local/apache2 /usr/local/src/httpd-2.2.11 $ cd /usr/local/src $ gzip -dc httpd-2.2.11.tar.gz |tar xvf - $ cd httpd-2.2.11 $ $ CC="gcc -m32" ./configure --prefix=/usr/local/apache2 $ make $ make install