# DPL - Instalación Tomcat ![](https://i.imgur.com/EsDrUHP.jpg) <div style="text-align: right;"> <p><i>Jerobel Rodríguez</i></p> </div> <hr> ## Requisitos * Sistema Linux con adaptador red en brigde. * Servidor Apache [(Ver tutorial)](https://hackmd.io/@Jerorguez/ByL-50Izj) --- ## Instalación JDK JDK es un Kit de Desarrollo Java, incluye todo lo necesario para desarrollar, depurar y ejecutar aplicaciones Java. ```bash sudo apt install default-jdk ``` ![](https://i.imgur.com/p5cn3Wa.png) --- ## Creación de grupo para Tomcat Creamos un grupo llamado `tomcat` y un usuario `tomcat` para unirlo al grupo. ```bash sudo groupadd tomcat sudo useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat ``` ![](https://i.imgur.com/ECaT95L.png) --- ## Instalación Tomcat 9 1. Ejecutaremos la isntalación mediante curl (necesario tenerlo instalado). Para ello nos dirigimos al siguiente enlace [Download Tomcat](https://tomcat.apache.org/download-90.cgi). Y copiamos el link de instalación del archivo con extensión `tar.gz`. ![](https://i.imgur.com/MlIzaRN.png) 2. Ejecutamos en nuestra terminal el siguiente comando ```bash cd /tmp curl -O https://downloads.apache.org/tomcat/tomcat-9/v9.0.72/bin/apache-tomcat-9.0.72.tar.gz ``` ![](https://i.imgur.com/vmQBvXL.png) 3. Ahora crearemos una carpeta para tomcat en `/opt/` y extraemos el fichero `.tar` que acabamos de descargar. ```bash tar xzvf apache-tomcat-9*tar.gz -C /opt/tomcat --strip-components=1 ``` ![](https://i.imgur.com/aBNoByS.png) 4. Nos movemos al directorio que acabamos de crear `/opt/tomcat` y le otorgamos todos los permisos del directorio a los usuarios del grupo `tomcat`. También le daremos permisos de lectura al directorio `conf/` y de ejecución. Asignaremos al usuario `tomcat` como propietario de los directorios `webapps/`, `work/`, `temp/` y `logs/`. ```bash cd /opt/tomcat/ chgrp -R tomcat /opt/tomcat chmod -R g+r conf chmod g+x conf chown -R tomcat webapps/ work/ temp/ logs/ ``` ![](https://i.imgur.com/1P71xxb.png) 5. Al no haber instalado tomcat mediante un ejecutable, es necesario crear un fichero de configuración del servicio cuya extensión es `.service`. ```bash nano /etc/systemd/system/tomcat.service ``` Y le añadimos el siguiente contenido: ```bash [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 ``` **Nota**: La ruta de la variable de entorno `JAVA_HOME` debe ser aquella donde tengamos instalado `java` (default: `/usr/lib/jvm`). ![](https://i.imgur.com/6FTSssF.png) 6. Para aplicar los cambios habrá que recargar el daemon de `systemd` y luego iniciaremos y comprobaremos el estado de tomcat. ```bash systemctl daemon-reload systemctl start tomcat systemctl status tomcat ``` ![](https://i.imgur.com/7n8V3It.png) --- ## Tomcat con Apache Necesitamos que nuestro servidor `apache` redirija todas las peticiones que tengan que ver con `tomcat` desde el puerto `80` al `8080`. 1. Establecemos la carpeta que contiene las aplicaciones `java`. En el fichero `/opt/tomcat/conf/server.xml` podemos comprobar que hay una línea en la que se configura el `host virtual localhost` y la carpeta de la base de aplicaciones. ![](https://i.imgur.com/5rXRuJG.png) 2. Tomcat posee una interfaz gráfica para administrar las aplicaciones, entonces es necesario configurar un usuario que tenga acceso. Para ello modificamos el fichero `/opt/tomcat/conf/tomcat-users.xml`. ![](https://i.imgur.com/9rBi7Mo.png) --- ## Despliegue de APP Java en Apache-Tomcat Nuestras apps de `Java` se guardan en la carpeta `webapps`. ![](https://i.imgur.com/P8o09Ly.png) Para este tutorial vamos a desplegar un proyecto de ejemplo que hemos descargado previamente. Para ello deberemos mover nuestro proyecto al directorio `webapps/`. ```bash mv ejemplop.war /opt/tomcat/webapps/ ``` ![](https://i.imgur.com/U7GjRaA.png) ![](https://i.imgur.com/onz0TWK.png) 1. Si accedemos a la siguiente dirección [localhost:8080](http://localhost:8080) nos aparecerá el GUI de Tomcat. ![](https://i.imgur.com/TIO5x3B.png) 2. Para iniciar sesión habrá que usar el nombre de usuario y la contraseña que configuramos anteriormente en el fichero `tomcat-users.xml`. Y para poder desplegar nuestra app (descargada previamente) es necesario seleccionar su fichero `.war`. ![](https://i.imgur.com/XzwTuRP.png) **Nota**: Puede ser que no sea posible desplazarte hasta el directorio `webapps` para seleccionar el archivo `.war` del proyecto. Si es así, podemos mover el archivo a una carpeta donde tengamos acceso desde la interfaz gráfica. ![](https://i.imgur.com/wSmq0Pi.png) ![](https://i.imgur.com/Ld52Qog.png) ![](https://i.imgur.com/gjdO0MU.png) 3. Accedemos a nuestra app para comprobar que ha sido correctamente desplegada. ![](https://i.imgur.com/ESB0gAV.png)