Cómo instalar Apache Tomcat en Ubuntu


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

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.

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

  • Se agregó compatibilidad con HTTP/2.
  • Se agregó compatibilidad para usar OpenSSL para la compatibilidad con TLS con los conectores JSSE.
  • Se agregó soporte para hosts virtuales TLS (SNI).

En este tutorial, le mostraremos cómo instalar Apache Tomcat 9 en Ubuntu 18.10 y una versión anterior 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 sin privilegios, es decir, no root. Es por eso que crearemos tomcat de usuario y grupo que ejecutará el servicio. Empiece por crear el grupo tomcat:

$ sudo groupadd tomcat

A continuación, crearemos un usuario de 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 debe establecerse en/bin/false:

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

Ahora estamos listos para continuar con el siguiente paso y descargar Tomcat.

Paso 3: instalar Apache Tomcat

Para descargar el último paquete disponible, diríjase a la página de descarga de Tomcat y obtenga 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, cambie su directorio actual a otro. Por ejemplo, puede usar/tmp:

# cd /tmp

Y luego usando el comando wget para descargar el archivo 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 desea verificar la suma sha512 del archivo, puede ejecutar:

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

El valor resultante (hash) para ambos archivos debe 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 navegue a/opt/tomcat desde donde actualizaremos la propiedad y los permisos de la carpeta:

# cd /opt/tomcat

Y establezca el propietario del grupo de/opt/tomcat en tomcat:

$ sudo chgrp -R tomcat /opt/tomcat

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

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

A continuación, haremos que el usuario tomcat sea el propietario de los directorios webapps, work, temp y logs:

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

Ahora se han establecido los permisos y las propiedades adecuados y estamos listos para crear un archivo de inicio systemd, que nos ayudará a administrar el proceso de Tomcat.

Paso 4: Creación de un archivo de servicio SystemD para Tomcat

Debido a que queremos ejecutar Tomcat como un servicio, necesitaremos tener un archivo que nos ayudará a administrar fácilmente el proceso. Para ello 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.

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

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

Pegue el siguiente código 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 configurar JAVA_HOME con el de su sistema. Cuando esté listo, guarde el archivo y ciérrelo. Ahora, usando el siguiente comando, vuelva a cargar el demonio systemd para que pueda encontrar nuestro nuevo archivo de servicio:

$ sudo systemctl daemon-reload

Luego inicie el servicio Tomcat:

$ sudo systemctl start tomcat

Puede verificar el estado del servicio con:

$ sudo systemctl status tomcat

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

http://ip-address:8080

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

En caso de que no vea el resultado anterior, es posible que deba permitir el puerto 8080 en su firewall como se muestra.

$ sudo ufw allow 8080

Si desea que Tomcat se inicie al arrancar el sistema, ejecute:

$ systemctl enable tomcat

Paso 5: configurar Apache Tomcat

Tomcat tiene una aplicación de administrador web que viene preinstalada. Para usarlo, necesitaremos configurar la autenticación dentro de nuestro archivo tomcat-users.xml. Abra y edite ese archivo con su editor de texto favorito:

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

Vamos a agregar un usuario que podrá acceder a las interfaces de administrador y administrador. Para configurar dicho usuario, entre las etiquetas , agregue 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 desea autenticar.
  • Contraseña: con la contraseña que desea utilizar para la autenticación.

Dado que, de forma predeterminada, el acceso al Administrador de host y al Administrador está restringido, querremos eliminar o modificar estas restricciones. Para realizar dichos cambios, puede 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, puede comentar la restricción de IP o permitir su dirección IP pública allí. A los efectos de este tutorial, he comentado la línea:

Para hacer que nuestros cambios estén activos, vuelva a cargar el servicio tomcat con:

$ sudo systemctl restart tomcat 


Ahora puede probar la aplicación de administrador accediendo a http:// ipaddress: 8080/manager /. Cuando se le solicite el nombre de usuario y la contraseña, utilice los que ha configurado anteriormente. La interfaz que debería ver después se ve así:

Para acceder al administrador de host, puede utilizar http:// dirección-ip: 8080/host-manager /.

Con el administrador de host virtual, puede crear hosts virtuales para sus aplicaciones Tomcat.

Paso 6: probar Apache Tomcat mediante la creación de un archivo de prueba

Puede verificar si todo está funcionando sin problemas, 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>

Guarde el archivo y establezca la propiedad como se muestra.

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

Ahora cargue ese archivo en su navegador usando http:// dirección-ip: 8080/tecmint.jsp.

¡Eso es! Ha completado la configuración de su servidor Apache Tomcat y ejecutó su primer código Java. Esperamos que el proceso haya sido sencillo y directo para usted. Si tiene algún problema, comparta sus problemas a través del formulario de comentarios a continuación.