Cómo instalar Tomcat en Debian 9 Stretch

Cómo instalar Tomcat en Debian 9 Stretch

Vamos a ver en este artículo cómo instalar Tomcat en Debian 9 Stretch paso a paso, de modo que puedas montar aplicaciones de servidor en Java, o servlets, en tu servidor o VPS Debian, tanto para tus propios desarrollos como para entorno empresarial.

Antes de instalar Tomcat en Debian 9 Stretch

Para poder seguir esta guía de instalación de Tomcat en Debian 9 Stretch deberías cumplir estos mínimos requisitos:

  • Una máquina Debian 9 Stretch actualizada.
  • Entorno de Java instalado.
  • Un usuario con permisos de sudo o el propio root.
  • Conexión a Internet.

Si aún no lo tienes en tu sistema, puedes seguir la guía de instalación de Java OpenJDK en Debian 9 Stretch publicada en este mismo sitio.

Cómo descargar Tomcat para Debian 9 Stretch

Para instalar Tomcat en Debian 9 Stretch debemos acudir a la página oficial del proyecto, ya que los paquetes disponibles en el repositorio de la distribución corresponden a Tomcat 8.5.14, mientras que la última versión estable es la 9.0.27 (en el momento de escribir esta guía).

como descargar tomcat para debian 9 stretch

Accederemos a la sección de descargas de la última versión de Tomcat y encontraremos paquetes disponibles tanto en formato .zip como en formato .tar.gz, siendo este último el que nos interesa:

descargar tomcat en debian 9 stretch

Puedes descargar el archivo .tar.gz directamente desde el navegador, pero en esta ocasión copiaremos el enlace y lo descargaremos en consola mediante el comando wget:

~$ wget http://us.mirrors.quenda.co/apache/tomcat/tomcat-9/v9.0.27/bin/apache-tomcat-9.0.27.tar.gz

Cómo instalar Tomcat en Debian 9 Stretch

Instalar Tomcat en Debian 9 Stretch no es tan sencillo como descomprimir un simple paquete, ya que necesitamos realizar algunas tareas adicionales en nuestro sistema Debian 9 tanto previa como posteriormente.

En primer lugar crearemos un usuario para la ejecución del servicio Tomcat, puesto que ejecutarlo como root no es buena idea. Para ello crearemos un usuario de Debian 9 llamado tomcat:

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

Este usuario no puede iniciar sesión, su directorio personal será el directorio donde instalemos Tomcat, y se creará un grupo con su mismo nombre al que pertenecerá.

Ahora ya podemos descomprimir el paquete que acabamos de descargar y lo haremos directamente en /opt/tomcat/:

~$ sudo tar xzf apache-tomcat-9.0.27.tar.gz -C /opt/tomcat/

Tras esto se crea una carpeta apache-tomcat-9.0.27/ en /opt/tomcat/ que podemos renombrar o, mejor aún, enlazar simbólicamente como apache-tomcat/:

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

Cambiaremos el propietario de los archivos de Tomcat al usuario que acabamos de crear:

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

Y por fin daremos de alta el servicio tomcat.service, para lo que crearemos su configuración en /etc/systemd/system/:

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

El contenido de este nuevo archivo será el siguiente:

[Unit]
Description=Tomcat 9.0 servlet container
After=network.target

[Service]
Type=forking
User=tomcat
Group=tomcat
Environment="JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64/jre/"
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

Ten en cuenta la ruta en tu sistema Debian 9 para la variable JAVA_HOME. También puedes comprobar que usamos el usuario y grupo tomcat para ejecutar el servicio, y que usamos las rutas de los archivos de Tomcat a través del enlace simbólico que creamos. De esa forma será más fácil actualizar a futuras versiones.

Este nuevo servicio no estará disponible en Debian 9 hasta que recarguemos la configuración de systemd:

~$ sudo systemctl daemon-reload

Llega el momento de arrancar nuestro nuevo servicio tomcat.service o tomcat, como prefieras:

~$ sudo systemctl start tomcat

Para comprobar que el servicio ha iniciado correctamente y está listo para trabajar puedes usar el comando systemctl status tomcat:

como instalar tomcat en debian 9 stretch

Si también quieres que el servicio Tomcat inicie automáticamente con Debian 9, tendrás que habilitarlo:

~$ sudo systemctl enable tomcat

Configurar el firewall para Tomcat en Debian 9

Si quieres poder conectar a Tomcat desde otros dispositivos de la red tendrás que añadir una excepción en el firewall UFW de Debian 9 (si lo tienes activado):

~$ sudo ufw allow 8080/tcp

Conectar a Tomcat

Para conectar a Tomcat desde el navegador habrá que añadir el puerto 8080 a la dirección IP o dominio del servidor Debian 9. En este ejemplo el sistema Debian 9 es accesible mediante el dominio debian9.local, por lo que usaríamos la URL http://debian9.local:8080/ en el navegador:

instalar tomcat en debian 9 stretch

Podremos ver la página principal de la interfaz de Tomcat, con tres botones destacados: «Server Status«, «Manager App» y «Host Manager«. Lamentablemente aún no podemos acceder a ninguna de estas secciones.

Cómo configurar Tomcat en Debian 9 Stretch

Aún nos quedan algnos ajustes para terminar de configurar Tomcat en Debian 9, ya que si tratamos de acceder a las distintas secciones que nos ofrece la página de inicio del servicio Tomcat, por ejemplo «Server Status«, nos encontraremos con un error 403:

como configurar tomcat en debian 9 stretch

Permitir el acceso desde la red

Esto ocurre porque la configuración por defecto de estas aplicaciones de Tomcat (manager y host-manager) sólo permite el acceso local. Debemos editar la configuración de cada una de ellas para permitir el acceso externo.

Por ejemplo, editaremos el archivo de configuración context.xml de la aplicación manager:

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

Dentro del bloque Context esta directiva Valve es la que sólo permite el acceso local:

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

Para desactivarla la encerraremos entre comentarios:

...
<!--
  <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 cerramos el archivo.

Y otro tanto haremos con el archivo context.xml de la aplicación host-manager.

Para aplicar estos cambios será necesario reiniciar el sevicio:

~$ sudo systemctl restart tomcat

Usuarios de Tomcat

Ahora, al volver a acceder a estos servicios se nos solicita identificarnos mediante usuario y contraseña:

configurar tomcat en debian 9 stretch

Para poder acceder debemos crear usuarios con permisos en Tomcat, editando para ello el archivo tomcat-users.xml:

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

Este archivo consta de un bloque tomcat-users vacío, aunque sí figuran comentarios explicativos. El sistema de permisos de Tomcat se basa en roles, de modo que cada aplicación suele exigir un determinado rol para sus usuarios. Por tanto tenemos que definir los roles por un lado y por otro los usuarios con los roles que ostentan.

La aplicación manager necesita el rol manager-gui, mientras que la aplicación host-manager necesita el rol admin-gui, así que definiremos dentro del bloque tomcat-users ambos roles:

...
        <role rolename="admin-gui"/>
        <role rolename="manager-gui"/>
...

Con los roles ya definidos pasamos a los usuarios. Podríamos crear un usuario para cada rol, pero es posible crear usuarios con varios roles, así que crearemos un usuario admin con ambos roles:

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

Como consejo, cualquier nombre de usuario es mejor que admin.

Tras guardar los cambios y cerrar el archivo ya podemos identificarnos y acceder a las aplicaciones de la página incial de Tomcat en nuestro sistema Debian 9.

Podremos acceder al estado del servidor (manager/status):

Podremos también acceder al gestor de aplicaciones (manager/html), que en realidad es parte de la misma aplicación que la anterior:

Y también podremos acceder al gestor de máquinas virtuales de Tomcat (host-manager/html):

Desplegar una aplicación desde un archivo WAR

Para desplegar una nueva aplicación web desde un archivo WAR, con extensión .war, usaremos el gestor de aplicaciones o «Manager App» y en la sección «Desplegar» usaremos el botón «Seleccionar aplicación» para buscar el archivo WAR en el sistema de archivos y seleccionarlo. Hecho esto pulsaremos el botón «Desplegar«.

El gestor de aplicaciones cargará e instalará la aplicación desde el archivo y recargará la página, donde en la caja de mensajes debe aparecer un simple «OK» y en la lista de aplicaciones debe aparecer una entrada con el enlace a la nueva aplicación:

Podemos abrir la nueva aplicación desde el enlace de la lista y debería cargar sin problemas:

Para desinstalar esta aplicación u otra cualquiera usaremos su botón «Replegar» correspondiente en la lista de aplicaciones del gestor.

Conclusión

Como ves, instalar y configurar Tomcat 9 en Debian 9 Stretch no es tan difícil como se podría pensar por el hecho de no existir paquetes en el repositorio. Basta seguir unos pocos pasos de forma ordenada y podrás desplegar aplicaciones en desarrollo o profesionales en tu servidor o VPS Debian.

Si tienes alguna duda, pregunta, sugerencia, etc. puedes dejar un comentario.

Y si esta guía de instalación y configuración de Tomcat 9 en Debian 9 Stretch te ha servido para tus objetivos, ¡siempre que quieras me puedes invitar a un café!

 

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

Deja un comentario

Cerrar menú

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información

ACEPTAR
Aviso de cookies