Skip to main content

Tomcat para Ubuntu

Parte 1 Instalación y Usuario

Antes de comenzar ha instalar tomcat necesitamos tener instalado Java y además haber creado un tipo de usuario específico.

sudo useradd -m -d /opt/tomcat -U -s /bin/false tomcat
sudo apt update
sudo apt install default-jdk
java -version

Después iremos a la carpeta /tmp para descargar los archivos de instalación de tomcat y procederemos a su descompresión en una carpeta específica.

cd /tmp
wget https://dlcdn.apache.org/tomcat/tomcat-10/v10.0.20/bin/apache-tomcat-10.0.20.tar.gz
sudo tar xzvf apache-tomcat-10*tar.gz -C /opt/tomcat --strip-components=1

#Damos los permisos necesarios
sudo chown -R tomcat:tomcat /opt/tomcat/
sudo chmod -R u+x /opt/tomcat/bin

Parte 2 Configuración de usuarios

Vamos a configurar los usuarios Manager y HostManager.

Primero añadimos los password necesarios para cada usuario en 

/opt/tomcat/conf/tomcat-users.xml
<role rolename="manager-gui" />
<user username="manager" password="manager_password" roles="manager-gui" />

<role rolename="admin-gui" />
<user username="admin" password="admin_password" roles="manager-gui,admin-gui" />

Por defecto tomcat esta configurado con restricción de acceso, para cambiar esto, primero para el usuario manager,  vamos al archivo:

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

Y comentamos desde Valve hasta el final:

<Context antiResourceLocking="false" privileged="true" >
  <CookieProcessor className="org.apache.tomcat.util.http.Rfc6265CookieProcessor"
                   sameSiteCookies="strict" />
<!--  <Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" /> -->
  <Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.Csr>
</Context>

Después para el usuario host-manager:

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

Misma operación en ambos.

Parte 3. Crear un servicio

Localizamos java

sudo update-java-alternatives -l

Creamos el archivo tomcat.service

/etc/systemd/system/tomcat.service
[Unit]
Description=Tomcat
After=network.target

[Service]
Type=forking

User=tomcat
Group=tomcat

Environment="JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-amd64"
Environment="JAVA_OPTS=-Djava.security.egd=file:///dev/urandom"
Environment="CATALINA_BASE=/opt/tomcat"
Environment="CATALINA_HOME=/opt/tomcat"
Environment="CATALINA_PID=/opt/tomcat/temp/tomcat.pid"
Environment="CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC"

ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh

RestartSec=10
Restart=always

[Install]
WantedBy=multi-user.target

Reinciamos el systema de servicios

systemctl daemon-reload
systemctl start tomcat
systemctl status tomcat

sudo systemctl enable tomcat
ufw allow 8080
http://your_server_ip:8080