Central de Ajuda

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

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"
   }
}

Executando o seguinte comando obteremos o nome do container e suas portas:

/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 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:

text
<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:

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

Adicionar:

text
<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.

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/

Depois criamos o arquivo custom.conf no primeiro diretório criado (cuidado com /user/domain):

text
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

text
<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.

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

Feito isso, devemos recompilar o arquivo httpd.conf executando isto:

text
/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

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 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

Guia g.0271 · Versão de origem 1 · pt-BR