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.
Tabla de contenidos
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:
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
:
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:
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:
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):
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:
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:
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:
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!
Actualizado a la versión 10.1.24.
Actualizado a la versión 10.1.23.
Actualizado a la versión 10.1.20.
Actualizado a la versión 10.1.1.
Actualizado a la versión 10.0.22.
Actualizado a la versión 10.0.20.
Actualizado a la versión 10.0.17.
Actualizado a la versión 10.0.16.
Actualizado a la versión 10.0.14.
Actualizado a la versión 10.0.12.