CentOS 6のtomcat6にtcnativeを追加する
CentOS 6のbaseリポジトリーに含まれるtomcat6-*はインストールして普通に実行すると「ネイティブライブラリがないよー」という警告が出る(動作には問題ない)。
jsvcは不要だがパフォーマンスを考えるとtcnativeは導入したいところ。
ところがtcnativeはCentOS 6のbaseリポジトリーには含まれていない。
tomcatごと本家から/usr/localにぶち込んでもいいが、baseリポジトリーに入っているtomcat6はとても便利なのでできればそれは使いたい。
なのでtcnativeのみソースからコンパイルして使う事にする。
まず、本家からTC-Native 1.1.29のソースを取ってきて、/usr/local/srcに展開する。configureのログを見るにライブラリとしてはapr-develとopenssl-develとopenjdk-develを入れれば多分大丈夫っぽい。
# yum install apr-devel openssl-devel java-1.7.0-openjdk-devel gcc make # tar xzf tomcat-native-1.1.29-src.tar.gz -C /usr/local/src # cd /usr/local/src/tomcat-native-1.1.29-src/jni/native # ./configure --with-apr=/usr --with-ssl=/usr --with-java-home=/usr/lib/jvm/java-1.7.0 # make install
これで、/usr/local/apr/libにtcnative-1.so.0.1.29というライブラリーが生成されるのでこれを使う設定を行う。
# vi /etc/tomcat6/tomcat6.conf
java.library.path=/usr/libというのがあると思うのでこれをjava.library.path=/usr/local/apr/libに書き換えてtomcat6を再起動すれば良い。