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.27-httpd-2.2.10.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: 67% [?]








