Instalação do Apache com Tomcat + Debian Squeeze

E ai galera, aqui eu vou abordar a instalação do Tomcat trabalhando em conjunto com o Apache, a implementação no meu ponto de vista é bem simples ;)

Prepare o seu sistema com o seguinte script http://wiki.douglasqsantos.com.br/doku.php/confinicialsqueeze_en para que não falte nenhum pacote ou configuração.

Vamos atualizar o sistema e fazer um upgrade dos pacotes

aptitude update && aptitude dist-upgrade -y

Vamos instalar o JAVA

apt-get install sun-java6-jdk openjdk-6-jdk -y

Temos que alterar qual java que vai ser usado

update-alternatives --config java
#agora temos que selecionar /usr/lib/jvm/java-6-sun/jre/bin/java

Para verificar a versão do java podemos utilizar o seguinte comando

java -version
java version "1.6.0_26"
Java(TM) SE Runtime Environment (build 1.6.0_26-b03)
Java HotSpot(TM) 64-Bit Server VM (build 20.1-b02, mixed mode)

Agora vamos obter o tomcat e vamos instalar ele

cd /opt
wget -c http://wiki.douglasqsantos.com.br/Downloads/apache/apache-tomcat-6.0.35.tar.gz
tar -xzvf apache-tomcat-6.0.35.tar.gz
mv apache-tomcat-6.0.35 tomcat
rm -rf apache-tomcat-6.0.35.tar.gz 

Vamos criar o script de incialização

vim /etc/init.d/tomcat
#!/bin/bash
### BEGIN INIT INFO
# Provides:             tomcat
# Required-Start:       $remote_fs $syslog
# Required-Stop:        $remote_fs $syslog
# Default-Start:        2 3 4 5
# Default-Stop:         
# Short-Description:    Apache Tomcat
### END INIT INFO
GREY="\033[01;30m" RED="\033[01;31m" GREEN="\033[01;32m" YELLOW="\033[01;33m"
BLUE="\033[01;34m" PURPLE="\033[01;35m" CYAN="\033[01;36m" WHITE="\033[01;37m"
CLOSE="\033[m"

start(){
echo -e "${GREEN}INICIANDO TOMCAT${CLOSE}"
/bin/sh /opt/tomcat/bin/startup.sh
echo -e "${GREEN}TOMCAT INICIADO${CLOSE}"
}

stop (){
echo -e "${RED}PARANDO TOMCAT${CLOSE}"
/bin/sh /opt/tomcat/bin/shutdown.sh
echo -e "${RED}TOMCAT PARADO${CLOSE}"
}

case "$1" in
start)
start;;

stop)
stop;;

restart)
stop
start
;;

*)
echo -e "${RED}COMANDO INVALIDO${CLOSE}"
;;
esac

exit 0

Agora temos que acertar as permissões do nosso script

chmod +x /etc/init.d/tomcat

Vamos colocar este script na inicialização do sistema

insserv -f -v tomcat

Agora vamos acertar o usuarios do tomcat

vim /opt/tomcat/conf/tomcat-users.xml
[...]
<tomcat-users>
[...]
<role rolename="manager"/>
<role rolename="admin"/>
<user username="douglas" password="doug123" roles="manager,admin"/>
[...]
</tomcat-users>

Agora vamos reiniciar o tomcat

/etc/init.d/tomcat restart

Agora vamos instalar os pacotes para o apache

apt-get install libapache2-mod-jk -y

Precisamos configurar a conexão do apache com o tomcat

vi /etc/apache2/workers.properties
workers.tomcat_home=/opt/tomcat
workers.java_home=/usr/lib/jvm/java-6-sun
ps=/
worker.list=default
worker.default.port=8009
worker.default.host=localhost
worker.default.type=ajp13
worker.default.lbfactor=1

Agora acertar o modúlo de conexão

vi /etc/apache2/conf.d/mod_jk.conf
<IfModule mod_jk.c>
  JkWorkersFile /etc/apache2/workers.properties
  JkShmFile /var/log/apache2/mod_jk.shm
  JkLogFile /var/log/apache2/mod_jk.log
  JkLogLevel info
  JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
  JkRequestLogFormat "%w %V %T"
</IfModule>

Agora vamos acertar os diretórios para o nosso site

mkdir -p /var/www/tomcat.douglasqsantos.com.br
mkdir -p /var/www/tomcat.douglasqsantos.com.br/htdocs
mkdir -p /var/www/tomcat.douglasqsantos.com.br/logs

Agora vamos criar o Virtual host no apache

Aqui eu estou direcionando qualquer consulta para o tomcat porem poderia somente redirecionar as consultas a páginas .jsp

vi /etc/apache2/sites-available/tomcat.douglasqsantos.com.br
<VirtualHost *:80>
    JkMount /* default
    ServerName tomcat.douglas.lan
    ServerAdmin webmaster@tomcat.douglasqsantos.com.br
    DocumentRoot /var/www/tomcat.douglasqsantos.com.br/htdocs
    ErrorLog /var/www/tomcat.douglasqsantos.com.br/logs/error.log
    CustomLog /var/www/tomcat.douglasqsantos.com.br/logs/access.log combined
    <Directory /var/www/tomcat.douglasqsantos.com.br/htdocs>
        Options -Indexes
    </Directory>
</VirtualHost>

Agora vamos carregar o nosso virtualhost

a2ensite tomcat.douglasqsantos.com.br

Vamos desabilitar o host default do apache

a2dissite default 

Agora vamos configurar o virtualhost para o tomcat

vim /opt/tomcat/conf/server.xml
[...]
<!-- tomcat.douglasqsantos.com.br -->
<Host name="tomcat.douglasqsantos.com.br" appBase="/var/www/tomcat.douglasqsantos.com.br" unpackWARs="true" autoDeploy="true">
    <Context path="" docBase="htdocs" debug="0" reloadable="true"/>
    <Valve className="org.apache.catalina.valves.AccessLogValve" directory="/var/www/tomcat.douglasqsantos.com.br/logs"  prefix="tomcat_access_" suffix=".log" pattern="common" resolveHosts="false"/>
</Host>
[...]
</Engine>

Agora vamos acertar mais algumas configurações para o tomcat

mkdir /opt/tomcat/conf/Catalina/tomcat.douglasqsantos.com.br
cp /opt/tomcat/conf/Catalina/localhost/* /opt/tomcat/conf/Catalina/tomcat.douglasqsantos.com.br

Vamos criar uma página de teste

vi /var/www/tomcat.douglasqsantos.com.br/htdocs/index.jsp
<html>
    <head>
        <title>Hello World</title>
    </head>
    <body>
        <h1>Hello World</h1>
        Today is: <%= new java.util.Date().toString() %>
    </body>
</html>

Agora vamos reiniciar os nossos serviços

/etc/init.d/apache2 restart
/etc/init.d/tomcat restart

Agora para testar ou insira uma entrada no seu dns para resolver para o endereço ip do servidor ou podemos fazer um ajuste no arquivo hosts do cliente como abaixo

vim /etc/hosts
[...]
ip_servidor tomcat.douglasqsantos.com.br tomcat

Agora é só acessar em http://tomcat.douglasqsantos.com.br

Referências