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