Centro de Ayuda
Volver al menú principal

Instalación de Tomcat 10 en cPanel -Almalinux

Documentación oficial: https://docs.cpanel.net/ea4/containers/easyapache-4-containers/#almalinux-and-rocky-linux https://docs.cpanel.net/ea4/containers/tomcat-via-containers/

Primero, habrá que ingresar, vía SSH, con los datos de la cuenta cPanel. No usar su ni sudo.

Correr este comando para instalar ea-tomcat como container:

/usr/local/cpanel/scripts/ea-podman install ea-tomcat101

Esto creará el directorio de aplicaciones en:

/home/usuarioCpanel/ea-podman.d/nombre-de-container

Ej: /home/tomcattest/ea-podman.d/ea-tomcat101.tomcattest.01

Corriendo cualquiera de los siguientes comandos se podrá obtener el nombre del container:

/usr/local/cpanel/scripts/ea-podman containers

/usr/local/cpanel/scripts/ea-podman registered

text
[tomcattest]$ /usr/local/cpanel/scripts/ea-podman containers
{
   "ea-tomcat101.tomcattest.01" : {
      "container_name" : "ea-tomcat101.tomcattest.01",
      "image" : "tomcat:10.1.24",
      "pkg" : "ea-tomcat101",
      "pkg_version" : "10.1.24-1",
      "user" : "tomcattest"
   }
}

Corriendo el siguiente comando obtendremos el nombre del container y sus puertos:

/usr/local/cpanel/scripts/ea-podman running

text
[tomcattest]$ /usr/local/cpanel/scripts/ea-podman running
{
   "ea-tomcat101.tomcattest.01" : {
      "image" : "docker.io/library/tomcat:10.1.24\n",
      "ports" : [
         "10000",
         "10001"
      ]
   }
}

Por ejemplo, un container se puede llamar: ea-tomcat101.miusuariocpanel.01
Habrá que usar ese nombre para correr cualquier comando de Tomcat para este usuario.

Dentro del directorio /home/usuarioCpanel/ea-podman.d/nombre-de-container
los directorios mas importantes son:

/conf Donde está el archivo server.xml y otros archivos de configuración.
/logs Donde se guardan los logs.
/webapps/ROOT Donde se deben subir los archivos de la aplicación Java.

Para comprobar si Tomcat funciona podemos crear un archivo index.jsp dentro del directorio
/webapps/ROOT mencionado anteriormente, y agregarle este contenido:

text
<html><body>
<% out.println("Hello world! -- From JSP"); %>
</body></html>

Luego, debemos agregar el siguiente código en /conf/server.xml en la sección donde figura:

text
<Host name="localhost" appBase="webapps" unpackWARs="false" autoDeploy="false" deployOnStartup="false" deployXML="false">

Agregar:

text
<Context path="" docBase="ROOT">
         <!-- Default set of monitored resources -->
         <WatchedResource>WEB-INF/web.xml</WatchedResource>
</Context>

Luego debemos reiniciar el container de Tomcat:

/usr/local/cpanel/scripts/ea-podman restart nombre-de-container

EJ: /usr/local/cpanel/scripts/ea-podman restart ea-tomcat101.tomcattest.01

Es importante saber que puertos fueron asignados al container de Tomcat instalado.
Podemos ver esto corriendo:

/usr/local/cpanel/scripts/ea-podman running

En este punto, deberíamos poder ver el contenido del index.jsp que creamos anteriormente escribiendo esta dirección web en el navegador:

http://IP-Servidor:PuertoTomcatHTTP/index.jsp

Ej: http://69.61.102.92:10000/index.jsp

Pasos para ver las aplicaciones Java desde direcciones web por dominio.

Debemos ingresar al servidor vía SSH, ahora como root:

Debemos crear estos dos directorios, donde /user/domain debe reemplazarse por el usuario cPanel y su dominio.

text
mkdir -p /etc/apache2/conf.d/userdata/std/2_4/user/domain/
text
mkdir -p /etc/apache2/conf.d/userdata/ssl/2_4/user/domain/

Luego creamos el archivo custom.conf en el primer directorio creado (cuidado con /user/domain):

text
nano /etc/apache2/conf.d/userdata/std/2_4/user/domain/custom.conf

En este archivo debemos agregar el siguiente proxy, reemplazando 10001 por el segundo puerto que nos devolvió el comando: /usr/local/cpanel/scripts/ea-podman running

text
<IfModule proxy_ajp_module>
    ProxyPassMatch "/.well-known/(.*)" "!"
    ProxyPassMatch "/(.*).jsp" "ajp://localhost:10001"
    ProxyPassMatch "/servlets/(.*)" "ajp://localhost:10001"
</IfModule>

Luego, creamos un symlink desde este archivo a la segunda ruta que habíamos creado mas arriba.
Recordar reemplazar /user/domain por el usuario cpanel y su dominio.

text
ln -s /etc/apache2/conf.d/userdata/std/2_4/user/domain/custom.conf /etc/apache2/conf.d/userdata/ssl/2_4/user/domain/custom.conf

Hecho esto, debemos recompilar el archivo httpd.conf corriendo esto:

text
/usr/local/cpanel/scripts/rebuildhttpdconf

No debería arrojar ningún error.
Si encuentra un error podría estar en el código del archivo custom.conf que creamos.

Por último, reiniciamos Apache:

service httpd restart

Deberíamos poder ver el index.jsp usando el dominio normal: http://dominio/index.jsp

Redirección automática a HTTPS

Primero, habrá que instalar SSL en la cuenta usando AutoSSL, como hacemos normalmente.

Si el dominio funciona con https://dominio podemos proceder con la redirección automática.

Tendremos que ingresar al archivo server.xml del directorio conf de Tomcat:

usuarioCpanel/ea-podman.d/nombre-de-container/conf

En el archivo server.xml buscamos la linea:

<Connector port="8080" protocol="HTTP/1.1"

En esa linea debemos agregar: redirectPort="443"

Nos quedará la linea como indica la imagen:

Luego, debemos agregar este código en el archivo web.xml de la ruta de la aplicación en:
/usuario/ea-podman.d/nombre-de-container/webapps/ROOT/WEB-INF

text
<security-constraint>
 <web-resource-collection>
 <web-resource-name>Entire Application</web-resource-name>
 <url-pattern>/*</url-pattern>
 </web-resource-collection>
 <user-data-constraint>
 <transport-guarantee>CONFIDENTIAL</transport-guarantee>
 </user-data-constraint>
</security-constraint>

Por ultimo reiniciamos el container de Tomcat del usuario:

/usr/local/cpanel/scripts/ea-podman restart nombre-de-container

Si probamos el dominio o aplicación sin https debería redirigir automáticamente a la versión https.

Eso es todo en cuanto a la instalación de Tomcat propiamente dicha.

Comandos Útiles:

Este comando, ejecutado como el usuario Cpanel, borrará el container de Tomcat que se instaló:
Reemplazar nombre-de-container por el que se haya instalado.

/usr/local/cpanel/scripts/ea-podman uninstall nombre-de-container --verify

Estos comandos mostrarán el Status, iniciarán, reiniciarán o detendrán el container de Tomcat:

/usr/local/cpanel/scripts/ea-podman status nombre-de-container

/usr/local/cpanel/scripts/ea-podman start nombre-de-container

/usr/local/cpanel/scripts/ea-podman restart nombre-de-container

/usr/local/cpanel/scripts/ea-podman stop nombre-de-container

Con este comando se pueden correr ciertos comandos como root en forma rápida:

/usr/local/cpanel/scripts/ea-podman bash nombre-de-container

Como modificar variables de Tomcat (como la memoria xms/xmx)

Conectarse vía SSH como usuario Cpanel.

Correr este comando para poder editar archivos como root temporalmente:

/usr/local/cpanel/scripts/ea-podman bash nombre-de-container

Habrá que instalar vim, vi, nano o algún editor de archivos:

apt update

apt install vim
o
apt install nano

Deberíamos estar en /usr/local/tomcat. Debemos ingresar al subdirectorio bin
y editar el archivo catalina.sh con vim o el editor instalado:

Agregar la siguiente linea debajo del cuadro comentado:

CATALINA_OPTS="-Xms512m -Xmx1024m"

Luego de grabar el cambio en el archivo catalina.sh, salir del modo root temporal con:

exit

Reiniciar el container revisando que estemos nuevamente en modo usuario cpanel:

/usr/local/cpanel/scripts/ea-podman restart nombre-de-container

Chequeamos el status de Tomcat:

/usr/local/cpanel/scripts/ea-podman status nombre-de-container

Luego, chequear que se haya tomado el cambio con el comando:

ps aux |grep tomcat |grep Xmx