Apache Tomcat es un servidor de aplicaciones Java ampliamente utilizado para ejecutar aplicaciones web desarrolladas con tecnologías como Servlets, JSP y Spring Boot. Es una de las herramientas más utilizadas en entornos empresariales y educativos debido a su estabilidad, facilidad de configuración y compatibilidad con Java.
En esta guía aprenderás paso a paso cómo instalar Apache Tomcat en Linux utilizando diferentes distribuciones como Ubuntu, Debian, Rocky Linux, AlmaLinux, CentOS y Fedora.
¿Qué es Apache Tomcat?
Apache Tomcat es un contenedor de servlets: Su función principal es ejecutar aplicaciones Java web basadas en:
- Servlets
- JavaServer Pages (JSP)
- Jakarta EE Web Profiles
- Aplicaciones Spring Boot WAR
El sitio oficial de Apache Tomcat es: https://tomcat.apache.org/
Requisitos Previos
Antes de instalar Apache Tomcat necesitas:
- Un sistema Linux actualizado.
- Acceso root o usuario con permisos sudo.
- Tener Java instalado. Revisa el post Cómo instalar Java en cualquier sistema operativo.
Verificar si Java está instalado
Ejecuta el siguiente comando:
java -version
Si Java está instalado verás una salida similar:
openjdk version "21"
Instalar Java en Linux
Si a un no tiene Java, revisa los siguientes posts. Recomiendo las versiones Java 17 en adelante.
- Instalar Java 25 en Linux
- Instalar Java 21 en Linux
- Instalar Java 17 en Linux
- Instalar Java 11 en Linux
- Instalar Java 1.8 en Linux
Descargar Apache Tomcat
Apache Tomcat puede descargarse directamente desde el sitio oficial.
Puedes consultar las versiones disponibles aquí: https://tomcat.apache.org/whichversion.html.
Para estas prueba de instalación, vamos a trabajar con Apache Tomcat 11 https://tomcat.apache.org/download-11.cgi.
Crear directorio para Tomcat
Vamos a crear un directorio para descargar Apache Tomcat.
sudo mkdir -p /opt/tomcat
Descargar Tomcat desde la terminal
Ejemplo usando Tomcat 11:
cd /tmp
Luego realizamos la descarga
wget https://dlcdn.apache.org/tomcat/tomcat-11/v11.0.24/bin/apache-tomcat-11.0.24.tar.gz
Extraer archivos
Procedemos a esterar el contenido dento del directorio creado.
sudo tar -xvzf apache-tomcat-10.1.42.tar.gz -C /opt/tomcat --strip-components=1
Crear Usuario para Apache Tomcat
Por seguridad se recomienda ejecutar Tomcat con un usuario dedicado.
sudo useradd -r -m -U -d /opt/tomcat -s /bin/false tomcat
- sudo: Ejecuta el comando con privilegios de administrador.
- useradd: Crea un nuevo usuario en el sistema.
- -r: Crea un usuario de sistema (UID bajo, normalmente sin inicio de sesión).
- -m: Crea el directorio home del usuario.
- -U: Crea también un grupo con el mismo nombre del usuario.
- -d /opt/tomcat: Establece /opt/tomcat como directorio home.
- -s /bin/false: Impide que el usuario pueda iniciar sesión.
- tomcat: Nombre del usuario que se crea.
Asignar permisos
Procedemos a cambiar el usuario y grupo propietario a directorio donde dejamos tomcat.
sudo chown -R tomcat:tomcat /opt/tomcat
Cambia el propietario y el grupo propietario de todos los archivos y directorios que se encuentran dentro de /opt/tomcat, asignándolos al usuario tomcat y al grupo tomcat.
- sudo: Ejecuta el comando con permisos de administrador (root). Cambiar propietarios requiere privilegios elevados.
- chown: Significa change owner (cambiar propietario). Modifica el usuario y/o grupo propietario de un archivo o directorio.
- -R: Recursive (recursivo). Aplica el cambio al directorio indicado y a todo su contenido: subdirectorios y archivos.
- tomcat:tomcat: usuario:grupo. El primer tomcat es el propietario y el segundo es el grupo propietario.
- /opt/tomcat: Directorio sobre el que se realizará el cambio de propietario.
sudo chmod -R u+x /opt/tomcat/bin
- sudo: Ejecuta el comando con privilegios de administrador.
- chmod: Change Mode. Modifica los permisos de archivos y directorios.
- -R: Aplica el cambio de forma recursiva a todo el contenido del directorio.
- u+x: Agrega (+) el permiso de ejecución (x) al propietario (u).
- /opt/tomcat/bin: Directorio que contiene los scripts ejecutables de Tomcat.
Dentro del directorio bin se encuentran los scripts que controlan el servidor: como startup.sh, sin el permiso de ejecución
Configurar Apache Tomcat como Servicio Systemd
Crear un servicio permite iniciar, detener y reiniciar Tomcat fácilmente.
Revisa el posts Introducción a systemd, donde explicamos a detalle sobre Systemd
Crear archivo del servicio
sudo nano /etc/systemd/system/tomcat.service
Agregar el siguiente contenido:
[Unit]
Description=Apache Tomcat Web Application Container
After=network.target
[Service]
Type=forking
User=tomcat
Group=tomcat
Environment=JAVA_HOME=/usr/lib/jvm/default-java
Environment=CATALINA_PID=/opt/tomcat/temp/tomcat.pid
Environment=CATALINA_HOME=/opt/tomcat
Environment=CATALINA_BASE=/opt/tomcat
Environment='CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC'
Environment='JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom'
ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh
RestartSec=10
Restart=always
[Install]
WantedBy=multi-user.target
Recargar systemd
sudo systemctl daemon-reload
Habilitar Tomcat al iniciar
sudo systemctl enable tomcat
Iniciar Apache Tomcat
sudo systemctl start tomcat
Verificar estado del servicio
sudo systemctl status tomcat
Abrir Puerto en el Firewall
Tomcat utiliza por defecto el puerto 8080.
Ubuntu y Debian con UFW
sudo ufw allow 8080/tcp
Rocky Linux, AlmaLinux y CentOS
sudo firewall-cmd --permanent --add-port=8080/tcp
sudo firewall-cmd --reload
Acceder a Apache Tomcat
Una vez iniciado el servicio puedes acceder desde el navegador usando: http://IP_DEL_SERVIDOR:8080
Ejemplo: http://192.168.1.100:8080
Si todo funciona correctamente aparecerá la página inicial de Apache Tomcat.
Configurar Usuarios Administrativos
Para acceder al panel administrativo debes configurar usuarios.
Editar archivo tomcat-users.xml
sudo nano /opt/tomcat/conf/tomcat-users.xml
Agregar antes de la etiqueta cierre:
<role rolename="manager-gui"/>
<role rolename="admin-gui"/>
<user username="admin" password="TuPasswordSeguro" roles="manager-gui,admin-gui"/>
Reiniciar Tomcat
sudo systemctl restart tomcat
Acceso al Panel Administrativo
Manager App: http://IP_DEL_SERVIDOR:8080/manager/html
Host Manager: http://IP_DEL_SERVIDOR:8080/host-manager/html
Comandos Útiles de Apache Tomcat
Detener servicio
sudo systemctl stop tomcat
Reiniciar servicio
sudo systemctl restart tomcat
Ver logs en tiempo real
sudo tail -f /opt/tomcat/logs/catalina.out
Verificar puertos abiertos
sudo ss -tulnp | grep 8080
Cómo Desplegar Aplicaciones WAR
Las aplicaciones Java normalmente se despliegan en formato WAR.
Copiar archivo WAR
sudo cp mi-aplicacion.war /opt/tomcat/webapps/
Tomcat desplegará automáticamente la aplicación.
Acceder a la aplicación
http://IP_DEL_SERVIDOR:8080/mi-aplicacion
Problemas Comunes
Tomcat no inicia
Verifica:
- Que Java esté correctamente instalado.
- Que JAVA_HOME esté bien configurado.
- Permisos del directorio /opt/tomcat.
- Logs en catalina.out.
Puerto 8080 ocupado
Verifica qué proceso usa el puerto:
sudo lsof -i :8080
Cambiar puerto de Tomcat
Editar:
sudo nano /opt/tomcat/conf/server.xml
Buscar: Connector port="8080"
Cambiar por otro puerto: Connector port="9090"
Conclusión
Apache Tomcat es uno de los servidores Java más utilizados para ejecutar aplicaciones empresariales y proyectos web modernos. Realizando correctamente la instalación, configuración de usuarios y apertura de puertos podrás desplegar aplicaciones Java de manera estable y segura en Linux.
Además, combinar Tomcat con frameworks como Spring Boot, Spring MVC o Jakarta EE permite construir aplicaciones robustas para entornos productivos.