Cómo instalar Tomcat en CentOS 7

En esta entrada explicamos cómo instalar Tomcat en CentOS 7 paso a paso, de modo que puedas montar tu propio servidor de aplicaciones Java, como Java Servlet, JavaServer Pages, Java Expression Language y Java WebSocket technologies.

Antes de instalar Tomcat en CentOS 7

Si tienes intención de seguir esta guía de instalación de Tomcat en CentOS 7 debes cumplir unos mínimos requisitos:

  • Un sistema CentOS 7 actualizado.
  • Entorno de Java como OpenJDK.
  • Paquetes instalados: wget.
  • Acceso a línea de comandos como root o un usuario con permisos de sudo.
  • Conexión a Internet.

Si aún no dispones del entorno adecuado, pásate por la guía de instalación de Java en CentOS 7. Una vez que tengas todos los requerimientos cumplidos, es momento de abrir una terminal y empezar el trabajo.

Cómo descargar Tomcat para CentOS 7

Debido a que la versión de Tomcat presente en los repositorios de la distribución es demasiado obsoleta (7.0.76), optaremos por descargar Tomcat para CentOS 7 en su versión más reciente, disponible desde la web oficial, que en el momento de escribir esta guía es la 9.0.27.

como descargar tomcat para centos 7

En la sección de descargas de la versión 9 encontraremos diversos enlaces, de los cuales el que buscamos es el núcleo o core de Tomcat, disponible en varios formatos:

descargar tomcat para centos 7

El paquete Core está disponible en formatos .zip y .tar.gz. Este último será el que descarguemos.

Si estás navegando sobre la máquina de instalación puedes descargar el paquete que te interese en la ubicación que quieras. En mi caso copiaré el enlace para descargarlo desde consola mediante el comando wget:

~$ wget http://apache.rediris.es/tomcat/tomcat-9/v9.0.27/bin/apache-tomcat-9.0.27.tar.gz

Cómo instalar Tomcat en CentOS 7

Para instalar Tomcat en CentOS 7 no basta con instalar un simple paquete, hay que hacer algunas tareas previas y posteriores. Vamos a verlas paso a paso.

Preparativos

Ejecutar Tomcat como root es un riesgo de seguridad, por lo que lo mejor es crear un usuario del sistema específico para Tomcat:

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

Extraemos el contenido del paquete directamente en el directorio /opt/tomcat/, que acabamos de crear para el usuario tomcat:

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

Se creará la carpeta /opt/tomcat/apache-tomcat-9.0.27/. Si vas a instalar sucesivas revisiones de Tomcat sin eliminar las anteriores puede que te interese crear un enlace simbólico apache-tomcat a la versión que quieras tener activa:

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

Ahora vamos a cambiar el propietario del directorio de Tomcat y su contenido al usuario tomcat que creamos antes:

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

Creación del servicio tomcat.service

Vamos a crear el servicio tomcat.service añadiendo el archivo correspondiente en /etc/systemd/system/ con un editor de texto:

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

Con este contenido:

[Unit]
Description=Tomcat 9.0 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

Tenemos que advertir a systemd de la existencia del nuevo servicio:

~$ sudo systemctl daemon-reload

Finalmente es el momento de iniciar el nuevo servicio tomcat:

~$ sudo systemctl start tomcat

Podemos comprobar que todo funciona como queremos con el comando systemctl status tomcat:

instalar tomcat en centos 7

Si necesitas que el nuevo servicio Tomcat esté siempre disponible y arranque cada vez que inicie CentOS 7, actívalo con la opción enable de systemctl:

~$ sudo systemctl enable tomcat

Cómo configurar el firewall para Tomcat en CentOS 7

Para acceder a la interfaz de Tomcat fuera de la máquina local, habrá que configurar el firewall para permitir el acceso al puerto 8080/TCP:

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

Para aplicar esta regla de inmediato hay que recargar la configuración del firewall:

~$ sudo firewall-cmd --reload

Y por fin podemos comprobar el funcionamiento de Tomcat en CentOS 7 mediante un navegador. A la dirección del servidor hay que añadir el puerto 8080 para acceder. En este ejemplo el servidor es accesible en el dominio centos7.local, por lo que la URL sería http://centos7.local:8080/

como instalar tomcat en centos 7

Permitir acceso remoto a la interfaz de Tomcat

Por defecto sólo se puede acceder a la interfaz de administración de Tomcat desde la máquina que ejecuta el servicio. Si, por ejemplo, intentamos acceder a la sección «Server Status» un mensaje nos lo confirmará:

Es posible cambiar el acceso para poder acceder desde la red configurando los archivos context.xml de las rutas /opt/tomcat/apache-tomcat/webapps/manager/META-INF/ y /opt/tomcat/apache-tomcat/webapps/host-manager/META-INF/

Editamos:

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

Buscaremos el bloque Context:

...
<Context antiResourceLocking="false" privileged="true" >
  <Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
  <Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer$
</Context>

Comentaremos la sección Valve que permite el acceso únicamente la máquina local:

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

Haremos idéntico cambio en el archivo context.xml del directorio /opt/tomcat/apache-tomcat/webapps/host-manager/META-INF/.

Terminados los cambios, reiniciamos el servicio tomcat:

~$ sudo systemctl restart tomcat

Si intentamos acceder de nuevo comprobaremos que en esta ocasión se nos piden credenciales de usuario:

instalacion de tomcat en centos 7

Pero aún no tenemos usuarios con los que acceder.

Crear usuarios de Tomcat

Aunque hemos accedido a la interfaz web de Tomcat, no podremos hacer gran cosa, ya que no hay usuarios en el sistema.

Para dar de alta usuarios de Tomcat debemos hacerlo manualmente editando el archivo tomcat-users.xml ubicado en el subidrectorio conf/ de la instalación de Tomcat.

Editaremos el archivo:

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

El contenido de este archivo por defecto es un bloque tomcat-users que sólo contiene comentarios.

Incluiremos dentro de este bloque la definición de los roles admin-gui y manager-gui, y un usuario admin que tenga ambos roles:

...
<tomcat-users xmlns="http://tomcat.apache.org/xml"
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
              xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd"
              version="1.0">
...
        <role rolename="admin-gui"/>
        <role rolename="manager-gui"/>
        <user username="admin" password="XXXXXXXX" roles="admin-gui,manager-gui"/>
</tomcat-users>

Una vez añadido el usuario administrador ya podemos utilizarlo para acceder a las zonas de la interfaz de Tomcat que requieren autenticación de usuario.

Antes intentamos entrar en la sección «Server Status» sin éxito; sin embargo, si ahora introducimos el usuario y la contraseña de nuestro administrador accederemos a la página correspondiente:

como intalar apache tomcat en centos 7

Instalar aplicaciones web desde archivos WAR

Si has creado o descargado una aplicación para tu servidor Tomcat en CentOS 7 y está en formato .war, la puedes instalar desde el «Gestor de Aplicaciones Web» de Tomcat. Para ello debes desplazarte a la sección «Desplegar» del gestor y seleccionar el archivo .war con el botón «Seleccionar archivo«:

Al pulsar el botón «Desplegar» el gestor de aplicaciones cargará y desplegará la aplicación, recargando la página del gestor. Si el proceso se realiza correctamente, la caja de mensajes mostrará un escueto «OK» y podremos ver la nueva aplicación disponible y desplegada en la lista de aplicaciones:

Para comprobar el funcionamiento de la nueva aplicación que acabamos de desplegar desde el archivo WAR, bastará con pulsar sobre su enlace en la lista de aplicaciones del gestor:

Para desinstalar una aplicación bastará con pulsar su correspondiente botón «Replegar» en el listado de aplicaciones del gestor. Tanto el archivo .war como el directorio de la aplicación desaparecerán de la carpeta webapps/ de Tomcat.

Conclusión

Ahora ya sabes cómo instalar Tomcat en CentOS 7 y por qué es más interesante instalar la versión disponible en la web oficial que los paquetes disponibles en los repositorios de la distribución. El proceso es más laborioso, pero el resultado merece la pena y podrás desplegar aplicaciones Java con las últimas características que permite Apache Tomcat.

¡Apoya este sitio!

Si tenías problemas con la instalación de Tomcat en CentOS 7 y gracias a esta guía los has superado, quizás quieras agradecérnoslo contribuyendo al mantenimiento de este sitio. Cualquier mínima donación es útil y ayudará a la creación de más guías y tutoriales, ¡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