Desenvolvimento de software, metodologia, tecnologia e nostalgia
In: destaque|Linux|Servidores
6 Dec 2010Bom, iniciando o primeiro post de configuração de ambientes, vamos começar com algo que eu tive um trabalhão pra fazer e pouco material a respeito.
Tive que fazer uma série de pesquisas, juntar uma informação aqui, outra lá, mais um teste aqui e de pouquinho fui conseguindo e agora temos um roteiro do início ao fim de como preparar o Tomcat no CPanel/WHM com suporte à diversas contas e etc.
Primeiro vamos a parte facil, instalar o Tomcat usando os scripts do próprio WHM.
Acesse o seu WHM e no campo de busca digite, “easy”. Aparecerá o item Easy Apache (Apache Update).
Esse cara será o responsável pela compilação do nosso Apache com suporte a servlet e JSP.
Selecione a opção Start customizing based on profile
A seguir, escolha a versão do Apache desejada e clique no botão Next Step (A opção que esta marcada é a versão instalada no sistema no momento, se você não altera-la, não há problema).
Agora escolha a versão Major do PHP, você não precisa mexer em nada ainda, basta clicar no botão Next Step.
Haverá ainda mais uma tela que pergunta a versão minor do PHP, apenas clique em Next Step 
Agora que a coisa fica interessante, será exibida uma lista simplificada para instalação de alguns componentes específicos, e lá, nós encontraremos a opção Tomcat basta marcá-lo e clicar no botão 
Após, clique no botão Exhaustive Options List e agora iremos ter uma lista mais detalhadas de opções. Nessa lista que vai aparecer, selecione a opção Proxy. Como nós sabemos, o tomcat é acessado através da porta 8080, porém se alterarmos a porta do nosso Tomcat para 80 irá conflitar com o Apache Web. Então, iremos utilizar o módulo Proxy para realizar o redirecionamento entre as portas de forma transparente pro usuário, assim ao digitar na barra de endereços http://www.dominio.com.br/index.jsp o Apache automaticamente irá direcionar para http://www.dominio.com.br:8080/index.jsp
Agora, clique no botão Save And Build no final da página e vai tomar um shake, café, refrigerante ou da uma pimbada, pois agora o WHM irá compilar um Apache com as opções que você marcou e instalará no sistema.

Quando terminar ou depois da pimbada, você precisará agora habilitar as contas que poderão rodar servlets e JSPs na conta de usuário CPanel. Pra isso, vá no filtro novamente na parte superior e digite “servlet”. Aparecerá o item de menu Install Servlets clique nele e após selecione a conta de usuário desejada.
Pronto, acabou a parte fácil, agora pega um copo de coca, porque agora é a parte chata da bagaça.
No terminal, edite o arquivo httpd.conf que esta na pasta conf do seu Apache.
root@server [~]# pico /usr/local/apache/conf/httpd.conf
Precisamos utilizar o modulo proxy e pra isso, vamos incluir a seguinte linha no arquivo:
LoadModule jk_module modules/mod_jk.so
Salve o arquivo e vamos editar agora as configurações do Tomcat.
root@server [~]# pico /usr/local/jakarta/tomcat/conf/server.xml
Inclua as seguintes informações:
www.dominio.com.br
Onde, dominio é o seu dominio, ahhhhhh não brinca, e o campo conta_dominio é o nome da pasta do usuário dentro do servidor.
Feito isso, salve o arquivo e vamos criar os arquivos de proxy do server.
Crie um arquivo chamado proxy.conf com as seguintes linhas:
ProxyRequests Off ProxyPass / http://www.dominio.com.br:8080/ ProxyPassReverse / http://www.dominio.com.br:8080/
Salve o arquivo e copie para os diretórios.
/usr/local/apache/conf/userdata/std/1/conta_usuario/dominio.com.br/proxy.conf /usr/local/apache/conf/userdata/std/2/conta_usuario/dominio.com.br/proxy.conf
Nesses locais ja deve existir o arquivo chamado cp_jkmount.conf que contem o padrão de URL que devem ser executados pelo tomcat.
Pronto, agora é só reiniciar a maquina, ou os serviços Apache e Tomcat que estará funcionando corretamente.
Esses procedimentos podem ser automatizados através de script e colocados dentro do diretório de scripts do CPanel, com isso você conseguirá automatizar todos os passos acima.
Se tiverem problemas com memória ou coisas do tipo, podem postar nos comentários que ajudarei numa boa !!
Um grande abraço à todos e até a próxima.
Olá,
Esse blog tem por objetivo trazer informações sobre desenvolvimento de software, tecnologia e tudo o que envolve o mundo dos programadores e analistas de sistemas.
Pretendo publicar aqui, informações que não acho tão facilmente na internet ou coisas que até encontramos, mas nunca foram colocadas de uma forma simplificada e de fácil entendimento.
follow:
18 Responses to Instalando e configurando o Tomcat no CPanel/WHM
Renato charles
February 23rd, 2011 at 16:41
/usr/local/apache/conf/userdata/std/1/conta_usuario/dominio.com.br/proxy.conf
Tento entrar nesse diretorio mas algo da errado.
Da acesso negado na pasta conf.
Como resolver?
Mas muito obrigado seu tutorial me ajudou muito a configura meu vps.
Obrigado amigo!
Eduardo Cerqueira
February 28th, 2011 at 10:37
Olá Renato, tudo bem ?
Muito obrigado pelo comentário e aproveito pra responder a sua duvida.
É preciso estar como root ou logado pelo usuário do tomcat para acessar esse diretório. Porém, ja houveram alguns usuários que disseram que essas pastas não existem, não há problema, você poderá criar os diretórios e após será necessário apenas ajustar os direitos de acesso a essas pastas.
Lembre-se que o serviço que irá ler essas configurações será o usuário do tomcat quando você subir o serviço.
Qualquer dúvida, sinta-se à vontade que tento responder
Um grande abraço e aguardo seu retorno.
Maurício Dias Nascimento
March 24th, 2011 at 18:09
Grande Eduardo, instalei conforme seu tutorial e deu tudo certo… Parabéns!
Está rodando tudo corretamente no servidor porém, meu cliente está solicitando que eu habilite a opção para ele “resetar” o Tomcat via cPanel dele. Já li em algum forum que realmente tem como disponibilizar no cPanel da conta do cliente esta opção de reinício que fica em “Software / Serviços” mas no cPanel do meu cliente não apareceu esse ícone para reininicar. Sabe me informar como e por onde habilito isso?
Agradeço a ajuda que també servirá para todos.
Abraço Maurício (mauricio@visao3.com.br)
Eduardo Cerqueira
March 27th, 2011 at 23:41
Mauricio, muito obrigado pelo feedback.
Estou pesquisando sobre a sua dúvida e pensando sobre ela, eu vejo alguns problemas em liberar o acesso para o cliente reiniciar o tomcat.
Imagine que você possui vários clientes hopedados, sabemos que todos os clientes estarão sobre um unico tomcat rodando varias aplicações. Quando o usuário solicitar o reinicio do serviço, todos as aplicações ficarão fora do ar durante o boot. Imagine o caos que isso irá gerar.
Pensei então em uma maneira de disponibilizar uma forma do cliente solicitar o redeploy somente da aplicação dele. Estou pensando mais sobre esse recurso e em breve te dou um retorno e crio um tutorial complementar sobre esse assunto.
Muito obrigado e um grande abraço
Maurício Dias Nascimento
April 1st, 2011 at 18:35
Eduardo,
Meu cliente só consegue visualizar o site se os arquivos *.jsp estiverem na raiz do site, e as pastas (diretórios) que ele cria não aparecem, sempre da erro 404.
http://www.anayses.com.br/jsptest.jsp (Funciona)
http://www.analyses.com.br/admin/login.jsf (Não funciona)
Ele insiste que o erro está na configuração do Tomcat ou Apache mas eu estou há mais de 1 semana tentando encontrar uma solução em todos os foruns da net mas não encontro.
Você saberia me dizer porque o Tomcat não lê os diretórios ?
Aguardo retorno,
Maurício.
Maurício Dias Nascimento
April 1st, 2011 at 18:37
* O CORRETO É: http://www.anayses.com.br/jsptest.jsp (Funciona)
Maurício Dias Nascimento
April 1st, 2011 at 18:38
* FALTOU UM “L”: esse é o corereto http://www.analyses.com.br/jsptest.jsp (Funciona)
Eduardo Cerqueira
April 2nd, 2011 at 12:48
Mauricio,
Você precisa verifcar duas coisas pra saber o que esta acontecendo.
1. Verifique se no server.xml do seu tomcat, se existe as propriedades autodeploy=”true” e reloadable=”true” conforme demonstrei no tutorial.
Quando você informa essas confogirações, todos os arquivos que o cliente coloca na pasta onde esta apontado o docbase e appbase serão monitoradas e publicadas.
2. Depois de verificar o primeiro psso, você precisa verificar se os arquivos foram realmente publicados. Para isso, acesse a pasta work do seu tomcat ( /usr/local/jakarta/tomcat/work )
Deverá existir uma pasta com o dominio do seu cliente, acesse essa pasta e verifique se ela esta com a mesma estrutura de diretorios do docbase configurado no server.xml
Se não estiver, você poderá renomear o conteudo dessa pasta e verificar se o tomcat recoloca esses arquivos da forma correta, se não fizer, reinicie o serviço do tomcat que ele será forçado a fazer.
Qualquer duvida fico à disposição pra te ajudar.
Um grande abraço
Maurício Dias Nascimento
April 25th, 2011 at 17:17
Eduardo, pode retirar todos os comentários desde April 1st, 2011 at 18:35 pois meu cliente desistiu do site em java.
Agradeço seus retornos.
Só pra conhecimento de todos, entrei em contato com o pessoal do WHM/cPanel para saber sobre a atualização do Tomcat 6 via painel WHM e eles retornaram dizendo que ainda não existe nada finalizado sobre a integração do WHM e Tomcat 6. A última integração ficou mesmo na versão 5.5.30, a não ser que se instale na mão mesmo, daí roda mas mesmo assim nada ficará integrado automaticamente facilitado pelo painel WHM.
Abraço.
Ricardo Roxo
October 17th, 2011 at 16:52
Edu, olha meu problema.
Service Temporarily Unavailable
The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later.
Additionally, a 503 Service Temporarily Unavailable error was encountered while trying to use an ErrorDocument to handle the request.
oque pode ser ?
Eduardo Cerqueira
October 18th, 2011 at 00:09
Ricardo, a mensagem de erro ocorre mesmo quando você informe a porta 8080 na url ?
Acredito que um dos dois serviços esteja fora do ar. Uma outra dica é iniciar o serviço do tomcat e somente após iniciar o apache.
Quando o apache não encontra conexão com o Tomcat ele simplesmente mostra uma mensagem de erro e não tenta conectar novamente.
Espero que tenha ajudado.
Quaquer dúvida pode me enviar que eu dou uma olhada.
Abraços e obrigado pela visita.
Fagner
November 3rd, 2011 at 14:15
Eduardo primeiramente parabéns pelo post. Funcionou perfeitamente.
Estou com uma duvida, eu mandei “instalar o servlet” para um devido usuario, como que faz para eu remover o servlet do devido usuario, para que volte apenas a funcionar o PHP no devido usuario?
Obrigado.
Marcello
November 19th, 2011 at 13:50
Fagner, eu tb estou com essa dúvida !! Procurando na net, encontrei esse comando:
To uninstall servlets,
/scripts/remservlets –domain = domain name
porém, fui tentar executar no meu servidor, e na pasta scripts diz que não existe o comando remservlets !!
outra dúvida seria, como saber quantos domínios possuem servlets e quantos não possuem ? E tb como saber se um domínio específico possue ou não servlet instalado ?
Obrigado
João Coelho
September 3rd, 2012 at 13:09
Primeiramente parabéns pelo tutorial.
Segundo, instalei o tomcat em uma determinada conta e quando removi pelo comando: scripts/remservlets –domain = meudominio.com.br
os scripts em php que coloco nele não funciona ou seja, não ta interpretando php. o que fazer? Socorro!
Eduardo Cerqueira
September 3rd, 2012 at 14:13
Olá, pessoal !
Tenho visto as dúvidas de vocês e procurado algumas respostas.
1. Não encontrei uma forma de saber se uma conta possui ou não acesso a execução de servlets no servidor.
2. Uma alternativa rapida pra retirar o acesso a servlets de uma conta, (ja que o cpanel não disponibiliza uma forma confiável) seria retirar o acesso do usuario tomcat aos arquivos da conta desejada. Porém, isso só pode ser feito manualmente através de SSH.
3. Para o caso onde os arquivos PHP não estão mais sendo executados, eu faria os seguintes testes:
Verifique se somente a conta do usuário foi afetada ou se todas as contas também estão com o mesmo problema.
Caso seja somente a conta do usuário, verifique se os direitos de acesso estão corretos e se nos arquivos de configuração do dominio que estão no apache também estão corretos.
Para saber se esta correto ou não basta comparar as configurações de um dominio onde o php funciona estão iguais ao da conta que esta com problemas.
Sinceramente, acho que seja um problema só de direito de acesso mesmo.
Boa sorte e poste aqui os resultados que você encontrou ok ?
Um grande abraço e obrigado pela visita
Douglas
March 17th, 2013 at 21:48
olá eu criei uma conta na minha revenda, e acabei excluindo agora a pessoa quer voltar a hospedar comigo n consigo criar mais a msm conta da o seguinte erro
Account Creation Status: failed
Sorry, a group for that username already exists.
ja criei outras contas e vai exeto essa que exclui
pode me ajudar?
parabens pelo site e em querer ajudar a outras pessoas
Eduardo Cerqueira
March 20th, 2013 at 18:54
Douglas,
Você possui algum tipo de acesso SSH na sua revenda ?
Se possuir, pode usa-la para deletar o grupo manualmente usando o comando linux para isso.
O link http://www.vivaolinux.com.br/artigo/Fundamentos-do-sistema-Linux-usuarios-e-grupos/?pagina=4 explica como executar os comandos mais comuns no linux.
Tome muito cuidado ao executar esses comandos para não mandar a sua revenda pro espaço, mas pode se executado com cuidado não haverá problema.
O CPanel deveria ter conseguido deletar todos os usuários e grupos sem problemas, não sei o que pode ter acontecido.
Aguardo a resposta se funcionou ou não pra eu ver quais alternativas temos ok?
Abraços.
Everton Joaquim
June 3rd, 2013 at 22:42
Instalei tudo, criei a conta, mas qnd vou iniciar o tomcat aparece isso..
Error occurred during initialization of VM
Could not reserve enough space for object heap
Could not create the Java virtual machine.
onde configuro a memória?