A idéia desse how-to é facilitar a vida de quem quer criar um ambiente de desenvolvimento bem estruturado e sem ter que perder dias pra fazer isso. Você não precisa necessariamente instalar tudo que é descrito abaixo, mas note que alguns são pré-requisitos para outros itens.
Com certeza esta não é a única forma de integrar essa parafernalha toda, mas foi a melhor forma que eu achei (e consegui fazer funcionar). Se alguém tiver alguma sugestão/comentário, drop me a line.
Muitos ao ler vão se perguntar, “mas por que ele usou o Apache ao invés de colocar somente o Tomcat?”, já que o Tomcat acompanha um webserver build-in. Bom, levando em conta que é infinitamente mais simples integrar isso tudo com o Apache ao invés do Tomcat(e existir muito mais documentação para isso), existem alguns outros motivos para isso, como (dependendo do caso) melhor performance, a utilização dos modules, como o mod_rewrite, mod_proxy, etc.
Uma observação importante antes de começar, não faça como eu quando estava começando a fazer meus testes, não coloque ponto-e-vírgula depois das variáveis de sistema *_home.
No início de cada “sessão” eu fiz uma listagem das variáveis de sistema que devem ser criadas para o funcionamento correto de cada instalação. Antes de iniciar cada instalação, crie todas as variáveis indicadas. Para criar elas (supondo que você está no Windows XP), clique com o botão direito em “Meu Computador” -> Propriedades -> Avançado -> Variáveis de sistema -> Clique em “Nova” -> Coloque o nome e valor que estão indicados e clique em Ok. No Windows XP elas são válidas a partir do momento que você criou, mas se você está com um prompt de comando aberto será necessário reiniciá-lo.
Cuidado: muitas aplicações precisam estar na variável PATH do Windows para funcionar corretamente, então quando você ver PATH, é para adicionar o caminho à sua PATH e não substituir o conteúdo da variável.
Apache HTTP Server
Arquivos:
- Antes de fazer qualquer outra coisa, verifique se você já não possui algum processo rodando na porta 80. Para isso, entre no console (run… “cmd”) e digite:
netstat -aon | find /i "listening" |find /i ":80"
Se encontrar algo, sua porta 80 está sendo usada. Pegue o ID encontrado, entre no task manager (ctrl+alt+del) -> processes -> view -> marque o check que diz PID e localize na lista o ID encontrado.
Dica: se você utiliza Skype, você precisa desabilitar o uso da porta 80 por ele, para poder utilizar corretamente o Apache. Para resolver isso, entre no Skype em Tools -> Options… -> Connection -> Desmarque a caixa “Use port 80 and 443 as alternatives for incomming connections”.
- Crie a pasta c:\dev\workspace\
- Entre no instalador: Next -> Marque “Accept…” -> Next -> Next -> Preencha com seus dados(não precisam ser dados reais) -> Next -> Marque “Custom…” -> Next -> Clique em “Change…” e digite “c:\dev”(ele coloca automaticamente dentro da pasta c:\dev\apache2\) -> Ok -> Next -> Install(espere instalar) -> Finish.
- Abra o arquivo c:\dev\apache2\conf\httpd.conf (recomendo criar um atalho pra ele enquanto você está configurando seu ambiente, você vai usá-lo bastante. E claro, a partir de agora, sempre que eu falar em http.conf você já sabe do que eu estou falando) e altere a linha que diz DocumentRoot para:
# faz com que o apache tome como diretório raiz c:\dev\workspace
DocumentRoot "c:/dev/workspace"
e altere a linha que diz
<Directory "c:/dev/Apache2/htdocs">
para
<Directory "c:/dev/workspace">
- Restarte o Apache clicando no ícone que foi criado no seu system tray e em seguida restart.
- Para testar, abra o seu browser favorito e entre em http://localhost. Você deve ver uma listagem do diretório c:\dev\workspace.
Java + Tomcat
Variáveis de sistema:
JAVA_HOME c:\dev\java\jdk
CATALINA_HOME c:\dev\tomcat
CLASSPATH .;%JAVA_HOME%;
PATH %JAVA_HOME%\bin;
Arquivos:
- Entre no instalador do Java: Marque “Accept…” -> Next -> Clique em “Change…” e digite “c:\dev\java\jdk” -> Ok -> Next -> Aguarde ele instalar o JDK -> Clique em “Change…” (agora é a pasta de instalação da JRE) e digite “c:\dev\java\jre” -> Ok -> Next -> Next -> Finish.
- Agora entre no instalador do Tomcat: Next -> I Agree -> Selecione a instalação “Full” -> Next -> Digite o seguinte endereço “c:\dev\tomcat” -> Next -> Next -> Install -> Aguarde a instalação -> Desmarque a opção “Show readme” -> Finish.
- Coloque o arquivo mod_jk-1.2.26-httpd-2.2.4.so dentro de c:\apache2\modules\ e mude o nome do arquivo para mod_jk.so.[1]
- Para manter mais organizado vamos colocar as configurações do tomcat em um arquivo à parte. Adicione a linha à seguir no final do http.conf:
Include conf/tomcat.conf
- Agora crie um o tomcat.conf em C:\dev\apache2\conf com o seguinte conteúdo [2]
# carrega o connector
LoadModule jk_module modules/mod_jk.so
# faz com que o Apache também reconheça arquivos index.jsp como arquivo default para diretórios
DirectoryIndex index.jsp
# seta configurações de log
JkLogFile c:/dev/apache2/logs/mod_jk.log
JkLogLevel info
# aqui você monta os contextos do Tomcat, você deve fazer isso para as aplicações que você criar.
# Formato: JkMount URL_PREFIX WORKER_NAME
# Onde:
# URL_PREFIX é o caminho que vai ser acessado via browser. Ex: teste para http://localhost/teste
# WORKER_NAME no nosso exemplo sempre será ajp13
JkMount /jsp-examples/* ajp13
JkMount /servlets-examples/* ajp13
JkMount /tomcat-docs/* ajp13
- Mova as três pastas C:\dev\tomcat\webapps\jsp-examples, C:\dev\tomcat\webapps\servlets-examples, c:\dev\tomcat\webapps\tomcat-docs para dentro de c:\dev\workspace
- Edite o arquivo c:\tomcat\conf\server.xml e procure por uma linha que diz
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
e altere para (copie junto a tag DefaultContext)
<Host name="localhost" appBase="c:/dev/workspace"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<DefaultContext reloadable="true" />
- Feito isso, reinicie o Apache e depois o Tomcat.
- Para testar, entre em http://localhost/jsp-examples/ e http://localhost/servlets-examples/ e você deve ver os exemplos que acompanham o Tomcat (execute alguns exemplos para ter certeza que está tudo ok).
Links relacionados:
- Load Balancing with Tomcat 5.5 and JK 1.2
- Apache 2.x + Tomcat 4.x + Load Balancing (or Private JVMs)
- Fronting Tomcat with Apache or IIS
- Jakarta Tomcat Connector - Apache HowTo
- Tomcat Clustering/Session Replication HOW-TO
- Tutorial Tomcat - Instalação e Configuração Básica
- A Tutorial on Installing and Using Jakarta Tomcat 5.5 for Servlet and JSP Development
- Configuring Tomcat and Apache With JK 1.2
- Top Ten Tomcat Configuration Tips
- 5 Simple Steps to Integrate Tomcat 5.5 with Apache 2.0 - não recomendo, já que o conteúdo estático também será manipulado pelo Tomcat.
PHP
Variáveis de sistema:
PHP_HOME c:\dev\php
Arquivos:
- Descompacte o conteúdo do arquivo em c:\dev\php
- Entre em c:\dev\php\ e renomeie o arquivo “php.ini-recommended” para “php.ini”(mas se você quer algo mais próximo do que irá encontrar em um ambiente de produção, recomendo usar o “php.ini-dist” no lugar do “php.ini-recommended”).
- Abra o arquivo e procure pelas seguintes linhas alterando seu valor:
include_path = ".;c:\dev\php\includes"
doc_root = "c:\dev\workspace"
extension_dir = "c:\dev\php\ext"
display_errors = On
- Para manter mais organizado vamos colocar as configurações do PHP em um arquivo à parte. Adicione a linha à seguir no final do http.conf:
Include conf/php.conf
- Agora crie o php.conf em C:\dev\apache2\conf com o seguinte conteúdo:
# carrega o módulo do php
LoadModule php5_module "c:/dev/php/php5apache2.dll"
# adiciona o content type para os arquivos php
AddType application/x-httpd-php .php
# seta o home do php
PHPIniDir "c:/dev/php"
# faz com que o Apache também reconheça arquivos index.php como arquivo default para diretórios
DirectoryIndex index.php
- Reinicie o Apache
- Para testar, entre em c:\dev\workspace e crie um arquivo phpinfo.php com o conteúdo abaixo e acesse http://localhost/phpinfo.php
<? php phpinfo () ;?>
OBS: Se você deseja utilizar MySQL com o PHP, você deve utilizar a lib php_mysqli.dll [3]. Seguem as alterações que você deve fazer no seu php.ini:
extension=php_mysqli.dll
mysqli.default_host = localhost
mysqli.default_user = root
Links relacionados:
- Using ext/mysqli: Part I - Overview and Prepared Statements
- Using ext/mysqli: Part II - Extending mysqli
MySQL
Variáveis de sistema:
MYSQL_HOME c:\dev\mysql
PATH %MYSQL_HOME%\bin;
Arquivos:
- Entre no instalador: Next -> Marque “Custom” -> Next -> Clique em “Change…” e digite “c:\dev\mysql” -> Ok -> Next -> Install(espere instalar) -> Marque “Skip Sign-Up” -> Next -> Finish.
- O Instance Configuration Wizard será executado, continue a configuração: Next -> Next -> Next -> Next -> Next -> Next -> Next -> Selecione “Best Support For Multilingualism” -> Next -> Next -> Desmarque “Modify Settings” -> Next -> Execute -> Finish.
- Próximo passo é instalar o MySQL GUI Tools: Next -> Marque “I accept…” -> Next -> Clique em “Change…” e digite “c:\dev\mysql\tools” -> Ok -> Next -> Next -> Install -> Finish.
Links relacionados:
[1] O connector mod_jk2 foi descontinuado por desinteresse dos desenvolvedores e também pelos usuários, já que era mais difícil de configurar. Mas se você quer mesmo, ou precisa, utilizar o mod_jk2, este tutorial pode ajudar muito.
[2] Alguns tutoriais fazem uso de um arquivo workers.properties para setar algumas configuraçãoes do connector, mas como o objetivo deste tutorial é apenas montar um ambiente rápido e prático para desenvolvimento, não utilizaremos esta abordagem.
[3] Existe também o php_mysql.dll, mas como o php_mysqli.dll (o “i” é de improved) é mais recente e melhor, utilize ele. Alguns tutoriais consideram a utilização dos dois, mas particularmente não vejo nenhum problema em usar somente o php_mysqli. Uma vantagem (se é que pode ser chamada de vantagem) é que com php_mysqli.dll você não precisa setar a porta default (3306).
Mas cuidado, se você já possui uma aplicação e quer continuar o seu desenvolvimento, é recomendado dar uma boa verificada no código, já que existem incompatibilidades entre as libs.
Be careful when porting from ext/mysql to ext/mysqli. The following functions return NULL when no more data is available in the result set (ext/mysql’s functions return FALSE): mysqli_fetch_row(); mysqli_fetch_array(); mysqli_fetch_assoc();
Popularity: 78% [?]

{ 32 } Comments
Faltou o Oracle..
Cara, você me salvou!
Valeu.
Muito bom Diego, uma referência dessas não pode sair do ar… viu!?!?
Show de bola! Nem sempre se precisa saber como fazer as coisas e sim onde achar como fazê-lo… Para isso servem os bookmarks hehehehehe
Blz Diego,
muito bom o how-to, só uma correção, na parte de instalação do ruby vc colocou http://localhost/railstest/ e o correto é http://localhost/testrails/.
flw
Obrigado Hugo, já corrigi no texto.
Diego, adorei how-to.
Tenho algumas duvidas, quando vc menciona no comeco para “criar todas as variaveis indicadas”, serias as variaveis que vc sitou ao longo do texto?
E mais uma coisa, segui passo por passo e nenhum teste deu certo, oque poderia estar acontecendo?
sem mais
Andre Dornelas
Andre, as variáveis que eu cito durante o texto, são as variáveis que estão no começo de cada ’seção’. Por exemplo, você só precisa criar as variáveis do Tomcat, se for instalar ele. Caso contrário simplesmente ignore.
Sobre os testes, de qual você está falando?Descreva melhor os erros que ocorreram
Muito bom ( execelente pro ruby ). Duvidas:
Trabalho com o LASZLO e SERVLETS sou obrigado a instalar o TOMCAT ou conseguirei funcionar apenas com com o APACHE ( que me parece ser mais rapido ).
Obrigado
Pros servlets tu precisa de um servlet container (Tomcat, Jetty, etc etc). Só o Apache não basta.
Eu faço igual ao que esta ae no site.. mas no final quando eu vou restartar o apache .. da um erro de …o sistema nao pode encontrar o arquivo especificado…em
Include conf/tomcat.conf…
Mas o arquivo esta lá…. o que eu faço..
Se acaso na hora que eu for colocar a parte do arquivo httpd.conf… a linha
Include conf/tomcat.conf…eu colocar assim: #Include conf/tomcat.conf… o servidor starta sem problemas.. mas na hora de testar os exemplos, como: http://localhost/jsp-examples/…. nao executa .. apenas mostra os codigos…oq pode ser?….e a linha de comando que eu ponho em http.conf… é com “#” ou sem?
EX: Include conf/tomcat.conf
ou
#Include conf/tomcat.conf
Se eu colocar com as # .. da certo… mas se eu colocar sem # ae da errado.. e o servidor nao starta…
Diego Junior, quando você coloca # na frente de uma linha, o servidor starta simplesmente porque você comentou as linhas que faziam(ou tentavam) a conexão entre o Tomcat e o Apache. Em que pasta você criou o tomcat.conf?
Abraço
Olá Diego.
Uso Windows XP e não consigo pegar o arquivo mod_jk-apache-2.2.3.so.
O que pode ser?
Obrigada,
Adriana
Olá Diego.
Já resolvi o problema.
Adriana
Excelente tutorial, mas no Windows 2003 Server STD apresenta um erro ao carregar o módulo de conexão (LoadModule jk_module modules/mod_jk.so).
Segui fielmente o indicado, o Apache e o Tomcat estão funcionando bem. Quando habilito o include no http.conf (Include conf/tomcat.conf) apresenta o erro na carga do módulo, segundo o Event Viewr do Windows.
Alguma dica?
Emerson,
Você criou o arquivo tomcat.conf no lugar indicado e colocou o mod_jk.so na pasta correta também? Ele diz qual foi o erro?
Mano, parabéns pelo tutorial… show de bola… Mano seguinte, eu uso o Apache 2.2 e ele não estarta devido ao mod_fastcgi. Você tem alguma idéia de como resolver. Obs. To usando Windows.
Parabens pelo Tutorial…
Mas alguns links estão quebrados e quando coloco o include (tanto tomcat quanto php o apache naum inicia)
Teria como me falar como resolver?
Agradeço desde ja a atencao…
Atenciosamente
Felipe
Olá Felipe.
Quais links quebrados você encontrou? Qual erro que você recebe quando está statando o apache?
Abraço
Cara vlw pelo tutorial porem estou encontrando algums problemas quando coloco no http.conf as linhas:
Include conf/php.conf
Include conf/tomcat.conf
no fim o servidor Apache não start e da um erro, os arquivos estão na pasta
c:\dev\conf
e na
C:\Dev\Apache2\conf
mesmo assim quando comento as linhas o servidor start normal mas quando as descomento ele da um erro e não inicia, o que posso fazer para resolver isso?
Olá Luis. Bom, de cara, tente descomentar um arquivo só por vez e tente descobrir qual está dando problema. Se ambos fazem com que o apache pare de funcionar,verifique se configurou corretamente como indicado acima.
Não encontrei o arquivomod_jk-apache-2.2.3.so em lugar nenhum…como consequencia me retorna um erro no RESTART do Apache informando que não encontra o tal arquivo mod_jk.so
Se puder me ajudar agradeço
Sued
Já consegui instalar… obr
Rodrigo, obrigado pelas dicas!
Só um detalhe, estou com o mesmo problema do luis henrique, pois qdo incluo a linha “Include conf/tomcat.conf” no httpd.conf o Apache não starta. Já cheguei váriias vezes as configurações e no caso preciso por causa de uma index.jsp
Preciso usar na produção, alguma restrição qto a isso?
Muito obrigado!
Eduardo Franco - Brasília.
Então já tentei ainda retorna o erro não consegui isntalar segui passo a passo o turorial e sei que ele funciona, mas aqui ele não starta o apache uso windows2000
Fala pessoal… realmente, não tem jeito, o apache não inicia de jeito nenhum com a inclusão da linha “Include conf/tomcat.conf” .
Caso alguém tenha uma solução, avise por favor!
Abraço.
Mandou bem Diegão.
Simples e direto ao assunto. Cheguei ao seu link através do post da Caelum (http://blog.caelum.com.br/2006/09/25/apache-http-server-e-tomcat-o-howto-facil-sem-o-mod_jk/).
Bom, as configurações rolaram. Mas não exatamente na primeira…
O grande problema foi o mod_jk utilizado. (mod_jk-apache-2.2.4.so) a propósito o seu link ta quebrado. Mas é só pq a versão atual é a 1.2.26 e não a 23 (que acho que era a versão de quando você postou o artigo) e como você colocou o link absoluto…
(proponho por só o http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/win32/ e a galera pega a última versão)
Aí que que o cabeçudo aki fez (acho que mais gente deve ter feito isso tb rsrs).
Como o link tava quebrado fui direto na fonte (http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/win32/jk-1.2.26/) e baixei o primeiro *.so
que da lista. No caso [mod_jk-1.2.26-httpd-2.0.59.so] depois de quebrar muito a cabeça, ler os comentários da galera e procurar muito no google, rolei a página até o fim e vi o seguinte parágrafo…(quase cai pra trás rsrs)
# mod_jk-1.2.26-apache-2.0.59.so is for Apache 2.0, and works with Apache 2.0.59 and later. Rename to mod_jk.so before putting it in your Apache2/modules directory.
# mod_jk-1.2.26-apache-2.2.4.so is for Apache 2.2, and works with Apache 2.2.4 and later. Rename to mod_jk.so before putting it in your Apache2.2/modules directory.
E como o apache que estou usando é o 2.2.6 foi só usar o mod certo e pronto.
(Foi mal pela história foi longa mas foi pra seguir a linha de raciocínio).
Bom, é isso, mais uma vez parabéns e obrigado pelo share.
Abraço.
Hugo, valeu pelo aviso do link quebrado. Já alterei
Abraço
Muito obrigado, belo tutorial.
não sabe quantos tutoriais eu segui pela internet a fora até encontrar o seu, e nehum funcionou.
abraço
Sigo todos os passos fielmente, mas na hora que eu testo os arquivos *.jsp aparece o codigo fonte completo do arquivo na tela.
Só executa corretamente se explicito a porta de entrada com “http://localhost:8080″
o q poderia ser???
obrigado
resolvido
Post a Comment