Cómo instalar Tomcat 10 en Debian 9 Stretch

En esta ocasión vamos a ver cómo instalar Tomcat 10 en Debian 9 Stretch, de modo que podamos trabajar con la última versión de esta plataforma basada en las especificaciones de Jakarta EE9 sobre tu viejo servidor o VPS Debian.

Antes de instalar Tomcat 10 en Debian 9

Para poder completar esta guía de instalación de Tomcat 10 en Debian 9 Stretch será imprescindible partir de la siguiente base:

  • Una máquina Debian 9 Stretch actualizada.
  • El entorno de ejecución de Java o JRE versión 11.
  • Acceso a línea de comandos con privilegios de sudo.
  • Conexión a Internet.

Si aún no dispones del entorno necesario, puede ser interesante echar un vistazo previo a nuestra guía de instalación de Java en Debian 9.

Cómo descargar Tomcat 10 para Debian 9

Vamos a descargar Tomcat 10 para Debian 9 Stretch desde la página de descargas de dicha versión del sitio oficial, con el fin de obtener la última versión estable:

como descargar tomcat 10 para debian 9 stretch

Encontraremos varios paquetes en distintos formatos, siendo el archivo .tar.gz el que nos interesa en esta ocasión. Podemos descargarlo directamente desde el navegador o, si estamos trabajando remotamente, podemos copiar el enlace y usarlo para descargar desde consola con wget:

~$ wget --no-check-certificate https://downloads.apache.org/tomcat/tomcat-10/v10.1.24/bin/apache-tomcat-10.1.24.tar.gz

Cómo instalar Tomcat 10 en Debian 9

Para instalar Tomcat 10 en Debian 9 Stretch comenzaremos creando un usuario que será el que corra el servicio en el sistema, usuario al que podemos llamar tomcat10:

~$ sudo useradd -U -m -k /dev/null -d /opt/tomcat -s /bin/false tomcat10

Observa que hemos especificado como su directorio personal la ruta donde instalaremos Tomcat 10, y que este usuario no podrá utilizarse para acceder al sistema por terminal.

Ahora descomprimimos el paquete que acabamos de descargar en el directorio de inicio del usuario tomcat10:

~$ sudo -u tomcat10 tar xzf apache-tomcat-10.1.24.tar.gz -C /opt/tomcat/

El subdirectorio que se acaba de crear contiene el número de versión en su nombre, algo que puede dificultar la configuración y el mantenimiento de la plataforma. Por ello, podemos renombrar dicho subdirectorio o, mejor aún, crear un enlace simbólico sin números de versión:

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

Para que Tomcat 10 pueda funcionar como un servicio más de Systemd en Debian 9 creamos el correspondiente archivo de configuración:

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

El contenido de este archivo será algo como lo siguiente:

[Unit]
Description=Tomcat 10.1 for Debian 9 Stretch servlet container
After=network.target

[Service]
Type=forking
User=tomcat10
Group=tomcat10
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

Una vez guardado y cerrado este archivo, podemos iniciar directamente el servicio con el comando systemctl:

~$ sudo systemctl start tomcat10

Para comprobar que el servicio se encuentra en ejecución en cualquier momento, podemos usar el comando systemctl status tomcat10:

como instalar tomcat 10 en debian 9 stretch

Si quieres que el servicio se encuentre disponible cada vez que inicies el sistema, habrá que habilitarlo:

~$ sudo systemctl enable tomcat10

Firewall

En el caso de tener activado el firewall UFW de Debian 9 y querer trabajar con Tomcat 10 desde red, será necesario permitir el acceso al puerto 8080:

~$ sudo ufw allow 8080/tcp

Cómo acceder a Tomcat 10 en Debian 9

Para acceder a Tomcat 10 en Debian 9 Stretch desde un navegador habrá que indicar la dirección del servidor (IP, nombre DNS, dominio, etc.) especificando el puerto de conexión 8080.

Por ejemplo, la máquina Debian 9 sobre la que hemos preparado este tutorial es accesible en el subdominio debian9.local.lan, así que podemos usar http://debian9.local.lan:8080 como URL:

instalar tomcat 10 en debian 9 stretch

El paquete de Tomcat 10 incluye algunas aplicaciones instaladas, como las herramientas administrativas o la aplicación de documentación (aplicación /docs). Todas son accesibles localmente, desde la propia máquina Debian 9 Stretch que estamos configurando. Pero para acceder desde red tendremos que realizar algunos ajustes. Además, las aplicaciones administrativas necesitan autenticación de usuario.

Cómo configurar Tomcat 10 en Debian 9

Por defecto las aplicaciones administrativas y de documentación solamente son accesibles de forma local, por lo que si necesitamos acceder desde red debemos modificar la configuración de cada aplicación por separado.

Por ejemplo, para la aplicación /docs editaremos su archivo context.xml:

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

Dentro de este archivo encontraremos una directiva Valve que es la encargada de restringir el acceso:

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

Para permitir acceso desde red bastará con desactivar esta directiva usando un bloque de comentarios XML del siguiente modo:

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

Terminados los cambios, guardamos y cerramos el archivo.

Ahora ya podemos acceder al enlace «Tomcat 10.1 Documentation» de la pantalla inicial de Tomcat 10 en Debian 9 Stretch:

instalacion de tomcat 10 en debian 9 stretch

Por su parte, para la aplicación /manager, que engloba tanto «Server Status» como «Manager App» en el menú principal de Tomcat 10, haremos otro tanto:

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

Buscamos la directiva Valve encargada de restringir el acceso:

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

E igualmente la desactivamos con 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" />
  -->
...

Terminados los cambios, guardamos y cerramos el archivo.

Este cambio sólo afecta a la aplicación /manager, así que si queremos acceder desde red a la aplicación /host-manager, «Host Manager» en el menú principal, debemos realizar el mismo ajuste en su respectivo archivo context.xml:

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

Creación de usuarios

Otra característica de las aplicaciones administrativas de Tomcat 10 es que necesitan autenticación para permitir el acceso. Para ello necesitamos crear un usuario con los roles admin-gui y manager-gui, cosa que haremos en el archivo tomcat-users.xml:

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

Dentro del bloque principal tomcat-users añadiremos una línea como la siguiente:

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

Obviamente puedes usar el nombre de usuario (username) y la contraseña que quieras.

Guardados los cambios ya podemos acceder a las aplicaciones administrativas desde la página principal de la plataforma.

Acceso a las aplicaciones administrativas

Podemos comprobar que ya tenemos disponible el acceso a las aplicaciones administrativas de Tomcat 10 en nuestro servidor Debian 9. Por ejemplo, al acceder a la aplicación «Server Status» (/manager/status):

instalando tomcat 10 en debian 9 stretch

Comprobamos que se nos solicita usuario y contraseña, así que indicaremos las credenciales del usuario que hemos creado anteriormente y accederemos a la aplicación:

tomcat 10 en debian 9 stretch

Si tras acceder a esta aplicación hacemos lo mismo con el «Gestor de aplicaciones Web de Tomcat» o «Manager App» (/manager/html) veremos que no se nos pide autenticación, ya que se trata de la misma aplicación y accederemos directamente:

tomcat 10 sobre debian 9 stretch

Pero si probamos la aplicación «Host Manager» (/host-manager/html), al tratarse de una aplicación distinta sí se solicitará usuario y contraseña para conceder el acceso. Una vez autenticados, se mostrará la aplicación:

tomcat 10 para debian 9 stretch

Cómo desplegar aplicaciones en Tomcat 10 sobre Debian 9 Stretch

Si disponemos de una aplicación Java en formato WAR (archivos .war) lista para desplegar, accederemos a la sección «Desplegar» del gestor de aplicaciones web, usando el control para seleccionar archivos en «Archivo WAR a desplegar«:

Seleccionado el archivo, usamos el botón «Desplegar» y se recargará la página. Si todo ha ido bien en la sección «Mensaje» veremos «OK» y la aplicación aparecerá mostrada en la lista de aplicaciones:

Podremos gestionar la aplicación con su propio juego de comandos, como arrancar, parar, recargar, replegar, etc. y también podremos lanzar la aplicación desde el enlace mostrado en la columna de rutas:

¡Así de fácil!

Conclusión

Ahora que sabes cómo instalar Tomcat 10 en Debian 9 Stretch ya puedes desplegar y probar tus propios desarrollos o instalar aplicaciones de terceros, tanto en red local como sobre Internet.

Si te ha resultado útil esta guía y quieres agradecérnoslo, puedes hacerlo dejando a partir de 1 $ de propina desde PayPal:

¡Gracias!

5/5 - (7 votos)

10 comentarios en «Cómo instalar Tomcat 10 en Debian 9 Stretch»

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.