Apache Portable Runtime (APR) es un set de librerias para mejorar la performance del las aplicaciones sobre el sistema operativo en el cual corren. Apache Tomcat es uno de los casos donde se sabe que es muy bueno sirviendo request a Java Servlets o JSP pero es malo sirviendo contenido estatico. Apache Server es fantastico haciendo esa tarea ya que le da toda la responsabilidad al sistema operativo. Instalando APR sobre Tomcat nos ayuda a que todas las operaciones IO sean nativas para el sistema operativo.

Instalar APR no es nada facil, me tomo 3 dias en total y mucha lectura. Aca un resumen de actividades para instalar APR en un Ubuntu (Debian).

  1. Primero se tienen que instalar las librerias necesarias para poder compilar APR y Tomcat Native.

apt-get install binutils gcc gcc-4.2 libgomp1 libapr1 libc6-dev g  

  • En segundo lugar tenemos que hacer download de la version de Apache APR u obteniendolo desde aca.

  • wget http://apache.adcserver.com.ar/apr/apr-1.3.3.tar.gz
    
    tar -xvf apr-1.3.3.tar.gz
    

    Una vez descomprimido el TAR file ingresamos al directorio y procedemos a compilar.

    ./configure
    make
    make install
    

  • Tenemos que tener instalado el JDK y lo podemos obtener de esta manera (1.5 )

  • apt-get install openjdk-6-jdk
    

  • Ahora vamos al tomcat donde si no bajaste la version lo podes hacer desde aca.

  • wget http://apache.patan.com.ar/tomcat/tomcat-6/v6.0.18/bin/apache-tomcat-6.0.18.tar.gz
    
    untar -xvf apache-tomcat-6.0.18.tar.gz
    

  • Una vez que tenemos tomcat ya en nuestro disco vamos a navegar y descomprimir el TAR file de tomcat-native.

  • mv apache-tomcat-6.0.18 tomcat
    cd tomcat/bin
    tar -xvf tomcat-native.tar.gz
    cd tomcat-native
    
    ./configure --with-apr=/usr/local/apr --with-java-home=/usr/lib/jvm/java-6-openjdk --prefix=/root/tomcat
    
    make && make install
    

    Nota: el –with-java-home debe apuntar a tu JDK y –prefix a tu instalacion de tomcat.

  • El proximo paso es setear un par de variables en tu daemon script o batch script de inicializacion de tomcat. (Para inciar tomcat como daemon en linux Ver Articulo). Si tu script de inicializacion de Tomcat es un daemon hace lo siguiente.

  • nano /etc/init.d/tomcatd
    

    Agregar al top del file esto

    set LH_LIBRARY_PATH=/usr/local/apr/lib
    LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/tomcat/lib
    export LD_LIBRARY_PATH
    

  • Ahora viene una parte no muy entendible. Para que funcione esto tiene que estar desabilitado IPV6. Si, como escucharon, hay que deshabilitar ipv6 para hacer funcionar estos lib y eso se hace en el file aliases.

  • nano /etc/modprobe.d/aliases
    

    Se debe cambiar la linea que dice:

    alias net-pf-10 ipv6
    

    por esto…

    alias net-pf-10 off
    

  • Como ultimo paso al cambiar lo de ipv6 hacer un reboot del server.

    1. Esto es todo para poder hacer correr tomcat de forma casi nativa al sistema operativo, en este caso un Debian. Que lo disfruten.