---
# System prepended metadata

title: DPL - Instalación Tomcat

---

# 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)