JK2 build on Redhat Linux9

JK2をRedhat Linux9のRPMで提供されているhttpdと連携させるためのビルド方法を調べました。

現在使っているTomcatが4.1.27なので、jakarta-tomcat-connectors-4.1.27-src.tar.gz をダウンロードしました。最新版は4.1.29なので早目にバージョンアップしたいところですが、まずはJK2のコンパイルオプションを確認したかったので、このバージョンを使いました。

展開して、jakarta-tomcat-connectors-4.1.27-src/jk/native2 をカレントディレクトリにします。

$ sh buildconf.sh
libtoolize –force –automake –copy
aclocal
automake –copy –add-missing
configure.in: installing `scripts/build/unix/install-sh’
configure.in: installing `scripts/build/unix/mkinstalldirs’
configure.in: installing `scripts/build/unix/missing’
autoconf
$

configureファイルが作成されるので、どんなオプションがあるか調べてみて(./configure –help)、次のようなオプションがつかえることがわかりました。

./configure –with-apxs2=/usr/sbin/apxs \
–with-apache2=/usr/src/redhat/SOURCES/httpd-2.0.40 \
–with-apache2-include=/usr/include/httpd \
–with-apache2-lib=/usr/lib \
–with-tomcat41=/usr/local/tomcat \
–with-apr=/usr/src/redhat/SOURCES/httpd-2.0.40/srclib/apr \
–with-apr-include=/usr/src/redhat/SOURCES/httpd-2.0.40/srclib/apr/include \
–with-apr-lib=/usr/lib \
–with-java-home=/usr/local/jdk \
–with-jni

としたかったが、なぜか can’t locate エラーが何か所かでおきるため、最終的には次のようにしてみた。

./configure –with-apxs2=/usr/sbin/apxs \
–with-tomcat41=/usr/local/tomcat \
–with-apr=/usr/src/redhat/SOURCES/httpd-2.0.40/srclib/apr \
–with-apr-lib=/usr/lib \
–with-java-home=/usr/local/jdk \
–with-jni

これで jakarta-tomcat-connectors-4.1.27-src/jk/build のなかに so ファイルができあがるので、これを /usr/lib/httpd/modules/ へコピーして、/etc/httpd/conf/httpd.conf, /etc/httpd/conf/workers2.properties, /usr/local/tomcat/conf/server.conf を編集して設定をすれば良い。

で、結論から言うと、やっぱり Internal Error が発生しまくる。RPM版はあきらめようかなぁ。

JK2 build on Redhat Linux9」への2件のフィードバック

  1. どうもです。4.1.29版へ移行するときの参考にさせてもらいます。
    たぶん、そのことと、今回のInternal errorはちょっと関係なさそうです。4.1.27版を使っているので。8080を生かして使うと問題ないですから、httpdかJK2の問題だと思っています。それで両方とも自前でコンパイルしたのに変えたら嘘のようにエラーがでなくなりました。謎。

  2. こちらで試してみたところ、
    jakarta-tomcat-connectors-4.1.29-src.tar.gzは
    ワーカへのリクエストフォワード指定が正しく働かないという
    不具合がありました。ご参考まで。

コメントは停止中です。

同じカテゴリの記事: General