Tomcat 10, una aplicación de servidor de código abierto
En el siguiente artículo vamos a echar un vistazo a cómo podemos instalar Tomcat 10 en Ubuntu 20.04. Apache Tomcat funciona como un contenedor de servlets desarrollado bajo el proyecto Jakarta en la Apache Software Foundation. Este es desarrollado y actualizado por miembros de la Apache Software Foundation y voluntarios independientes.
Aunque hoy en día este no es tan popular como otros servidores, Tomcat sigue teniendo su utilidad en muchos proyectos. Tomcat requiere que Java SE 8 o posterior esté instalado en el sistema para que funcione de forma correcta.
Cómo instalar Tomcat 10 en Ubuntu 20.04
Instalar OpenJDK en Ubuntu
Como decía líneas más arriba, Tomcat requiere que Java JDK esté instalado en nuestro sistema. Para esto tanto podemos instalar Oracle Java JDK como su alternativa de código abierto OpenJDK.
Para instalar el OpenJDK que podemos encontrar en los repositorios de Ubuntu, no tenemos más que abrir una terminal (Ctrl+Alt+T) y ejecutar:
sudo apt update; sudo apt install default-jdk
Una vez instalado, solo necesitaremos verificar la instalación comprobando la versión de Java:
java -version
Crear un usuario y un grupo para Tomcat
Primero vamos a crear un nuevo grupo para Tomcat al cual vamos a llamar tomcat. Esto lo haremos con el comando:
sudo groupadd tomcat
A continuación, es el momento de crear un nuevo usuario para Tomcat al cual vamos a llamar tomcat. Después lo convertiremos en miembro del grupo tomcat que creamos antes. Además también haremos de /opt/tomcat la carpeta de inicio para el usuario que vamos a crear. Para hacer todo esto, en la misma terminal solo tendremos que ejecutar:
sudo useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat
Descargar Tomcat
Llegados a este punto, ya estamos listos para descargar y configurar Tomcat. En el momento de escribir estas líneas, la última versión publicada de la serie 10 es la 10.0.12, y se puede descargar desde la página web del proyecto.
Además de utilizar el navegador web, también podemos obtener este último paquete publicado a día de hoy abriendo una terminal (Ctrl+Alt+T) y ejecutando en ella los comandos:
cd /tmp
wget ftp://apache.cs.utah.edu/apache.org/tomcat/tomcat-10/v10.0.12/bin/apache-tomcat-10.0.12.tar.gz
Cuando finalice la descarga, vamos a crear la carpeta de inicio de Tomcat en /opt/tomcat. Ahí es dónde vamos a descomprimir el archivo descargado. Para hacer esto no tendremos más que ejecutar los comandos:
sudo mkdir /opt/tomcat
sudo tar xzvf apache-tomcat-10*tar.gz -C /opt/tomcat/
A continuación, vamos a darle al usuario de Tomcat el control de todo el directorio, y haremos que todos los scripts en la ubicación bin sean ejecutables:
sudo chown -R tomcat: /opt/tomcat
sudo sh -c 'chmod +x /opt/tomcat/apache-tomcat-10.0.12/bin/*.sh'
Configurar el servicio Tomcat
Ahora que ya tenemos el paquete extraído en la ubicación que queremos, vamos a ejecutar el siguiente comando para abrir el archivo de configuración de Tomcat para el usuario predeterminado:
sudo vim /opt/tomcat/apache-tomcat-10.0.12/conf/tomcat-users.xml
Dentro del archivo vamos a crear una cuenta con contraseña para el usuario admin y a guardarla dentro del archivo. Esto podemos hacerlo copiando y pegando las siguientes líneas en el archivo, justo antes de:
</tomcat-users>
<role rolename="manager-gui"/> <role rolename="admin-gui"/> <user username="admin" password="escribe-la-contraseña-para-admin" roles="manager-gui,admin-gui"/>
Después de cambiar la opción “password” por nuestra contraseña, guardamos y cerramos el editor. A continuación, ejecutaremos el siguiente comando para crear una cuenta de servidor para Tomcat:
sudo vim /etc/systemd/system/tomcat.service
Cuando se abra el editor, vamos a pegar las siguientes líneas dentro. Después guardaremos el archivo.
[Unit] Description=Tomcat servlet container After=network.target [Service] Type=forking User=tomcat Group=tomcat Environment="JAVA_HOME=/usr/lib/jvm/default-java" Environment="JAVA_OPTS=-Djava.security.egd=file:///dev/urandom" Environment="CATALINA_BASE=/opt/tomcat/apache-tomcat-10.0.12" Environment="CATALINA_HOME=/opt/tomcat/apache-tomcat-10.0.12" Environment="CATALINA_PID=/opt/tomcat/apache-tomcat-10.0.12/temp/tomcat.pid" Environment="CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC" ExecStart=/opt/tomcat/apache-tomcat-10.0.12/bin/startup.sh ExecStop=/opt/tomcat/apache-tomcat-10.0.12/bin/shutdown.sh [Install] WantedBy=multi-user.target
Cuando estemos devuelta en la terminal, vamos a ejecutar los siguientes comandos para volver a cargar los perfiles de systemd y habilitar el servicio tomcat:
sudo systemctl daemon-reload sudo systemctl start tomcat.service sudo systemctl enable tomcat.service
Tras estos comandos, para comprobar si Tomcat se está ejecutando o no, solo necesitaremos ejecutar:
sudo systemctl status tomcat.service
Iniciar la interfaz gráfica de Tomcat
Llegados a este punto, tan solo será necesario abrir nuestro navegador y dirigirnos a la IP del servidor local o el nombre de host. Esto debería mostrarnos la página predeterminada de Tomcat:
http://localhost:8080
Una vez en la interfaz del programa, habrá que hacer clic en la opción Manager para iniciar sesión en la página de backend. Aquí tendremos como utilizar como nombre de usuario admin y como contraseña la que indiquemos en el archivo tomcat-users.xml.
Si quieres acceder al servidor Tomcat de forma remota, será necesario incluir en la lista blanca la dirección IP remota a la que se le permitirá el acceso. Para cambiar las restricciones de dirección, será necesario abrir los archivos context.xml apropiados. Para la aplicación Manager, el archivo a editar será:
sudo nano /opt/tomcat/apache-tomcat-10.0.12/webapps/manager/META-INF/context.xml
Para la aplicación Host Manager, el archivo a editar sería este:
sudo vim /opt/tomcat/apache-tomcat-10.0.12/webapps/host-manager/META-INF/context.xml
En el interior de ambos archivos, comenta la restricción de la dirección IP para permitir conexiones desde cualquier lugar. Si quieres permitir el acceso solo a conexiones provenientes de tu propia dirección IP, puedes añadir tu dirección IP pública a la lista.
Los archivos context.xml para las aplicaciones web de Tomcat deben tener un aspecto similar al siguiente:
Tras guardar los archivos context.xml, es necesario reiniciar el servicio Tomcat ejecutando el comando:
sudo systemctl restart tomcat
Se puede obtener más información sobre Tomcat y su funcionamiento en la página web del proyecto, en su documentación oficial o en su Wiki.