Cómo instalar Tomcat 9 en Debian 8 Jessie

En esta entrada veremos cómo instalar Tomcat 9 en Debian 8 Jessie paso a paso, de modo que podrás disfrutar de las últimas versiones estables de este servidor de aplicaciones Java sobre tu viejo y confiable servidor o VPS Debian.

Antes de instalar Tomcat 9 en Debian 8 Jessie

Si quieres seguir los pasos de esta guía de instalación de Tomcat 9 en Debian 8 Jessie deberías cumplir los siguientes pasos:

  • Un sistema Debian 8 Jessie actualizado.
  • Java 8 JRE instalado.
  • Acceso a terminal de comandos con un usuario con capacidades de sudo.
  • Conexión a Internet.

En caso de no disponer aún del entorno necesario es muy recomendable consultar previamente nuestra guía de instalación de Java 8 en Debian 8 Jessie.

Cómo descargar Tomcat 9 para Debian 8 Jessie

Vamos a descargar Tomcat 9 para Debian 8 Jessie desde la sección de descargas del sitio oficial del proyecto, ya que los paquetes disponibles en los repositorios del sistema están muy anticuados.

como descargar tomcat 9 para debian 8 jessie

Encontraremos la última versión estable de Tomcat 9 para Debian 8 en formatos .zip y .tar.gz, siendo este último formato el que elegiremos para descargar, en este caso desde consola con la herramienta wget:

~$ wget https://downloads.apache.org/tomcat/tomcat-9/v9.0.89/bin/apache-tomcat-9.0.89.tar.gz

Cómo instalar Tomcat 9 en Debian 8 Jessie

Para instalar Tomcat 9 en Debian 8 Jessie con éxito debemos preparar también el sistema, para lo que empezaremos instalando el servicio D-bus:

~$ sudo apt install -y dbus

Creamos una ruta donde alojar los archivos de la aplicación:

~$ sudo mkdir /opt/tomcat

Descomprimimos el paquete que acabamos de descargar directamente en el subdirectorio que hemos creado:

~$ sudo tar xf apache-tomcat-9.0.89.tar.gz -C /opt/tomcat/

Como el nuevo subdirectorio que se crea contiene números de versión en su nombre, creamos un enlace simbólico sin números:

~$ sudo ln -s /opt/tomcat/apache-tomcat-9.0.89 /opt/tomcat/apache-tomcat

Creamos el usuario con el que correrá el servicio Tomcat 9:

~$ sudo useradd -U -d /opt/tomcat -s /bin/false tomcat

Y concedemos la propiedad de los archivos de Tomcat 9 a este nuevo usuario tomcat:

~$ sudo chown -R tomcat:tomcat /opt/tomcat/

Para poder manejar el servicio Tomcat 9 necesitaremos crear el correspondiente archivo de configuración:

~$ sudo nano /etc/systemd/system/tomcat.service

Con un contenido similar a este:

[Unit]
Description=Tomcat 9.0 servlet container for Debian 8 Jessie
After=network.target

[Service]
Type=forking
User=tomcat
Group=tomcat
Environment="JAVA_OPTS=-Djava.security.egd=file:///dev/urandom"
Environment="CATALINA_BASE=/opt/tomcat/apache-tomcat"
Environment="CATALINA_HOME=/opt/tomcat/apache-tomcat"
Environment="CATALINA_PID=/opt/tomcat/apache-tomcat/temp/tomcat.pid"
Environment="CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC"
ExecStart=/opt/tomcat/apache-tomcat/bin/startup.sh
ExecStop=/opt/tomcat/apache-tomcat/bin/shutdown.sh

[Install]
WantedBy=multi-user.target

Siempre que modifiquemos este archivo, por actualizaciones o correcciones, habrá que actualizar la información de Systemd:

~$ sudo systemctl daemon-reload

Ahora ya estamos listos para iniciar el servicio por vez primera:

~$ sudo systemctl start tomcat

Podemos comprobar que el servicio Tomcat 9 ha quedado en funcionamiento a la espera de conexiones mediante el comando systemctl status tomcat:

como instalar tomcat 9 en debian 8 jessie

Si queremos que Tomcat 9 inicie automáticamente con cada arranque de Debian 8 Jessie, debemos habilitar el servicio:

~$ sudo systemctl enable tomcat

Cómo configurar Tomcat 9 en Debian 8 Jessie

Aunque el servicio ya se encuentra en ejecución, es necesario configurar Tomcat 9 en Debian 8 Jessie para poder trabajar con las aplicaciones administrativas. Vamos a ver cómo realizar los ajustes principales.

Cambiar el puerto por defecto de Tomcat 9

En algunos ambientes puede ser necesario saber cómo cambiar el puerto por defecto de Tomcat 9 en Debian 8 Jessie, y es que este puerto 8080 TCP es muy usado por otros servicios, alguno de los cuales podría estar ya funcionando en el sistema.

Para hacer este cambio editaremos el archivo server.xml de Tomcat 9:

~$ sudo nano /opt/tomcat/apache-tomcat/conf/server.xml

Buscaremos esta sección dentro del código:

...
    <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
...

Bastará con cambiar el valor 8080 por el número de cualquier puerto libre que nos interese, por ejemplo el 9500:

...
    <Connector port="9500" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
...

Guardamos los cambios y reiniciamos el servicio:

~$ sudo systemctl restart tomcat

A lo largo del presente tutorial asumiremos que se mantiene el puerto por defecto de Tomcat 9.

Acceder desde red a las aplicaciones administrativas

Las aplicaciones administrativas de Tomcat 9 (manager y host-manager) y la de documentación local (docs) incluyen en su configuración individual un filtro que impide las conexiones que no sean locales. Si deseamos poder acceder remotamente a estas aplicaciones tendremos que editar sus respectivos archivos context.xml.

Por ejemplo, para la aplicación docs:

~$ sudo nano /opt/tomcat/apache-tomcat/webapps/docs/META-INF/context.xml

Buscaremos el bloque Context:

...
<Context antiResourceLocking="false" >
  <Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
</Context>

Y desactivaremos la directiva Valve encerrándola en un bloque de comentarios XML:

...
<!--
  <Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
-->
...

Guardamos los cambios y continuamos.

Para las aplicaciones manager y host-manager haremos la misma operación: editar sus archivos context.xml y desactivar sus directivas Valve encerrándolas en un bloque de comentarios.

Editamos la configuración de la aplicación manager con el siguiente comando:

~$ sudo nano /opt/tomcat/apache-tomcat/webapps/manager/META-INF/context.xml

Y para la aplicación host-manager con el correspondiente comando:

~$ sudo nano /opt/tomcat/apache-tomcat/webapps/host-manager/META-INF/context.xml

Usuarios de Tomcat 9

Algunas aplicaciones de Tomcat 9, como las aplicaciones administrativas, requieren autenticación mediante usuario y contraseña. Estos usuarios deben tener asignados ciertos roles, concretamente los roles admin-gui para la aplicación host-manager y manager-gui para la aplicación manager.

Los roles admin-gui y manager-gui ya se encuentran definidos en el archivo web.xml de Tomcat 9, pero no existen usuarios por defecto, así que tendremos que crearlos en el arhivo tomcat-users.xml del servicio:

~$ sudo nano /opt/tomcat/apache-tomcat/conf/tomcat-users.xml

Es perfectamente posible crear usuarios distintos con distintos roles, de modo que cada aplicación acceda con un usuario distinto, pero por simplicidad usaremos un único usuario con ambos roles, para lo que añadiremos una línea como la siguiente al final del archivo (justo antes del cierre del bloque tomcat-users):

...
        <user username="chacho" password="XXXXXXXX" roles="admin-gui,manager-gui"/>
</tomcat-users>

Al guardar el archivo los cambios se aplican de inmediato.

Configuración del firewall UFW en Debian 8 para Tomcat 9

Independientemente de si deseas o no hacer accesibles las aplicaciones administrativas, para conectar a Tomcat 9 desde la red si tienes activado el firewall UFW en Debian 8 será necesario añadir una regla indicando el puerto en el que atiende peticiones Tomcat 9. En el caso de usar el puerto por defecto la regla sería la siguiente:

~$ sudo ufw allow 8080/tcp

Cómo acceder a Tomcat 9 en Debian 8 Jessie

Para acceder a Tomcat 9 en Debian 8 Jessie desde un navegador usaremos la dirección IP, dominio o nombre DNS del servidor añadiendo además el puerto de conexiones del servicio.

Por ejemplo, en este tutorial el servidor Debian 8 es accesible en el subdominio debian8.local.lan y el puerto de conexiones es el estándar, el 8080, por lo que empleamos http://debian8.local.lan:8080 como URL:

instalar tomcat 9 en debian 8 jessie

Tenemos accesibles distintas aplicaciones como, por ejemplo, la aplicación docs que nos da acceso a la documentación de Tomcat 9 de forma local:

instalacion de tomcat 9 en debian 8 jessie

Este es un ejemplo de aplicación que no necesita autenticación.

Las aplicaciones más importantes en este momento son las administrativas, accesibles en los enlaces «Server Status» y «Manager App«, que son secciones de la aplicación manager, y «Host Manager«, la aplicación host-manager.

Al acceder a cualquiera de las dos secciones de la aplicación manager, por ejemplo «Server Status«, se nos solicitará autenticarnos:

como instalar y configurar tomcat 9 en debian 8 jessie

Una vez introducido usuario y contraseña se mostrará la aplicación, en este caso el «Estado de Servidor«:

instalar y configurar tomcat 9 en debian 8 jessie

Si después accedemos al enlace «Manager App» no se nos volverá a solicitar autenticación porque ya lo hemos hecho antes, y se mostrará directamente el «Gestor de Aplicaciones Web de Tomcat«:

como configurar tomcat 9 en debian 8 jessie

Sin embargo, al acceder al enlace «Host Manager» sí se pedirá autenticación, ya que se trata de una aplicación distinta. Tras introducir usuario y contraseña, se mostrará el «Gestor de Máquina Virtual de Tomcat«:

configurar tomcat 9 en debian 8 jessie

Cómo desplegar aplicaciones Java en Tomcat 9 para Debian 8

Si ya dispones de un archivo en formato WAR que quieres desplegar en tu nuevo servicio Tomcat 9 de Debian 8 tendrás que visitar el Gestor de Aplicaciones Web y desplazarte hasta la sección «Desplegar«, donde mediante «Seleccionar archivo» localizaremos el archivo .war en el sistema de archivos local.

tomcat para debian 8 jessie

Hecho esto, mediante el botón «Desplegar» el archivo será subido al servidor y se desplegará la aplicación, de modo que al cabo de unos instantes se recargará la página del Gestor de Aplicaciones Web, mostrando el resultado de la operación y, si este ha sido satisfactorio, aparecerá la nueva aplicación en la lista:

tomcat en debian 8 jessie

La correspondiente entrada en la lista muestra un enlace desde el que podremos visitar la aplicación, así como sus correspondientes controles de gestión.

Cómo cambiar el tamaño máximo de archivo WAR en Tomcat 9 para Debian 8

Por defecto Tomcat 9 en Debian 8 Jessie tiene un límite máximo del tamaño de archivos .war de 50 MB, pero es posible que en ocasiones este límite se quede pequeño. Este parámetro forma parte de la configuración de la aplicación manager, por lo que debemos editar su archivo web.xml si queremos modificarlo:

~$ sudo nano /opt/tomcat/apache-tomcat/webapps/manager/WEB-INF/web.xml

Buscamos el bloque multipart-config:

...
    <multipart-config>
      <!-- 50MB max -->
      <max-file-size>52428800</max-file-size>
      <max-request-size>52428800</max-request-size>
      <file-size-threshold>0</file-size-threshold>
    </multipart-config>
...

El valor de tamaño de archivo está expresado en bytes, así que para poder cambiarlo por otro deberemos calcular ese nuevo tamaño también en bytes. Por ejemplo, para un tamaño de hasta 200 MB el valor que tendríamos que expresar sería 209715200:

...
    <multipart-config>
      <!-- 200MB max -->
      <max-file-size>209715200</max-file-size>
      <max-request-size>209715200</max-request-size>
      <file-size-threshold>0</file-size-threshold>
    </multipart-config>
...

Una vez guardado el archivo, los cambios están disponibles de inmediato.

Conclusión

Ahora que sabes cómo instalar y configurar Tomcat 9 en Debian 8 Jessie ya puedes convertir tu viejo servidor o VPS Debian en un servicio de aplicaciones Java sin nada que envidiar a versiones más recientes del sistema, pudiendo probar tus propios desarrollos o desplegar soluciones de terceros.

Si tienes dudas, preguntas, tienes alguna sugerencia de mejora de este artículo o crees que necesita ser actualizado, quieres notificar algún posible error, etc. deja un comentario y te responderé lo antes posible.

Y si ya has conseguido desplegar tus propios servlets gracias a esta guía de instalación y configuración de Tomcat 9 en Debian 8 Jessie, y deseas agracedecérmelo, puedes hacerlo dejando una propina de 1 $ a través de PayPal:

¡Gracias!

5/5 - (7 votos)

8 comentarios en «Cómo instalar Tomcat 9 en Debian 8 Jessie»

Deja un comentario

Este sitio esta protegido por reCAPTCHA y laPolítica de privacidady losTérminos del servicio de Googlese aplican.

El periodo de verificación de reCAPTCHA ha caducado. Por favor, recarga la página.