
En primer lugar, destacar que para instalar cualquier versión de Tomcat es necesario tener instalado JDK (Kit de desarrollo de Java), ya que el objetivo es que las peticiones a Apache se redirijan a Tomcat empleando un conector proporcionado por Java en este caso.
Empezamos actualizando el sistema:
$ sudo apt update
Instalamos el siguiente paquete por ser el que más se adapta a nuestras necesidades:
$ sudo apt install default-jdk
Crearemos un grupo tomcat
, y un usuario tomcat
miembro del grupo anterior, con un directorio de inicio /opt/tomcat
(donde instalaremos Tomcat) y un shell de /bin/false
(de modo que nadie pueda iniciar sesión en la cuenta):
$ sudo groupadd tomcat
$ sudo useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat
Ahora descargaremos e instalaremos Tomcat. Para descargar la última versión de Tomcat 9.0.x, iremos a su página de descargas. En este ejemplo vamos a usarla última versión 9.0.35, copiamos el enlace del archivo .tar.gz.
Nos movemos al directorio /tmp
y descargamos el archivo: (si no disponemos de curl
, lo instalamos con sudo apte install curl
)
$ cd /tmp
$ curl -O https://apache.brunneis.com/tomcat/tomcat-9/v9.0.35/bin/apache-tomcat-9.0.35.tar.gz
Una vez que se complete la descarga, extraeremos el archivo comprimido en el directorio /opt/tomcat
:
$ sudo mkdir /opt/tomcat
$ sudo tar xzvf apache-tomcat-*tar.gz -C /opt/tomcat --strip-components=1
Nos cambiamos al directorio en el que desempaquetamos la instalación de Tomcat y le damos propiedad sobre todo el directorio de instalación al grupo tomcat
:
$ cd /opt/tomcat
$ sudo chgrp -R tomcat /opt/tomcat
A continuación, le proporcionamos al grupo tomcat
acceso de lectura al directorio conf
y a todos sus contenidos, y acceso de ejecución al directorio, además nos aseguramos de que el usuario tomcat
sea el propietario de los directorios webapps
, work
, temp
y logs
:
$ sudo chmod -R g+r conf
$ sudo chmod g+x conf
$ sudo chown -R tomcat webapps/ work/ temp/ logs/
Ahora tenemos que crear el archivo tomcat.service
en el directorio /etc/systemd/system
:
$ sudo nano /etc/systemd/system/tomcat.service
Y escribiremos lo siguiente:
[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
En la variable de entorno JAVA_HOME
tendremos que poner la ruta que tengamos en nuestro equipo.
Por último, recargamos el demonio systemd
para que reciba información sobre nuestro archivo de servicio e iniciamos el servicio Tomcat:
$ sudo systemctl daemon-reload
$ sudo systemctl start tomcat
Para comprobar que el servicio está iniciado sin errores podemos escribir:
$ sudo systemctl status tomcat
Y nos mostrará si el servidor está arrancado, desde cuando, la versión, etc.
En Tomcat, la gestión del servicio se realiza a través del script incluido llamado catalina, al que le podemos proporcionar los parámetros start
y stop
, con lo que arrancaríamos o pararíamos el servicio manualmente.
Para comprobar que nuestro servidor está ya escuchando, introducimos en un navegador la URL: http://localhost:8080
o http://127.0.0.1:8080
, y éste debería mostrar la página de inicio de Tomcat similar a la siguiente:
