Cómo instalar Tomcat 9 en Debian 8 Jessie

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 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 para Debian 8 Jessie

Vamos a descargar Tomcat 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 para debian 8 jessie

Encontraremos la última versión estable de Tomcat 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://apache.brunneis.com/tomcat/tomcat-9/v9.0.40/bin/apache-tomcat-9.0.40.tar.gz

Cómo instalar Tomcat en Debian 8 Jessie

Para instalar Tomcat 9 en Debian 8 Jessie con éxito debemos preparar también el sistema, para lo que empezaremos creando 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.40.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.40 /opt/tomcat/apache-tomcat

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

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

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

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

Para poder manejar el servicio Tomcat 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
After=network.target

[Service]
Type=forking
User=tomcat
Group=tomcat
Environment="JAVA_HOME=/usr/lib/jvm/jre1.8.0_271/"
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

Es muy importante que la directiva Environment encargada de configurar la variable JAVA_HOME tenga correctamente asignada la ruta de la instalación de Java en tu sistema, de lo contrario Tomcat no sabrá encontrar el JRE.

Guardamos los cambios y actualizamos 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 ha quedado en funcionamiento a la espera de conexiones mediante el comando systemctl status tomcat:

como instalar tomcat en debian 8 jessie

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

~$ sudo systemctl enable tomcat

Cómo configurar Tomcat en Debian 8 Jessie

Aunque el servicio ya se encuentra en ejecución, es necesario configurar Tomcat 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

En algunos ambientes puede ser necesario saber cómo cambiar el puerto por defecto de Tomcat 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:

~$ 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.

Acceder desde red a las aplicaciones administrativas

Las administraciones administrativas de Tomcat (manager y host-manager) 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 manager:

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

Buscaremos el bloque Context:

...
<Context antiResourceLocking="false" privileged="true" >
  <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 la aplicación host-manager seguiríamos un proceso similar, teniendo en cuenta la ubicación de su propio archivo context.xml:

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

Una vez modificados estos archivos, reiniciamos el servicio:

~$ sudo systemctl restart tomcat

Usuarios de Tomcat

Algunas aplicaciones de Tomcat, 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, 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="admin" 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

Independientemente de si deseas o no hacer accesibles las aplicaciones administrativas, para conectar a Tomcat desde la red si tienes activado el firewall UFW en Debian 8 será necesario añadir una regla indicando el puerto de Tomcat. 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 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 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 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«:

Cómo desplegar aplicaciones Java en Tomcat para Debian 8

Si ya dispones de un archivo en formato WAR que quieres desplegar en tu nuevo servicio Tomcat 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 9 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 para Debian 8

Por defecto Tomcat 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érnoslo colaborando con el mantenimiento de este sitio y la creación de más artículos sobre Debian 8 y Tomcat, puedes hacerlo invitándome a un café:

 

O deshaciéndote de esa calderilla que nunca usas en PayPal dejando 1 $ de propina:

¡Gracias!

 

1 estrella2 estrellas3 estrellas4 estrellas5 estrellas (2 votos, promedio: 5,00 de 5)
Cargando...

Deja una respuesta