Статьи

Ubuntu: установка Apache Portable Runtime (APR) для Tomcat

После прочтения « Представляем Apache Tomcat 6 ? презентация Mladen Turk Я решил включить собственную библиотеку Apache Portable Runtime (APR) для Tomcat .

Это должно было быть так же легко, как

1
2
3
sudo ./configure
sudo make
sudo make install

но, как вы можете догадаться, это было немного больше, чем это.

1. Установка Apache APR .

« Большинство дистрибутивов Linux будут поставлять пакеты для APR », а дистрибутивы Linode — нет, у меня была пустая коробка с Ubuntu 10.10 без «gcc» и «make», не говоря уже о Apache APR. Слава Богу, сеть не была проблемой, в отличие от прошлого раза .

1
2
3
4
5
6
7
8
wget http://apache.spd.co.il/apr/apr-1.4.5.tar.gz
tar -xzf apr-1.4.5.tar.gz
rm apr-1.4.5.tar.gz
cd apr-1.4.5/
sudo apt-get install make
sudo ./configure
sudo make
sudo make install

2. Установка Tomcat Native .

1
2
3
4
5
wget http://off.co.il/apache//tomcat/tomcat-connectors/native/1.1.20/source/tomcat-native-1.1.20-src.tar.gz
tar -xzf tomcat-native-1.1.20-src.tar.gz
rm tomcat-native-1.1.20-src.tar.gz
cd tomcat-native-1.1.20-src/jni/native
sudo ./configure --with-apr=/usr/local/apr

Результат был

1
2
3
4
5
checking build system type... x86_64-unknown-linux-gnu
..
checking for APR... yes
..
checking for JDK location (please wait)... checking Try to guess JDK location... configure: error: can't locate a valid JDK location

Ой! « Не удается найти действительное местоположение JDK »? На моей машине?

1
2
3
4
5
6
7
8
$ which java
/home/user/java/jdk/bin/java
$ echo $JAVA_HOME
/home/user/java/jdk
$ java -version
java version "1.6.0_24"
Java(TM) SE Runtime Environment (build 1.6.0_24-b07)
Java HotSpot(TM) 64-Bit Server VM (build 19.1-b02, mixed mode)

Но по какой-то причине скрипт « tomcat-native-1.1.20-src / jni / native / configure» не увидел мою переменную « JAVA_HOME », несмотря ни на что, и даже установка « sun-java6-jdk » не сильно помогла. После исправления скрипта «configure» для создания дампов местоположений он искал «valid JDK», который у меня был:

01
02
03
04
05
06
07
08
09
10
11
12
13
14
..
configure: [/usr/local/1.6.1]
configure: [/usr/local/IBMJava2-1.6.0]
configure: [/usr/local/java1.6.0]
configure: [/usr/local/java-1.6.0]
configure: [/usr/local/jdk1.6.0]
configure: [/usr/local/jdk-1.6.0]
configure: [/usr/local/1.6.0]
configure: [/usr/local/IBMJava2-1.6]
configure: [/usr/local/java1.6]
configure: [/usr/local/java-1.6]
configure: [/usr/local/jdk1.6]
configure: [/usr/local/jdk-1.6]
..

Хорошо, теперь у вас есть это сейчас:

1
2
3
4
sudo ln -s ~/java/jdk/ /usr/local/jdk-1.6
sudo ./configure --with-apr=/usr/local/apr
sudo make
sudo make install

И с

1
2
3
..
export LD_LIBRARY_PATH='$LD_LIBRARY_PATH:/usr/local/apr/lib'
..

Теперь у меня было красивое сообщение в журнале « catalina.out »:

1
2
3
4
5
6
7
..
Mar 7, 2011 11:51:02 PM org.apache.catalina.core.AprLifecycleListener init
INFO: Loaded APR based Apache Tomcat Native library 1.1.20.
Mar 7, 2011 11:51:02 PM org.apache.catalina.core.AprLifecycleListener init
INFO: APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].
Mar 7, 2011 11:51:03 PM org.apache.coyote.AbstractProtocolHandler init
..

Как только evgeny-goldin.org переместится в новое место на новой коробке Linode, он получит выгоду от этой оптимизации производительности. Я опишу процесс миграции и причины этого чуть позже, как только это будет сделано.

Справка: Ubuntu: Установка Apache Portable Runtime (APR) для Tomcat от нашего партнера по JCG   Евгений Гольдин в блоге Goldin ++ .