Instalação do Tomcat 10 no cPanel - AlmaLinux
Documentação oficial:
https://docs.cpanel.net/ea4/containers/easyapache-4-containers/#almalinux-and-rocky-linux
https://docs.cpanel.net/ea4/containers/tomcat-via-containers/
Primeiro, será necessário entrar via SSH com os dados da conta cPanel. Não usar su nem sudo.
Execute este comando para instalar ea-tomcat como container:
/usr/local/cpanel/scripts/ea-podman install ea-tomcat101
Isso criará o diretório de aplicações em:
/home/usuarioCpanel/ea-podman.d/nombre-de-container
Ex: /home/tomcattest/ea-podman.d/ea-tomcat101.tomcattest.01
Executando qualquer um dos seguintes comandos você poderá obter o nome do container:
/usr/local/cpanel/scripts/ea-podman containers
/usr/local/cpanel/scripts/ea-podman registered
[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"
}
}
Executando o seguinte comando obteremos o nome do container e suas portas:
/usr/local/cpanel/scripts/ea-podman running
[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 exemplo, um container pode chamar-se: ea-tomcat101.miusuariocpanel.01
Será preciso usar esse nome para executar quaisquer comandos do Tomcat para esse usuário.
Dentro do diretório /home/usuarioCpanel/ea-podman.d/nombre-de-container\nos diretórios mais importantes são:
/conf Onde está o arquivo server.xml e outros arquivos de configuração.
/logs Onde são guardados os logs.
/webapps/ROOT Onde devem ser enviados os arquivos da aplicação Java.
Para verificar se o Tomcat funciona podemos criar um arquivo index.jsp dentro do diretório /webapps/ROOT mencionado anteriormente, e adicionar este conteúdo:
<html><body>
<% out.println("Hello world! -- From JSP"); %>
</body></html>
Depois, devemos adicionar o seguinte código em /conf/server.xml na seção onde aparece:
<Host name="localhost" appBase="webapps" unpackWARs="false" autoDeploy="false" deployOnStartup="false" deployXML="false">
Adicionar:
<Context path="" docBase="ROOT">
<!-- Default set of monitored resources -->
<WatchedResource>WEB-INF/web.xml</WatchedResource>
</Context>

Depois devemos reiniciar o container do Tomcat:
/usr/local/cpanel/scripts/ea-podman restart nombre-de-container
EX: /usr/local/cpanel/scripts/ea-podman restart ea-tomcat101.tomcattest.01
É importante saber quais portas foram atribuídas ao container do Tomcat instalado.
Podemos ver isso executando:
/usr/local/cpanel/scripts/ea-podman running

Neste ponto, deveríamos conseguir ver o conteúdo do index.jsp que criamos anteriormente escrevendo este endereço web no navegador:
http://IP-Servidor:PuertoTomcatHTTP/index.jsp
Ex: http://69.61.102.92:10000/index.jsp
Passos para ver as aplicações Java a partir de endereços web por domínio.
Devemos entrar no servidor via SSH, agora como root:
Devemos criar estes dois diretórios, onde /user/domain deve ser substituído pelo usuário cPanel e seu domínio.
mkdir -p /etc/apache2/conf.d/userdata/std/2_4/user/domain/
mkdir -p /etc/apache2/conf.d/userdata/ssl/2_4/user/domain/
Depois criamos o arquivo custom.conf no primeiro diretório criado (cuidado com /user/domain):
nano /etc/apache2/conf.d/userdata/std/2_4/user/domain/custom.conf
Neste arquivo devemos adicionar o seguinte proxy, substituindo 10001 pela segunda porta que nos foi retornada pelo comando: /usr/local/cpanel/scripts/ea-podman running
<IfModule proxy_ajp_module>
ProxyPassMatch "/.well-known/(.*)" "!"
ProxyPassMatch "/(.*).jsp" "ajp://localhost:10001"
ProxyPassMatch "/servlets/(.*)" "ajp://localhost:10001"
</IfModule>

Depois, criamos um symlink deste arquivo para a segunda rota que criamos mais acima.\nLembre-se de substituir /user/domain pelo usuário cPanel e seu domínio.
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
Feito isso, devemos recompilar o arquivo httpd.conf executando isto:
/usr/local/cpanel/scripts/rebuildhttpdconf
Não deve retornar nenhum erro.
Se encontrar um erro pode estar no código do arquivo custom.conf que criamos.
Por fim, reiniciamos o Apache:
service httpd restart
Deveríamos conseguir ver o index.jsp usando o domínio normalmente: http://dominio/index.jsp
Redirecionamento automático para HTTPS
Primeiro, será necessário instalar o SSL na conta usando AutoSSL, como fazemos normalmente.
Se o domínio funcionar com https://dominio podemos prosseguir com o redirecionamento automático.
Teremos que editar o arquivo server.xml do diretório conf do Tomcat:
usuarioCpanel/ea-podman.d/nombre-de-container/conf
No arquivo server.xml procuramos a linha:
<Connector port="8080" protocol="HTTP/1.1"
Nessa linha devemos adicionar: redirectPort="443"
A linha ficará como indica a imagem:

Depois, devemos adicionar este código no arquivo web.xml do caminho da aplicação em:\n/usuario/ea-podman.d/nombre-de-container/webapps/ROOT/WEB-INF
<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 fim reiniciamos o container do Tomcat do usuário:
/usr/local/cpanel/scripts/ea-podman restart nombre-de-container
Se testarmos o domínio ou aplicação sem https ele deverá redirecionar automaticamente para a versão https.
Isso é tudo no que diz respeito à instalação do Tomcat propriamente dita.
Comandos Úteis:
Este comando, executado como o usuário cPanel, removerá o container do Tomcat que foi instalado:
Substituir nombre-de-container pelo que foi instalado.
/usr/local/cpanel/scripts/ea-podman uninstall nombre-de-container --verify
Estes comandos mostrarão o Status, iniciarão, reiniciarão ou pararão o container do 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
Com este comando é possível executar certos comandos como root rapidamente:
/usr/local/cpanel/scripts/ea-podman bash nombre-de-container
Como modificar variáveis do Tomcat (como a memória xms/xmx)
Conectar-se via SSH como usuário Cpanel.
Execute este comando para poder editar arquivos como root temporariamente:
/usr/local/cpanel/scripts/ea-podman bash nombre-de-container
Será necessário instalar vim, vi, nano ou algum editor de texto:
apt update
apt install vim
ou
apt install nano
Deveríamos estar em /usr/local/tomcat. Devemos entrar no subdiretório bin
e editar o arquivo catalina.sh com vim ou o editor instalado:

Adicionar a seguinte linha abaixo do bloco comentado:
CATALINA_OPTS="-Xms512m -Xmx1024m"

Depois de salvar a alteração no arquivo catalina.sh, saia do modo root temporário com:
exit
Reinicie o container verificando que estejamos novamente em modo usuário cpanel:
/usr/local/cpanel/scripts/ea-podman restart nombre-de-container
Checamos o status do Tomcat:
/usr/local/cpanel/scripts/ea-podman status nombre-de-container
Depois, verifique se a alteração foi aplicada com o comando:
ps aux |grep tomcat |grep Xmx
