====== 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 =====
* Apache
* Tomcat
* Java\\
===== 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 ====
==== ====
[[http://tomcat.apache.org/|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 [[http://tomcat.apache.org/download-connectors.cgi|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\\
\\
\\