Búsqueda de sitios web

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 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.

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

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

  • Se agregó soporte para HTTP/2.
  • Se agregó soporte para usar OpenSSL para soporte 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 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 sin privilegios, es decir, no root. Es por eso que crearemos un usuario y un grupo tomcat que ejecutará el servicio. Comience 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 instalaremos Tomcat. El shell se establecerá 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.

Al momento de escribir este tutorial, la última versión de Tomcat es la 9.0.14. Para descargar esa versión, cambie su directorio actual a otro. Por ejemplo, puedes 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, instalaremos 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 hasta /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 en el directorio conf y estableceremos permisos de ejecución para el directorio:

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

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

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

Ahora se han configurado 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: Crear un archivo de servicio SystemD para Tomcat

Como queremos ejecutar Tomcat como un servicio, necesitaremos tener un archivo que nos ayude a administrar fácilmente el proceso. Para ello crearemos un archivo de servicio systemd. Tomcat deberá saber dónde se encuentra Java en su sistema.

Para encontrar esa ubicación use el siguiente comando:

sudo update-java-alternatives -l

El resultado de ese comando le mostrará la ubicación de JAVA_HOME.

Ahora, usando 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, recarga 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 iniciar 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 manager y admin. 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 Host Manager y al Manager está restringido, desearemos eliminar o modificar estas restricciones. Para realizar dichos cambios, puede cargar los siguientes archivos:

Para la aplicación Administrador:

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

Para la aplicación de administrador de host:

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

Dentro de esos archivos, puede comentar la restricción de IP o permitir que su dirección IP pública esté allí. A los efectos de este tutorial, he comentado la línea:

Para implementar nuestros cambios, 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 haya configurado anteriormente. La interfaz que deberías ver después se ve así:

Para acceder al Administrador de host, puede utilizar http://ip-address:8080/host-manager/.

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

Paso 6: Probar Apache Tomcat creando un archivo de prueba

Puede 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 pegue 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://ip-address:8080/tecmint.jsp.

¡Eso es todo! Ha completado la configuración de su servidor Apache Tomcat y ha ejecutado su primer código Java. Esperamos que el proceso haya sido fácil y sencillo para usted. Si tiene algún problema, compártalo a través del formulario de comentarios a continuación.