Cómo Instalar Apache Tomcat en Ubuntu

Si desea ejecutar páginas web que incluyan código de páginas de servidor Java o servlets de Java, puede utilizar Apache Tomcat. Es un servidor web de código abierto y contenedor de servlets, lanzado por la Fundación Apache Software.

Tomcat se puede utilizar como un producto independiente, con su propio servidor web o se puede combinar con otros servidores web como Apache o IIS. La versión más reciente de Tomcat es 9.0.14 y se basa en Tomcat 8 y 8.5 e implementa Servlet 4.0, JSP 2.2.

Leer también: Cómo instalar Apache Tomcat 9 en CentOS/RHEL

Se han realizado las siguientes mejoras en la nueva versión:

  • Admite HTTP/2.
  • Admite el uso de OpenSSL para el soporte de TLS con los conectores JSSE.
  • Admite hosts virtuales de TLS (SNI).

En este tutorial le mostraremos cómo instalar Apache Tomcat 9 en Ubuntu 18.10 y versiones anteriores de Ubuntu.

Paso 1: Instalar Java

Para ejecutar aplicaciones web Java, Tomcat requiere que Java esté instalado en el servidor. Para cumplir con ese requisito, instalaremos OpenJDK como se muestra.

$ sudo apt update
$ sudo apt install default-jdk

Paso 2: Crear un usuario de Tomcat

Por razones de seguridad, Tomcat debe ejecutarse con un usuario no privilegiado, es decir, no root. Por eso crearemos el usuario y grupo tomcat que ejecutará el servicio. Comencemos creando el grupo tomcat:

$ sudo groupadd tomcat

A continuación crearemos un usuario tomcat, que será miembro del grupo tomcat. La ubicación de inicio de este usuario será /opt/tomcat ya que aquí es donde vamos a instalar Tomcat. El shell se establecerá en /bin/false:

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

Ahora estamos listos para proceder al siguiente paso y descargar Tomcat.

Paso 3: Instalando Apache Tomcat

Para descargar el paquete más reciente disponible, dirígete a la página de descargas de Tomcat y obtén la última versión.

En el momento de escribir este tutorial, la última versión de Tomcat es 9.0.14. Para descargar esa versión, cambia tu directorio actual a otro. Por ejemplo, puedes usar /tmp:

# cd /tmp

Y luego usa el comando wget para descargar el archivo de Tomcat:

$ wget http://apache.cbox.biz/tomcat/tomcat-9/v9.0.14/bin/apache-tomcat-9.0.14.tar.gz
$ wget https://www.apache.org/dist/tomcat/tomcat-9/v9.0.14/bin/apache-tomcat-9.0.14.tar.gz.sha512

Si deseas verificar el valor sha512 del archivo, puedes ejecutar:

$ sha512sum apache-tomcat-9.0.14.tar.gz
$ cat apache-tomcat-9.0.14.tar.gz.sha512

El valor resultante (hash) de ambos archivos debería ser el mismo.

Como se mencionó anteriormente, vamos a instalar Tomcat en /opt/tomcat. Tendremos que crear ese directorio:

$ sudo mkdir /opt/tomcat

Y ahora podemos extraer el paquete descargado en ese nuevo directorio:

$ sudo tar xzvf apache-tomcat-9.0.14.tar.gz -C /opt/tomcat --strip-components=1

Ahora navega a /opt/tomcat desde donde actualizaremos la propiedad y permisos de la carpeta:

# cd /opt/tomcat

Y establece el grupo propietario de /opt/tomcat como tomcat:

$ sudo chgrp -R tomcat /opt/tomcat

A continuación actualizaremos el acceso de lectura del grupo tomcat sobre el directorio conf y estableceremos permisos de ejecución al directorio:

$ sudo chmod -R g+r conf
$ sudo chmod g+x conf

Luego haremos que el usuario tomcat sea propietario de los directorios webapps, work, temp y logs:

$ sudo chown -R tomcat webapps/ work/ temp/ logs/

Ahora que los permisos y propietarios adecuados han sido establecidos, estamos listos para crear un archivo de inicio de systemd, que nos ayudará a gestionar el proceso de Tomcat.

Paso 4: Creación de un Archivo de Servicio SystemD para Tomcat

Como queremos ejecutar Tomcat como un servicio, necesitaremos un archivo que nos ayude a gestionar fácilmente el proceso. Con ese propósito crearemos un archivo de servicio systemd. Tomcat tendrá que saber dónde se encuentra Java en su sistema.

Para encontrar esa ubicación, use el siguiente comando:

$ sudo update-java-alternatives -l

La salida de ese comando le mostrará la ubicación de JAVA_HOME.

Find Java Home

Ahora, utilizando esa información, estamos listos para crear nuestro archivo de servicio de Tomcat.

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

Pegue el código a continuación en el archivo:

[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

Asegúrese de establecer JAVA_HOME con el de su sistema. Cuando esté listo, guarde el archivo y ciérrelo. Ahora, utilizando el comando a continuación, recargue el demonio de systemd para que pueda encontrar nuestro nuevo archivo de servicio:

$ sudo systemctl daemon-reload

Luego inicie el servicio de Tomcat:

$ sudo systemctl start tomcat

Puede verificar el estado del servicio con:

$ sudo systemctl status tomcat
Verify Apache Tomcat Status

Ahora puedes probar Tomcat en tu navegador utilizando la dirección IP de tu sistema seguida del puerto predeterminado del servicio 8080.

http://ip-address:8080

El resultado que deberías ver será similar al que se muestra en la imagen a continuación:

Apache Tomcat Web Page

En caso de que no veas la salida anterior, es posible que necesites permitir el puerto 8080 en tu firewall como se muestra a continuación.

$ sudo ufw allow 8080

Si deseas que Tomcat se inicie en el arranque del sistema, ejecuta:

$ systemctl enable tomcat

Paso 5: Configurando Apache Tomcat

Tomcat tiene una aplicación de gestión web que viene preinstalada. Para poder utilizarla, necesitaremos configurar la autenticación en nuestro archivo tomcat-users.xml. Abre y edita ese archivo con tu editor de texto favorito:

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

Vamos a añadir un usuario que podrá acceder a las interfaces de manager y admin. Para configurar dicho usuario, entre las etiquetas <tomcat-users> </tomcat-users>, añade la siguiente línea:

<user username="Username" password="Password" roles="manager-gui,admin-gui"/>

Asegúrate de cambiar:

  • Nombre de usuario – con el usuario que deseas autenticar.
  • Contraseña – con la contraseña que deseas utilizar para la autenticación.
Configure Apache Tomcat

Dado que por defecto el acceso al Host Manager y al Manager está restringido, querremos eliminar o modificar estas restricciones. Para realizar tales cambios, puedes cargar los siguientes archivos:

Para la aplicación Manager:

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

Para la aplicación Host Manager:

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

Dentro de esos archivos, puedes comentar la restricción de IP o permitir tu dirección IP pública. Para el propósito de este tutorial, he comentado la línea:

Allow Apache Tomcat Access

Para que nuestros cambios se apliquen, recarga el servicio de tomcat con:

$ sudo systemctl restart tomcat 


Ahora puedes probar la
aplicación manager accediendo a http://direcciónip:8080/manager/. Cuando se te pida nombre de usuario y contraseña, utiliza los que configuraste anteriormente. La interfaz que debes ver después se parece a esta:

Access Apache Tomcat Manager

Para acceder al gestor de host, puedes usar http://dirección-ip:8080/host-manager/.

Access Apache Tomcat Virtual Host Manager

Usando el gestor de host virtual, puedes crear hosts virtuales para tus aplicaciones Tomcat.

Paso 6: Probando Apache Tomcat Creando un Archivo de Prueba

Puedes comprobar si todo funciona correctamente, creando un archivo de prueba dentro del directorio /opt/tomcat/webapps/ROOT/.

Creemos dicho archivo:

$ sudo vim /opt/tomcat/webapps/ROOT/tecmint.jsp

Dentro de ese archivo, pega el siguiente código:

<html>
<head>
<title>Tecmint post:TomcatServer</title>
</head>
<body>

<START OF JAVA CODES>
<%
    out.println("Hello World! I am running my first JSP Application");
    out.println("<BR>Tecmint is an Awesome online Linux Resource.");
%>
<END OF JAVA CODES>

</body>
</html>

Guarda el archivo y establece la propiedad como se muestra.

$ sudo chown tomcat: /opt/tomcat/apache-tomcat-8.5.14/webapps/ROOT/tecmint.jsp

Ahora carga ese archivo en tu navegador utilizando http://dirección-ip:8080/tecmint.jsp.

Test Apache Tomcat

¡Eso es todo! Has completado la configuración de tu servidor Apache Tomcat y has ejecutado tu primer código Java. Esperamos que el proceso haya sido fácil y sencillo para ti. Si tienes algún problema, comparte tus problemas a través del formulario de comentarios a continuación.

Source:
https://www.tecmint.com/install-apache-tomcat-in-ubuntu/