「Tomcat」 APR をインストールする

Tomcat インストール後、デフォルトの状態で起動すると、以下のようなメッセージが出力される。

情報: The APR based Apache Tomcat Native library which allows optimal performance in production 
environments was not found on the java.library.path: /usr/local/java/jdk1.6.0_30/jre/lib/i386/client:
/usr/local/java/jdk1.6.0_30/jre/lib/i386:/usr/local/java/jdk1.6.0_30/jre/../lib/i386:
/usr/java/packages/lib/i386:/lib:/usr/lib

server.xml に以下のようなリスナークラスの設定がされてて、これが原因みたい
( コメントアウトすると出力されなくなる )。
APR 関連のライブラリ探しに行ったけど、それが無かった的な感じっぽい。

<!--APR library loader. Documentation at /docs/apr.html -->
<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />

Apache Portable Runtime ( APR ) は、Web サーバの機能を強化するものみたいです。

http://tomcat.apache.org/tomcat-7.0-doc/apr.html
http://apr.apache.org/

Tomcat を Web サーバとして使うってあんまりないと思うし、このメッセージは別に動作に影響
与えるようなものでもないので、ほっといても特に問題はないと思う。

いつもはほっておくけど、今回はは APR インストールしてみてこいつが出力されないようにして
みたので、その時のメモ。
インストールは、上記の Tomcat のドキュメントを参考にやる。

以下の環境で実施。
CentOS 6.2
Tomcat 7.0.27
Java SE 6 Update 30

ドキュメントの Requirements を見ると、以下が必要みたいなので、ひとまずこいつらをインストールしてやる。
1. APR 1.2+ development headers (libapr1-dev package)
2. OpenSSL 0.9.7+ development headers (libssl-dev package)
3. JNI headers from Java compatible JDK 1.4+
4. GNU development environment (gcc, make)

1. APR
http://apr.apache.org/
APR 1.2 ってのがどうしも見つけられずだったので、1.4.6 をダウンロード。

tar zxvf apr-1.4.6.tar.gz
cd apr-1.4.6
./configure
make
make install

何も怒られることなくインストール終了しました。

2. OpenSSL
http://www.openssl.org/source/
openssl-0.9.8k.tar.gz をダウンロードする。
( 0.9.7 でやりたかったが、make で怒られる。
"i486" なるオプションが使ってる gcc のバージョン 4.4.6 にはないらしい
gcc の古いバージョンダウンロードしたらいけるんだろうけど、ちょっと
今はそんな元気ないんで、0.9.8k でやりました。 )

tar zxvf openssl-0.9.8k.tar.gz
cd openssl-0.9.8k
./config
make
make install

3. JDK
割愛

4. gcc、make
1、2 やっていれば既に入っているはず。
yum とかで適当に。


1 ~ 4 で必要なものはそろったので、いよいよ APR のインストールに移る。
[Tomcat インストールディレクトリ]/bin/tomcat-native.tar.gz を展開。

tar zxvf tomcat-native.tar.gz
cd tomcat-native-1.1.23-src/jni/native
./configure --with-apr=/usr/local/apr
make
make install

configre の際には APR がインストールされているディレクトリを指定してやる。
じゃないと「checking for APR... no」って言われちゃう。

make innstall まですると、以下のようなメッセージが出力される。

----------------------------------------------------------------------
Libraries have been installed in:
   /usr/local/apr/lib

If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR'
flag during linking and do at least one of the following:
   - add LIBDIR to the `LD_LIBRARY_PATH' environment variable
     during execution
   - add LIBDIR to the `LD_RUN_PATH' environment variable
     during linking
   - use the `-Wl,-rpath -Wl,LIBDIR' linker flag
   - have your system administrator add LIBDIR to `/etc/ld.so.conf'

See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------

4 つぐらい方法が紹介されてて、そのうちどれかひとつやれってことかな。
今回は LD_LIBRARY_PATH に /usr/local/apr/lib を設定してやる方法を採用。

export LD_LIBRARY_PATH=/usr/local/apr/lib:$LD_LIBRARY_PATH


上記で APR のインストールは完了。
Tomcat を起動しても、本件のメッセージは出力されず、以下のようになる。
ちゃんと APR のライブラリをロードできているようです。

2012/04/19 2:26:43 org.apache.catalina.core.AprLifecycleListener init
情報: Loaded APR based Apache Tomcat Native library 1.1.23.