Instalar Tomcat 5.5 como módulo de Apache2 en Debian 4 Etch
05 de Noviembre de 2007 en Sistemas, Linux
Lecturas: 18,327

Apache TomcatSiguiendo con la instalación del servidor Debian 4 en un Compaq Proliant DL 360 que empezamos en el anterior artículo, esta vez toca instalar un Tomcat para que acepte las conexiones desde un Apache. Para ello debemos tener instalado un Apache (ver el anterior artículo) y realizar los pasos que se describen aquí, que consiste en instalar el JDK de Java, instalar Tomcat 5.5 e instalar el módulo conector mod_jk.

Instalar Java JDK

1.- Bajar JDK 6 Update 3
- Ir a http://java.sun.com/javase/downloads/index.jsp
- Pinchar en JDK 6 Update 3
- Pinchar en Linux Platform > Linux self-extracting file (jdk-6u3-linux-i586.bin)
Guardamos el archivo bajado en en /root/tmp/
2.- Crear directorio para java

$ mkdir /usr/java

3.- Mover JDK al directorio creado

$ mv /root/tmp/*.bin /usr/java

4.- Establecer derechos de ejecución

$ chmod a+x /usr/java/*.bin

5.- Ejecutarlo

$ /usr/java/jdk-6u3-linux-i586.bin

Aceptar licencia? yes
A continuación él mismo desempaqueta e instala
6.- Añadir variables de entorno

$ vim /root/.bashrc

Añadir las siguientes líneas:

export JAVA_HOME=/usr/java/jdk1.6.0_03
export PATH=$JAVA_HOME/bin:$PATH

7.- Debemos reiniciar la sesión root (el archivo de variables de entorno depende del usuario). Si estamos con putty salimos y volvemos a entrar. Si estamos en la propia consola cerramos la sesión e iniciamos otra vez.
8.- Probamos que JDK está instalado y funcionando:

$ java -version

Saldrá un mensaje como:

java version "1.6.0_03"
Java(TM) SE Runtime Environment (build 1.6.0_03-b05)
Java HotSpot(TM) Server VM (build 1.6.0_03-b05, mixed mode)

Instalar Tomcat

1.- Instalar Tomcat 5.5 desde el repositorio

$ apt-get install tomcat5.5

Se descargan paquetes y se instala.
2.- Comprobamos que funciona con la configuración por defecto

$ netstat -tapn

Sale una lista con los puertos escuchando, y debería salir el puerto 8180 en LISTEN iniciado por el proceso java

Instalar conector Tomcat - Apache mod_jk

Se necesita Apache y Tomcat funcionando. El funcionamiento del conector es el siguiente:
- El cliente llama a http://....:8080 (por ejemplo)
- Apache recoge la petición y la procesa por el Virtual Host configurado para escuchar el puerto 8080
- La configuración del Virtual Host reenvía la petición al worker del mod_jk definido.
- El worker redirecciona la petición al puerto 8009 del puente con Tomcat definido en workers.properties
- Tomcat recoge la petición y la procesa

1.- Instalar mod_jk

$ apt-get install libapache2-mod-jk

2.- Editar configuración del mod_jk

$ vim /etc/libapache2-mod-jk/workers.properties

Editamos / Definimos los siguientes parámetros:

workers.tomcat_home=/usr/share/tomcat5.5
workers.java_home=/usr/java/jdk1.6.0_03
ps=/
worker.list=ajp13_worker
worker.ajp13_worker.port=8009
worker.ajp13_worker.host=localhost
worker.ajp13_worker.type=ajp13
worker.ajp13_worker.cachesize=10
worker.ajp13_worker.cache_timeout=600
worker.ajp13_worker.socket_timeout=300

La línea referente al ps depende del sistema dónde está montado. En Linux es /, y en Windows es \.
3.- Crear y editar la configuración del mod_jk para el uso de apache

$ touch /etc/apache2/mod_jk.conf
$ vim /etc/apache2/mod_jk.conf

Añadimos las siguientes líneas:

JkWorkersFile /etc/libapache2-mod-jk/workers.properties
JkShmFile /var/log/apache2/mod_jk.shm
JkLogFile /var/log/apache2/mod_jk.log
JkLogLevel info
JkLogStampFormat "[%a %b %d %H:%S %Y] "

4.- Añadir configuración a la declaración del módulo

$ vim /etc/apache2/mods-enabled/jk.load

Debajo del LoadModule ponemos:

Include /etc/apache2/mod_jk.conf

5.- Creamos el directorio para nuestra aplicación

$ mkdir /var/tomcat/webapps/miaplicacion

6.- Añadimos un nuevo Virtual Host en Apache

$ vim /etc/apache2/sites-enabled/000-default

Modificamos la definición inicial del nombre de VirtualHost, de NameVirtualHost * a:

NameVirtualHost *:80
NameVirtualHost *:8080

Modificamos la definición del VirtualHost por defecto añadiendo :80 después del asterisco:

HTML:
  1. <VirtualHost *:80>

Añadimos al final del archivo el nuevo VirtualHost

HTML:
  1. <VirtualHost *:8080>
  2. ServerAdmin webmaster@localhost
  3. ErrorLog /var/log/tomcat5.5/miaplicacion_error.log
  4. CustomLog /var/log/tomcat_5.5/miaplicacion_access.log common
  5. JkMount /* ajp13_worker
  6. <LocationMatch ".*WEB-INF.*">
  7. deny from all
  8. </LocationMatch>
  9. </VirtualHost>

7.- Añadimos el nuevo puerto a ser escuchado

$ vim /etc/apache2/ports.conf

Añadimos al final

Listen 8080

8.- Reiniciamos Tomcat y Apache

$ /etc/init.d/apache2 restart
$ /etc/init.d/tomcat5.5 restart

Tags: , , , , , , , ,
 Enviar a Fresqui

Leer los Comentarios

[ # 8214 ] Comment desde Matias Aguirre [06 de Noviembre de 2007, 08:23]

Muy buen articulo, muchas gracias.

[ # 8251 ] Comment desde Xavi [07 de Noviembre de 2007, 08:50]

Muchas gracias Matias ;)

[ # 9124 ] Comment desde Dishwalla [16 de Noviembre de 2007, 05:43]

cuando agregas el virtual host:8080
hay un error en la direccion de /var/log/tomcat_5.5/miaplicacion_acc…..
corregir es ::
/var/log/tomcat5.5/miaplicacion_acc…..
bueno solo eso ….
pero si funciona … gracias ……….. chau

[ # 11077 ] Comment desde carmen [07 de Diciembre de 2007, 10:12]

no sé cómo solucionar el error después de dar muchas vueltas.

debian:/etc/apache2/sites-enabled# /etc/init.d/apache2 restart
Forcing reload of web server (apache2)…[Fri Dec 07 19:06:25 2007] [warn] NameVirtualHost *:8080 has no VirtualHosts
[Fri Dec 07 19:06:25 2007] [warn] NameVirtualHost *:80 has no VirtualHosts
[Fri Dec 07 19:06:25 2007] [warn] NameVirtualHost *:8080 has no VirtualHosts
[Fri Dec 07 19:06:25 2007] [warn] NameVirtualHost *:80 has no VirtualHosts
httpd (no pid file) not running
[Fri Dec 07 19:06:36 2007] [warn] NameVirtualHost *:8080 has no VirtualHosts
[Fri Dec 07 19:06:36 2007] [warn] NameVirtualHost *:80 has no VirtualHosts
[Fri Dec 07 19:06:36 2007] [warn] NameVirtualHost *:8080 has no VirtualHosts
[Fri Dec 07 19:06:36 2007] [warn] NameVirtualHost *:80 has no VirtualHosts

[ # 11368 ] Comment desde alex [10 de Diciembre de 2007, 10:05]

no puedo instalar el java jdk me puden ayudar

[ # 11492 ] Comment desde Xavi [11 de Diciembre de 2007, 08:47]

Carmen: Creo que te faltan cosas a definir en tu archivo de configuración del sitio. O te has dejado las primeras dos líneas o el último trozo dónde se definen las propiedades del VirtualHost.

Alex: veremos que podemos hacer. Expón el problema. :)

Saludos!

[ # 19768 ] Comment desde Juan Antonio [14 de Abril de 2008, 09:54]

Carmen, yo tenia el mismo error, para solucionarlo has de sustituir * por localhost y listo

[ # 21837 ] Comment desde carlos [13 de Mayo de 2008, 10:17]

instale el tomcat: apt-get install tomcat5.5 y despues hice netstat -tapn y no aparecio, reinicie la compu y tampoco, de hecho hice /etc/init.d/tomcat5.5 start y nada y cuando hice /etc/init.d/tomcat5.5 stop aparece esto: Stopping Tomcat servlet engine: tomcat5.5 (not running).
¿que es lo que puede ser?

[ # 21857 ] Comment desde carlos [14 de Mayo de 2008, 03:29]

Hola instale el tomcat y a las hora de hacer netstat -tapn no aparece, reinicie la computadora y no arranca automaticamente y hago /etc/init.d/tomcat5.5 start y no pasa nada y si pongo /etc/init.d/tomcat5.5 stop me dice que el servicio no arranco. ¿Que es lo que pasa?.

[ # 23241 ] Comment desde luis [30 de Mayo de 2008, 02:01]

Intenta arrancar el tomcat así:

/…./tomcat5.5/bin/catalina.sh start

[ # 24998 ] Comment desde Francisco [17 de Junio de 2008, 05:05]

Realice todos los pasos como dices, solo que al reiniciar el apache2 me sale el siguiente error y no inicia:

Forcing reload of web server (apache2)…apache2: Could not reliably determine the server’s fully qualified domain name, using 127.0.0.1 for ServerName
waiting apache2: Could not reliably determine the server’s fully qualified domain name, using 127.0.0.1 for ServerName

Podrias ayudarme
Gracias

[ # 25000 ] Comment desde Xavi [17 de Junio de 2008, 05:10]

Creo que te has dejado de especificar el nombre de la máquina (hostname), tanto a nivel de Apache como a nivel del propio sistema. Lee el siguiente hilo:

http://www.linuxquestions.org/questions/linux-server-73/apache-giving-the-error-could-not-determine-the-servers-fully-qualified-domain-name-280677/

Salu10

[ # 25013 ] Comment desde Francisco [17 de Junio de 2008, 07:42]

Agregue el ServerName localhost en el httpd.conf y reinicie el servicio. Ya no tengo nignún problema. Le pongo http://localhost y me aparece “it works”, ok. Hago lo mismo con http://localhost:8080 y se queda en blanco. Supongo porque no hay ninguna aplicación pero el servidor esta trabajando. Ahora este servidor quiero verlo desde internet poniendo el dominio que corresponde y no hace nada. No conecta. Porque? Tengo una IP estatica con el dominio dsrchis.homelinux.org. Se supone que desde el navegador en una maquina de internet debería entrar mínimo al apache y si le agrego :80 debiera entrar al tomcat. Correcto?, que puedo hacer

[ # 41216 ] Comment desde Daniel Diaz [21 de Octubre de 2008, 04:38]

cuando quiero restartear el apache me da este error

directive requires additional arguments

[ # 48878 ] Comment desde Paquito [19 de Diciembre de 2008, 11:54]

Muy Bueno el manual Mtr Matias, como siempre una vez mas aclaras muchas dudas con tus manuales.

gracias por todo lo que haces

[ # 48882 ] Comment desde Xavi [19 de Diciembre de 2008, 11:57]

@paquito: cómo que Matias? xD

[ # 48909 ] Comment desde Paquito [19 de Diciembre de 2008, 01:16]

No eres Matias? El de GH???

Escribe un Comentario





Estadísticas