Cómo instalar Tomcat 10 en CentOS 7

En este artículo veremos cómo instalar Tomcat 10 en CentOS 7 paso a paso, de manera que puedas desplegar aplicaciones de servidor basadas en el estándar Yakarta EE 9 sobre tu servidor o VPS CentOS.

Antes de instalar Tomcat 10 en CentOS 7

Para poder seguir los pasos de esta guía de instalación de Tomcat 10 en CentOS 7 es importante partir del siguiente escenario básico:

  • Una máquina CentOS 7 actualizada.
  • JRE o entorno de ejecución de Java.
  • Un usuario con permisos de sudo.
  • Acceso a Internet.

Si aún no dispones del entorno necesario seguramente te interesará consultar previamente nuestra guía de instalación de Java en CentOS 7.

Además, necesitaremos algunas herramientas que obtendremos desde los repositorios de CentOS 7, para lo que actualizamos la información de los mismos:

~$ sudo yum update

E instalamos los paquetes necesarios:

~$ sudo yum install -y wget

Cómo descargar Tomcat 10 para CentOS 7

Vamos a descargar Tomcat 10 para CentOS 7 desde la página de descargas del sitio web oficial, ya que los repositorios no ofrecen paquetes de esta versión.

como descargar tomcat 10 para centos 7

Encontaremos distintos formatos de paquetes, como .zip y .tar.gz, siendo este último el más interesante, y podremos realizar la descarga directamente desde el navegador o, en caso de trabajar remotamente, desde consola con alguna herramienta como wget:

~$ wget https://downloads.apache.org/tomcat/tomcat-10/v10.0.8/bin/apache-tomcat-10.0.8.tar.gz

Cómo instalar Tomcat 10 en CentOS 7

Para instalar Tomcat 10 en CentOS 7 tendremos que realizar algunos preparativos encaminados a crear un nuevo servicio en el sistema.

Empezaremos creando un usuario y grupo específico con el que correrá la plataforma:

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

El directorio personal del nuevo usuario será la ruta de instalación de Tomcat 10, que crearemos extrayendo directamente el contenido del paquete que acabamos de descargar en dicha ruta:

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

Como se crea un subdirectorio que contiene el número de versión en su nombre, puede ser buena idea renombrarlo o crear un enlace simbólico sin números de versión:

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

Para que Tomcat 10 pueda escribir en su propio directorio de instalación, cambiaremos la propiedad del mismo y de su contenido al usuario con el que correrá el servicio:

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

Configuración del servicio

Creamos un archivo de configuración de Systemd para el nuevo servicio:

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

El contenido será el siguiente:

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

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

Tras guardar este archivo, ya podemos iniciar el servicio con el comando systemctl:

~$ sudo systemctl start tomcat10

Podemos comprobar el estado del servicio con el comando systemctl status tomcat10:

como instalar tomcat 10 en centos 7

Además, si queremos que el servicio esté disponible en cada arranque del sistema habrá que habilitarlo mediante la opción enable del comando systemctl:

~$ sudo systemctl enable tomcat10

Cómo configurar el firewall de CentOS 7 para Tomcat 10

Si queremos acceder a Tomcat 10 desde la red y el firewall de CentOS 7 está activado, lo que suele ocurrir por defecto, habrá que crear una excepción para el puerto 8080:

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

Aplicamos la excepción recargando la configuración del firewall:

~$ sudo firewall-cmd --reload

Si decides configurar Tomcat 10 para que escuche peticiones en un puerto distinto, recuerda actualizar la configuración del firewall.

Cómo acceder a Tomcat 10 en CentOS 7

Para acceder a Tomcat 10 sobre CentOS 7 desde un navegador habrá que indicar la dirección (IP, dominio, nombre DNS, etc.) y el puerto de conexión, el 8080 por defecto.

Por ejemplo, la máquina CentOS 7 sobre la que hemos preparado este tutorial es accesible en el subdominio centos7.local.lan, así que podemos utilizar http://centos7.local.lan:8080 como URL:

instalar tomcat 10 en centos 7

Una de las aplicaciones incluidas en el paquete es la documentación de Tomcat 10 en modo local, aplicación /docs, a la que podemos acceder siguiendo el enlace «Tomcat 10.0 Documentation«.

instalacion de tomcat 10 en centos 7

Cómo configurar Tomcat 10 en CentOS 7

Para configurar Tomcat 10 en CentOS 7 actuaremos sobre los archivos adecuandos alojados en la ruta /opt/tomcat/apache-tomcat/, siguiendo el esquema de instalación de este tutorial.

Acceso desde red a las aplicaciones administrativas

Acabamos de ver cómo acceder a una aplicación que no tiene ningún tipo de restricciones desde el navegador, pero para las aplicaciones administrativas «Server Status«, «Manager App» y «Host Manager» sólo es posible el acceso local, desde la misma máquina CentOS 7. En caso de querer poder acceder desde red habrá que editar el archivo context.xml de cada aplicación, por ejemplo, para «Server Status» y «Manager App» (que realmente son parte de la misma aplicación):

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

Dentro del bloque principal Context encontraremos una directiva Valve como la siguiente:

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

Tendremos que desactivarla encerrándola dentro de 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" />
-->
...

Una vez guardado el archivo, los cambios se aplican de inmediato.

Igualmente habría que hacer con el archivo context.xml de la aplicación «Host Manager«:

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

Usuarios de Tomcat 10 en CentOS 7

La aplicación que probamos anteriormente no necesita ningún tipo de autenticación, pero para acceder a las aplicaciones administrativas será necesario crear un usuario con los roles admin-gui y manager-gui. Esto lo haremos editando el archivo tomcat-users.xml:

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

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

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

Obviamente puedes utilizar el nombre de usuario y la contraseña que quieras.

Una vez guardado el archivo, ya podemos acceder a cualquiera de las aplicaciones administrativas, por ejemplo a «Server Status«, mostrándose un diálogo de autenticación donde introduciremos el usuario y contraseña que acabamos de crear:

instalando tomcat 10 en centos 7

Tras identificarnos correctamente se mostrará la página de la apliación:

tomcat 10 en centos 7

También podremos comprobar el acceso al gestor de aplicaciones o «Manager App«, de modo que si acabamos de probar la aplicación anterior, no se solicitará autenticación (puesto que es la misma aplicación):

tomcat 10 para centos 7

Sin embargo, al acceder al gestor de máquina virtual o «Host Manager» tendremos que identificarnos de nuevo, tras lo que se mostrará igualmente esta aplicación:

tomcat 10 para centos 7

Cómo instalar aplicaciones en Tomcat 10 para CentOS 7

Si dispones de una aplicación lista para desplegar en formato WAR, es decir, un archivo .war, podremos instalarla desde el gestor de aplicaciones o «Manager App«, en la sección «Desplegar«, seleccionando el archivo local mediante el control proporcionado:

Una vez seleccionado dicho archivo, mediante el botón «Desplegar» se cargará e instalará la aplicación, volviendo a cargar la página del gestor de aplicaciones.

Si todo ha ido bien se mostrará el mensaje «OK» y la aplicación aparecerá en la lista de aplicaciones disponibles, junto a sus propios controles de gestión:

Podemos comprobar el funcionamiento de la nueva aplicación desde el enlace correspondiente en la columna «Ruta«:

¡Así de fácil!

Cambiar el tamaño máximo para los archivos WAR

Por defecto el tamaño máximo de los archivos WAR que está permitido cargar en la plataforma es de 50 MB. Puede que la aplicación que intentas desplegar supere este límite, así que para ampliarlo editaremos el archivo de configuración web.xml de la aplicación /manager:

~$ sudo nano /opt/tomcat/apache-tomcat/webapps/manager/WEB-INF/web.xml

Buscamos el siguiente bloque de configuración:

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

Cambiamos el tamaño indicado en bytes por el nuevo valor; por ejemplo, para 150 MB:

...
    <multipart-config>
      <!-- 150MB max -->
      <max-file-size>157286400</max-file-size>
      <max-request-size>157286400</max-request-size>
      <file-size-threshold>0</file-size-threshold>
    </multipart-config>
...

Guardados los cambios el nuevo ajuste estará disponible.

Conclusión

Ahora que sabes cómo intalar Tomcat 10 en CentOS 7 ya puedes instalar y desplegar fácilmente aplicaciones de servidor que respondan a las especificaciones del estándar Yakarta EE 9, tanto si se trata de tus propios desarrollos como aplicaciones de terceros.

¡Apoya comoinstalar.me!

¿Ya funciona esta plataforma en tu máquina gracias a nuestra guía? Si es así tal vez quieras agradecérmelo dejando una propina de 1 $ para una CocaCola desde PayPal:

O, si te sientes especialmente agradecido, invitándome a un cappuccino:

¡Gracias!

Valora esta entrada

2 comentarios en «Cómo instalar Tomcat 10 en CentOS 7»

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