Cómo instalar Apache Tomcat 9 en Debian 10


Apache Tomcat es un software de servidor de aplicaciones web gratuito, maduro, robusto y popular que se utiliza para servir aplicaciones basadas en Java. Es una implementación de código abierto de las tecnologías Java Servlet, JavaServer Pages (JSP), Java Expression Language y Java WebSocket, desarrollada por Apache Software Foundation (ASF).

Este tutorial lo guiará a través del proceso de instalación y configuración de la última versión de Tomcat 9 en su servidor Debian 10 Linux.

Antes de comenzar con este tutorial, asegúrese de tener una cuenta de usuario no root con privilegios sudo en su servidor. De lo contrario, puede configurar uno usando nuestra guía sobre Cómo crear un nuevo usuario de Sudo en Ubuntu/Debian.

Paso 1: instale Java en Debian 10

Para instalar la última versión de Tomcat 9 en su servidor Debian 10, debe tener Java instalado en el servidor para poder ejecutar el código de la aplicación web Java.

Primero, actualice el índice del paquete de software del sistema usando el comando apt como se muestra.

$ sudo apt update

Luego instale el paquete Java Development Kit usando el comando apt.

$ sudo apt install default-jdk

Una vez que se complete la instalación de Java, verifique la versión de Java instalada en el sistema usando el siguiente comando.

$ java -version

Paso 2: instale Tomcat en Debian 10

Por motivos de seguridad, Tomcat debe ser instalado y ejecutado por un usuario sin privilegios (es decir, no root). Crearemos un nuevo grupo y usuario de Tomcat para ejecutar el servicio Tomcat en el directorio/opt/tomcat (instalación de Tomcat).

$ sudo mkdir /opt/tomcat
$ sudo groupadd tomcat
$ sudo useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat

Una vez que configuramos el usuario de tomcat, ahora descargue la última versión de Tomcat 9 (es decir, 9.0.30) desde la herramienta de línea de comandos curl para descargar el tarball y extraer el archivo en el directorio/opt/tomcat.

$ curl -O http://www-eu.apache.org/dist/tomcat/tomcat-9/v9.0.30/bin/apache-tomcat-9.0.30.tar.gz
$ sudo tar xzvf apache-tomcat-9*tar.gz -C /opt/tomcat --strip-components=1

A continuación, asigne los permisos al usuario de Tomcat para tener acceso al directorio/opt/tomcat de instalación de Tomcat.

$ cd /opt/tomcat
$ sudo chgrp -R tomcat /opt/tomcat
$ sudo chmod -R g+r conf
$ sudo chmod g+x conf
$ sudo chown -R tomcat webapps/ work/ temp/ logs/

Paso 3: crear un archivo de servicio systemd de Tomcat

Crearemos un nuevo archivo de servicio systemd para administrar y ejecutar Tomcat como un servicio en systemd. Para crear un archivo de servicio, debe saber dónde está instalado Java, ya que esto se conoce como JAVA_HOME utilizando el siguiente comando.

$ sudo update-java-alternatives -l

De la salida anterior, nuestro JAVA_HOME es:

/usr/lib/jvm/java-1.11.0-openjdk-amd64

Una vez que conocemos nuestro JAVA_HOME , podemos crear el archivo de servicio systemd llamado tomcat.service en el directorio/etc/systemd/system ejecutando.

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

Pegue el siguiente contenido en su archivo tomcat.service .

[Unit]
Description=Apache Tomcat Web Application Container
After=network.target

[Service]
Type=forking

Environment=JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-amd64
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

User=tomcat
Group=tomcat
UMask=0007
RestartSec=10
Restart=always

[Install]
WantedBy=multi-user.target

A continuación, vuelva a cargar systemd para aplicar los nuevos cambios, de modo que conozca nuestro archivo tomcat.service .

$ sudo systemctl daemon-reload

Finalmente, puede iniciar y verificar el estado del servicio Tomcat ejecutando los siguientes comandos.

$ sudo systemctl start tomcat
$ systemctl status tomcat
$ systemctl enable tomcat

Paso 4: Habilite el inicio de sesión para Tomcat Manager y Host Manager

Para acceder a las aplicaciones web manager-gui y admin-gui que vienen con Tomcat, debemos habilitar el inicio de sesión en nuestro servidor Tomcat editando el archivo tomcat-users.xml como se muestra.

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

Agregue la siguiente configuración dentro de las etiquetas , con el nombre de usuario y contraseña correctos como se muestra.

<role rolename="admin-gui,manager-gui"/> 
<user username="admin" password="password" roles="admin-gui,manager-gui"/>

La configuración anterior implica que agregue los roles admin-gui y manager-gui a un usuario llamado "admin" con una contraseña de "tecmint123".

Paso 5: Habilite el inicio de sesión remoto en Tomcat Manager y Host Manager

Por motivos de seguridad, el acceso a las aplicaciones Tomcat Manager y Host Manager está bloqueado en el host local (el servidor donde se implementa), de forma predeterminada.

Sin embargo, puede habilitar el acceso remoto desde una dirección IP específica o cualquier host o red a las aplicaciones Tomcat Manager y Host Manager como se explica a continuación.

Para la aplicación Tomcat Manager, escriba:

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

Para la aplicación Host Manager, escriba:

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

En el interior, comente la restricción de la dirección IP para permitir el acceso desde cualquier red.

<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" />-->
</Context>

Alternativamente, habilite el acceso remoto desde su propia dirección IP 192.168.0.103 o desde una red (192.168.0.0) agregando la dirección IP a la lista.

allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|192.168.0.103" />-->
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|192.168.0.*" />-->

Guarde los archivos y reinicie el servicio Tomcat para mantener los cambios en vigor.

$ sudo systemctl restart tomcat

Paso 6: acceda a la interfaz web de Tomcat

Para acceder a una interfaz web Tomcat desde cualquier navegador, debe abrir el puerto 8080 para permitir el tráfico al servicio Tomcat en el firewall escribiendo.

$ sudo ufw allow 8080

Ahora acceda a la interfaz de administración web de Tomcat yendo al nombre de dominio o dirección IP de su servidor seguido del puerto 8080 en su navegador.

http://server_domain_or_IP:8080

Accedamos a la aplicación Manager en la siguiente URL, deberá ingresar las credenciales de la cuenta.

http://server_domain_or_IP:8080/manager/html

Accedamos al Administrador de host en la siguiente URL, deberá ingresar las credenciales de la cuenta.

http://server_domain_or_IP:8080/host-manager/html/

¡Eso es todo! Su instalación de Tomcat está completa, ahora puede implementar y ejecutar aplicaciones web Java. Si tiene alguna pregunta o pensamiento que compartir, comuníquese con nosotros a través del formulario de comentarios a continuación.