Tabla de Contenidos

Configuración de Tomcat como Módulo de Apache

\t\t\t\t


Advertencia

Este documento es privado y es de uso exclusivo de sus autores y de SKINA TECH. Cualquier uso sin una autorización escrita es contra le ley de derechos de autor y de propiedad intelectual, y será motivo de una acción legal.


Descripción

Este documento muestra como podemos montar Tomcat 5 originalmente en Mandriva 2006.

Aunque Tomcat puede portarse como un servidor Web corriendo en el puerto 80 suele ser una
buena idea tener mejor Apache, él puede encargarse de la recepción de peticiones de jsp y
enviarlas al servidor Tomcat para que sean atendidas, quien a su vez retorna la info a apache para
que este se la envie al cliente.

Prerequisitos

Procedimiento

1. Instalar Java JDK

Evidentemente lo primero que necesitamos para desarrollar en Java es instalar el

kit de desarrollo (JDK) que podemos descargar desde la web de Sun. A la hora de 
 escribir este tutorial la última versión es la 5.0 Update 6. 
Sun provee dos paquetes, un RPM y un bin autoextraible, para este documento 
 utilizaremos la versión autoextraible (Linux self-extracting file) en lugar del paquete RPM.
 (Aunque el jefe prefiera RPMs) 
Tambien los RPMS se pueden convertir en DEBs usando la herramienta alien. 
Bueno esto es sacado de una pagina por ahi.. pero yo preferi hacerlo con el RPM. el .bin genera 
 el RPM que luego debe instalar 
su -

Introducir contraseña de root

cp -p jdk-1_5_0_06-linux-i586.bin /usr/local

cd /usr/local

chmod +x jdk-1_5_0_06-linux-i586.bin

./jdk-1_5_0_06-linux-i586.bin

rm jdk-1_5_0_06-linux-i586.bin

Por requerimientos de la aplicación que se quiso correr cuando se escribio este COMO se
instalo la version 1.4 de sdk

j2sdk-1_4_2_11-linux-i586-rpm.bin&File=j2sdk-1_4_2_11-linux-i586-rpm.bin

Esto extraerá el contenido del archivo en una nueva carpeta jdk1.5.0_06 en /usr/local(en caso
de que lo haga con los binarios si no lo deja en /usr/java). Ahora basta crear la variable de entorno
para indicar dónde está instalado el JDK y añadir a la variable PATH el directorio en el que se
encuentran los binarios para poder ejecutarlos desde cualquier sitio. Para ello abrimos el archivo
/etc/profile con nuestro editor favorito (como root) y añadimos las siguientes lí­neas al final:

cp -p jdk-1_4_2_11-linux-i586.bin /usr/local

cd /usr/local

chmod +x jdk-1_4_2_11-linux-i586.bin

./jdk-1_4_2_11-linux-i586.bin

rm jdk-1_4_2_11-linux-i586.bin

Esto extraerá el contenido del archivo en una nueva carpeta jdk1.5.0_06 en /usr/local. Ahora
basta crear la variable de entorno para indicar dónde está instalado el JDK y añadir a la
variable PATH el directorio en el que se encuentran los binarios para poder ejecutarlos desde
cualquier sitio. Para ello abrimos el archivo /etc/profile con nuestro editor favorito (como root)
y añadimos las siguientes lí­neas al final:

export JAVA_HOME=/usr/java/j2sdk1.4.2_11

export JAVA_BIN=/usr/java/j2sdk1.4.2_11/bin

export CLASSPATH=./:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/htmlconverter.jar:$CATALINA_BIN

export PATH=$PATH:$JAVA_HOME:$JAVA_BIN

NOTA: CATALINA_BIN  se define adelante con tomcat

Actualizamos las variables de entorno:

source /etc/profile

Si todo ha salido bien al escribir javac -version deberí­amos obtener el número de
versión del compilador de Java. En el caso de que algo halla salido mal el sistema
nos informará de que no encontró ningún ejecutable con ese nombre.

Bueno.. supongo que que ya tiene apache instalado y configurado.. sino remitase al COMO de Apache.

 

2. Ahora Instale Tomcat

Descargamos la aplicación desde su web. En este caso no tenemos más que descomprimir
el archivo en el directorio que queramos, ya que se trata de una aplicación Java.

cp -p apache-tomcat-5.0.28.tar.gz /usr/local/

cd /usr/local

tar xvzf apache-tomcat-5.0.28.tar.gz

rm apache-tomcat-5.0.28.tar.gz

De nuevo vamos a editar /etc/profile para añadir la variable de entorno CATALINA_HOME:

CATALINA_HOME=/usr/local/apache-tomcat-5.0.28

export CATALINA_HOME

Y actualizamos:

source /etc/profile

Por último ejecutamos el script de iniciación de tomcat:

/usr/local/apache-tomcat-5.0.28/bin/startup.sh

Deberí­as ver la página de bienvenida de Tomcat introduciendo la URL http://localhost:8080
en un navegador.

Por ahora vamos a parar Tomcat

/usr/local/apache-tomcat-5.0.28/bin/shutdown.sh

En este momento tenemos instalados ambos servidores que correrí­an de forma independiente, con Apache
escuchando en el puerto 80 y Tomcat escuchando en el 8080.

 

3. Compilar e instalar el conector JK

Existen dos versiones del conector, JK y JK2. Aunque parezca raro la versión que nos interesa instalar
es la primera, ya que la segunda está descontinuada. El código fuente se puede descargar desde la
web de Tomcat.

Vamos a compilar el módulo mod_jk.so (deberí­a colocarlo en la carpeta de módulos del servidor Apache):

cp -p jakarta-tomcat-connectors-1.2.15-src.tar.gz /usr/local/src/

cd /usr/local/src

tar xvzf jakarta-tomcat-connectors-1.2.15-src.tar.gz

rm jakarta-tomcat-connectors-1.2.15-src.tar.gz

cd jakarta-tomcat-connectors-1.2.15-src/jk/native/

./buildconf.sh

./configure –with-apxs=/usr/sbin/apxs

make

make install

En caso de que tenga problemas con apxs recuerde que son herramientas incluidas dentro del Apache-devel:
apache-devel-2.0.54-13mdk.i586.rpm, fue el paquete que instale en Mandriva 2006.

Y ahora sólo falta configurarlo. Creamos un nuevo archivo workers.properties en /etc/httpd/conf
con el siguiente contenido:

workers.tomcat_home=/usr/local/apache-tomcat-5.0.28/

workers.java_home=$JAVA_HOME

ps=/

worker.list=default

worker.default.port=8009

worker.default.host=localhost

worker.default.type=ajp13

worker.default.lbfactor=1

Editamos el archivo de configuración de Apache (/etc/httpd/conf/httpd2.conf) para cargar el
módulo. En la sección LoadModules añadimos:

LoadModule jk_module modules/mod_jk.so

Y al final del archivo:

JkWorkersFile “conf/workers.properties”

JkLogFile “logs/mod_jk.log”

JkLogLevel warn

JkMount /jsp-examples default

JkMount /jsp-examples/* default

JkMount es la lí­nea que indica a Apache que solicitudes reenviar a Tomcat. En este caso
llamaremos a Tomcat siempre que se intente acceder a cualquier archivo del directorio
jsp-examples, donde se guardan algunos ejemplos para demostrar el uso de JSP,
utilizando el protocolo definido por “default”. También podrí­amos haber utilizado algo
del estilo *.jsp para ejecutar Tomcat sólo en el caso de que los archivos terminaran con
esta extensión.

Por último iniciamos Apache y Tomcat:

/usr/local/apache-tomcat-5.5.16/bin/startup.sh

/usr/local/apache/bin/apachectl start

Al introducir la URL http://localhost deberí­amos ver la web de bienvenida de Apache, al
introducir http://localhost:8080 la de Tomcat, y con http://localhost/jsp-examples Apache
enviará la petición a Tomcat.

ALgo que le puede ser muy util es el archivo para iniciar tomcat como servicios del sistema:

Cree un archivo tomcat5 en /etc/init.d/ y dele permisos de ejecución

touch /etc/init.d/tomcat5

chmod +x /etc/init.d7tomcat5
chown -f root:root /etc/init.d/tomcat5

chmod -f 0755 /etc/init.d/tomcat5

luego cree los

# chown -f root:root /etc/rc.d/init.d/jabberd2

# chmod -f 0755 /etc/rc.d/init.d/jabberd2


Cree los enlaces simbolicos según lo necesite:

# ln -s /etc/init.d/tomcat5 /etc/rc.d/rc0.d/K15tomcat5

# ln -s /etc/init.d/tomcat5 /etc/rc.d/rc1.d/K15tomcat5



# ln -s /etc/init.d/tomcat5 /etc/rc.d/rc2.d/S85tomcat5

# ln -s /etc/init.d/tomcat5 /etc/rc.d/rc2.d/K15tomcat5



# ln -s /etc/init.d/tomcat5 /etc/rc.d/rc3.d/S85tomcat5

# ln -s /etc/init.d/tomcat5 /etc/rc.d/rc3.d/K15tomcat5



# ln -s /etc/init.d/tomcat5 /etc/rc.d/rc4.d/S85tomcat5

# ln -s /etc/init.d/tomcat5 /etc/rc.d/rc4.d/K15tomcat5



# ln -s /etc/init.d/tomcat5 /etc/rc.d/rc5.d/S85tomcat5

# ln -s /etc/init.d/tomcat5 /etc/rc.d/rc5.d/K15tomcat5



# ln -s /etc/init.d/tomcat5 /etc/rc.d/rc6.d/K15tomcat5

El contenido del archivo es el siguiente:

#

# Start/Shutdown the Tomcat server

#

BIN=/usr/local/tomcat5/bin

export JAVA_HOME=/usr/java/j2sdk1.4.2_11

#export DISPLAY=:0.0

#

#

case “$1” in

stop)

# Shutdown Tomcat.

echo -n “Sending Tomcat processes the shutdown…”

$BIN/shutdown.sh

#

;;

start)

# Start Tomcat.

echo -n “Starting Tomcat Server…”

su - tomcat -c “$BIN/startup.sh & 2> /dev/null”

sleep 1

#$BIN/startup.sh tomcat

#

;;

*)

echo “Usage: $N {start|stop}” >&2

exit 1

;;

esac



exit 0

#

Ahora pruebe: # /etc/rc.d/init.d/ start

Posibles Problemas 

1.  java/lang/NoClassDefFoundError: java/lang/Object

 

 

Referencias 

05-Mayo-2006 Jhair A. Escobar v1.0 Primera version