Cómo instalar Tomcat en CentOS 8

En este artículo explicamos cómo instalar Tomcat en CentOS 8 paso a paso, de modo que al final del tutorial tendrás funcionando este servidor de aplicaciones Java en tu servidor o VPS CentOS.

Antes de instalar Tomcat en CentOS 8

Si quieres seguir paso a paso esta guía de instalación de Tomcat en CentOS 8 debes partir de los siguientes requisitos básicos:

  • Una máquina CentOS 8 actualizada.
  • Java JRE o JDK versión 8 (1.8).
  • El paquete tar.
  • Acceso a consola con root o un usuario con privilegios de sudo.
  • Conexión a Internet.

Si todavía no tienes el entorno necesario, puede interesarte consultar previamente la guía de instalación de Java en CentOS 8.

Cómo descargar Tomcat para CentOS 8

Ya que no existen paquetes en los repositorios de la distribución, debemos descargar Tomcat para CentOS 8 desde la propia página web del proyecto.

como descargar tomcat para centos 8

En la sección de descargas de Tomcat 9 encontraremos paquetes de los binarios en distintos formatos y para distintos sistemas:

descargar tomcat en centos 8

Para este tutorial descargaremos el paquete en formato .tar.gz, copiando el enlace y realizando la descarga desde consola mediante el comando wget:

~$ wget http://ftp.cixug.es/apache/tomcat/tomcat-9/v9.0.31/bin/apache-tomcat-9.0.31.tar.gz

Cómo instalar Tomcat en CentOS 8

Como puedes imaginar, instalar Tomcat en CentOS 8 no consiste en descomprimir un simple paquete, ya que habrá que realizar algunas tareas adicionales más. Vamos a describir estas tareas en los siguientes pasos.

Usuario tomcat

Puesto que se trata de un servicio, Tomcat necesita correr bajo un nuevo usuario de CentOS 8 que crearemos especialmente para la ocasión:

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

Archivos de Tomcat

Descomprimimos el paquete que acabamos de descargar en el directorio que establezcamos para la instalación, por ejemplo en /opt/tomcat/:

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

Dentro de /opt/tomcat/ se crea un nuevo subdirectorio en cuyo nombre aparece la versión de Tomcat que estamos instalando en CentOS 8, por lo que es interesante crear un enlace simbólico sin números de versión:

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

Y concederemos la propiedad de este directorio y su contenido al nuevo usuario tomcat:

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

Cómo crear el servicio Tomcat en CentOS 8

Una vez acomodada la aplicación en su directorio de instalación, tenemos que crear el servicio de Tomcat en CentOS 8 para poder administrarlo igual que el resto de servicios del sistema. Para ello creamos su archivo de configuración correspondiente:

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

Con el siguiente contenido:

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

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

Guardados los cambios y cerrado el archivo, refrescamos los servicios del sistema para que systemd descubra el nuevo servicio tomcat.service:

~$ sudo systemctl daemon-reload

Ahora ya podemos iniciar Tomcat, mediante systemctl:

~$ sudo systemctl start tomcat

Podemos comprobar el estado el servicio en cualquier momento con el comando systemctl status tomcat:

como instalar tomcat en centos 8

En el caso de que necesites tener el servicio Tomcat siempre disponible, es interesante habilitarlo para que inicie automáticamente junto a CentOS 8, cosa que haremos también con systemctl:

~$ sudo systemctl enable tomcat

Cómo configurar el firewall de CentOS 8 para Tomcat

Ya que el firewall de CentOS 8 está activado por defecto, si queremos usar el servicio Tomcat en red debemos añadir necesariamente una excepción. Tomcat escucha peticiones en el puerto 8080 TCP, así que podemos añadir la siguiente regla:

~$ sudo firewall-cmd --permanent --add-port=8080/tcp

Es necesario recargar la configuración del firewall para aplicar los cambios:

~$ sudo firewall-cmd --reload

Cómo acceder a Tomcat

Para acceder al servicio Tomcat funcionando en CentOS 8, desde un navegador usaremos como URL la dirección IP o dominio del servidor añadiendo el puerto 8080. Por ejemplo, en este tutorial trabajamos sobre un servidor cuyo dominio es centos8.local, así que podemos usar http://centos8.local:8080/ como URL:

instalar tomcat en centos 8

Cómo configurar Tomcat en CentOS 8

Vamos a configurar algunos ajustes de Tomcat para poder trabajar con las aplicaciones incluidas y poder instalar otras nuevas.

Permitir el acceso a las aplicaciones de Tomcat

Aunque no hay mayor problema para acceder a la página principal del servicio, si intentamos acceder desde la red a distintas aplicaciones como las indicadas en los botones «Server Status«, «Manager App» o «Host Manager» encontraremos que no es posible:

instalacion de tomcat en centos 8

Esto se debe a que Tomcat usa una configuración de acceso individualizada por aplicación y concretamente para acceder a cualquiera de estas aplicaciones debemos configurar su propio acceso en el archivo context.xml de cada aplicación. Por ejemplo, para la aplicación Manager lo haríamos así:

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

Buscaremos la directiva Valve dentro del bloque Context:

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

Y la encerramos en un bloque de comentarios, para que no tenga efecto:

...
<!--
  <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.

Deberíamos hacer otro tanto para otras aplicaciones, como Host-Manager:

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

Realizados estos cambios, hay que reiniciar Tomcat para que los tenga en cuenta:

~$ sudo systemctl restart tomcat

Y si volvemos a cargar «Server Status» (aplicación manager), encontraremos que ahora funciona, pero nos pide iniciar sesión:

como configurar tomcat en centos 8

Vamos a ver qué podemos hacer para acceder a la aplicación.

Crear usuarios de Tomcat en CentOS 8

Necesitamos crear usuarios de Tomcat para que puedan acceder a las aplicaciones que lo requieren. La configuración de usuarios de Tomcat en CentOS 8 se hace en el archivo tomcat-users.xml:

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

El funcionamiento de los usuarios en Tomcat es sencillo. Las aplicaciones requieren que los usuarios tengan ciertos roles para poder acceder, así que por un lado declaramos los distintos roles que podemos necesitar y después definimos los usuarios indicando qué roles pueden desempeñar.

En el archivo tomcat-users.xml especificaremos estas definiciones dentro del bloque tomcat-users:

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

Hemos declarado los roles admin-gui y manager-gui, que son los que necesita un usuario para poder acceder a las aplicaciones Manager y Host-Manager. Además hemos creado también un usuario con ambos roles.

Si el usuario no funciona al primer intento, recarga la aplicación o reinicia Tomcat para que tenga en cuenta los nuevos roles y usuarios.

Al introducir las credenciales necesarias, ya podemos acceder a la aplicación «Server Status«:

Tomcat en CentOS 8

Igualmente, es posible acceder a la aplicación «Manager App«:

tomcat para centos 8

Y también a «Host Manager«, el gestor de máquinas virtuales de Tomcat:

Cómo desplegar aplicaciones Java en Tomcat

Si ya tienes aplicaciones Java en formato .war listas para desplegar, accede a la aplicación «Manager App«, o gestor de apliaciones web de Tomcat, y desplázate a la sección «Desplegar«, en la que podrás seleccionar el archivo .war usando el botón «Seleccionar archivo«:

Al pulsar el botón «Desplegar» se cargará la página y si todo ha ido bien en la sección «Mensaje» obtendremos un escueto «OK«. Además, en la sección «Aplicaciones» veremos la nueva aplicación junto con algunos detalles y los controles para administrarla:

Siguiendo el enlace con el nombre de la nueva aplicación, esta se abrirá y podremos comprobar que funciona:

Conclusión

Así de fácil es instalar Tomcat en CentOS 8, en unos instantes tendrás instalado y funcionando este servicio, listo para ofrecer servlets de Java, tanto de terceros como de desarrollo propio.

Si tienes dudas, preguntas, comentarios, etc. puedes dejar un comentario.

¡Apoya este sitio!

¿Ya estás listo para desplegar Java servlets gracias a esta guía de instalación de Tomcat en CentOS 8? Si es así y te apetece agradecérnoslo, una mínima aportación ayudará al mantenimiento de este sitio y creación de nuevas guías de CentOS 8 y Tomcat. ¡Gracias!

Valora esta entrada

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

Deja un comentario

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.

ACEPTAR
Aviso de cookies