Publicado em: 11/05/2009
O Tomcat é um servidor web Java, mais especificamente, um container de servlets. O Tomcat possui algumas características próprias de um servidor de aplicação, porém não pode ser considerado um servidor de aplicação por não preencher todos os requisitos necessários. Por exemplo, o Tomcat não tem suporte a EJB. Desenvolvido pela Apache Software Foundation, é distribuído como software livre dentro do conceituado projeto Apache Jakarta, sendo oficialmente endossado pela Sun como a implementação de referência para as tecnologias Java Servlet e JavaServer Pages (JSP). Ele cobre parte da especificação J2EE com tecnologias como servlet e JSP, e tecnologias de apoio relacionadas como Realms e segurança, JNDI Resources e JDBC DataSources.
Ele tem a capacidade de atuar também como servidor web, ou pode funcionar integrado a um servidor web dedicado como o Apache ou o IIS. Como servidor web, ele provê um servidor web HTTP puramente em Java.
O servidor inclui ferramentas para configuração e gerenciamento, o que também pode ser feito editando-se manualmente arquivos de configuração formatados em XML.
Fonte: http://pt.wikipedia.org/wiki/Tomcat
O ambiente proposto é simples, descrevo apenas os passos rápidos para instalação e configuração.
Será necessário o JRE (Java Runtime 5) e o Apache Tomcat 6:
- Download do Apache Tomcat 6.0.18
Instalando o java:
chmod +x jre-1_5_0_17-linux-i586.bin ./jre-1_5_0_17-linux-i586.bin
Após a descompressão, basta mover o diretório jre1.5.0_17 para /usr/local
mv jre1.5.0_17 /usr/local
Fazendo o download do apache:
wget http://ftp.unicamp.br/pub/apache/tomcat/tomcat-6/v6.0.18/bin/apache-tomcat-6.0.18.tar.gz tar -xvzf apache-tomcat-6.0.18.tar.gz mv apache-tomcat-6.0.18 /usr/local
Agora, basta exportar as variáveis de ambiente utilizadas, isso pode ser feito diretamente no bash (copiando e colando) e/ou adicionando no /etc/profiles . Caso queira saber um pouco mais sobre a CLASSPATH, leia este documento.
JAVA_HOME=/usr/local/jre1.5.0_17; export JAVA_HOME PATH=$PATH:$JAVA_HOME/bin export PATH CATALINA_HOME=/usr/local/apache-tomcat-6.0.18 TOMCAT_HOME=/usr/local/apache-tomcat-6.0.18 CLASSPATH=. export CATALINA_HOME TOMCAT_HOME CLASSPATH
Após adicionar no /etc/profiles e exportá-las no bash, já poderá iniciar o tomcat:
cd /usr/local/apache-tomcat-6.0.18/bin/ ./catalina.sh start Using CATALINA_BASE: /usr/local/apache-tomcat-6.0.18 Using CATALINA_HOME: /usr/local/apache-tomcat-6.0.18 Using CATALINA_TMPDIR: /usr/local/apache-tomcat-6.0.18/temp Using JRE_HOME: /usr/local/jre1.5.0_17
Se tudo ocorreu conforme acima, basta acessá-lo através do IP da máquina na porta 8080, no menu Miscellaneous você encontrará exemplos para testar o seu servidor.
CONFIGURAR O APT
Editar o arquivo /etc/apt/sources.list conforme as linhas abaixo:
1 # 2 # deb cdrom:[Debian GNU/Linux 5.0.1 _Lenny_ - Official i386 DVD Binary-1 20090413-00:33]/ lenny contrib main 3 4 #deb cdrom:[Debian GNU/Linux 5.0.1 _Lenny_ - Official i386 DVD Binary-1 20090413-00:33]/ lenny contrib main 5 6 deb http://security.debian.org/ lenny/updates main contrib 7 deb-src http://security.debian.org/ lenny/updates main contrib 8 9 deb http://volatile.debian.org/debian-volatile lenny/volatile main contrib 10 deb-src http://volatile.debian.org/debian-volatile lenny/volatile main contrib 11 12 13 deb http://ftp.us.debian.org/debian lenny main contrib non-free 14
Para instalar os pacotes providos pelo repositório Debian, basta executar:
apt-get install apache2 apt-get install libapache2-mod-php5 apt-get install libapache2-mod-jk apt-get install php5 php5-cli php5-mysql php5-pgsql
CONFIGURANDO O Apache
O servidor apache já está configurado para trabalhar com o módulo PHP, MySQL e PostgreSQL. Faz-se necessário apenas configurar o mod_jk, módulo responsável por fazer a “ponte” entre o apache e o tomcat.
Lista de módulos, para conferência, já configurados automaticamente nesta instalação via comando apt-get:
/etc/apache2/mods-enabled# ls -alhtr total 8.0K drwxr-xr-x 2 root root 4.0K 2009-11-24 14:41 . drwxr-xr-x 7 root root 4.0K 2009-11-24 16:50 .. lrwxrwxrwx 1 root root 29 2009-12-09 10:31 status.load -> ../mods-available/status.load lrwxrwxrwx 1 root root 29 2009-12-09 10:31 status.conf -> ../mods-available/status.conf lrwxrwxrwx 1 root root 31 2009-12-09 10:31 setenvif.load -> ../mods-available/setenvif.load lrwxrwxrwx 1 root root 31 2009-12-09 10:31 setenvif.conf -> ../mods-available/setenvif.conf lrwxrwxrwx 1 root root 27 2009-12-09 10:31 php5.load -> ../mods-available/php5.load lrwxrwxrwx 1 root root 27 2009-12-09 10:31 php5.conf -> ../mods-available/php5.conf lrwxrwxrwx 1 root root 34 2009-12-09 10:31 negotiation.load -> ../mods-available/negotiation.load lrwxrwxrwx 1 root root 34 2009-12-09 10:31 negotiation.conf -> ../mods-available/negotiation.conf lrwxrwxrwx 1 root root 27 2009-12-09 10:31 mime.load -> ../mods-available/mime.load lrwxrwxrwx 1 root root 27 2009-12-09 10:31 mime.conf -> ../mods-available/mime.conf lrwxrwxrwx 1 root root 25 2009-12-09 10:31 jk.load -> ../mods-available/jk.load lrwxrwxrwx 1 root root 26 2009-12-09 10:31 env.load -> ../mods-available/env.load lrwxrwxrwx 1 root root 26 2009-12-09 10:31 dir.load -> ../mods-available/dir.load lrwxrwxrwx 1 root root 26 2009-12-09 10:31 dir.conf -> ../mods-available/dir.conf lrwxrwxrwx 1 root root 30 2009-12-09 10:31 deflate.load -> ../mods-available/deflate.load lrwxrwxrwx 1 root root 30 2009-12-09 10:31 deflate.conf -> ../mods-available/deflate.conf lrwxrwxrwx 1 root root 26 2009-12-09 10:31 cgi.load -> ../mods-available/cgi.load lrwxrwxrwx 1 root root 32 2009-12-09 10:31 autoindex.load -> ../mods-available/autoindex.load lrwxrwxrwx 1 root root 32 2009-12-09 10:31 autoindex.conf -> ../mods-available/autoindex.conf lrwxrwxrwx 1 root root 33 2009-12-09 10:31 authz_user.load -> ../mods-available/authz_user.load lrwxrwxrwx 1 root root 33 2009-12-09 10:31 authz_host.load -> ../mods-available/authz_host.load lrwxrwxrwx 1 root root 38 2009-12-09 10:31 authz_groupfile.load -> ../mods-available/authz_groupfile.load lrwxrwxrwx 1 root root 36 2009-12-09 10:31 authz_default.load -> ../mods-available/authz_default.load lrwxrwxrwx 1 root root 33 2009-12-09 10:31 authn_file.load -> ../mods-available/authn_file.load lrwxrwxrwx 1 root root 33 2009-12-09 10:31 auth_basic.load -> ../mods-available/auth_basic.load lrwxrwxrwx 1 root root 28 2009-12-09 10:31 alias.load -> ../mods-available/alias.load lrwxrwxrwx 1 root root 28 2009-12-09 10:31 alias.conf -> ../mods-available/alias.conf
/etc/apache2/mods-enabled# ls alias.conf authn_file.load authz_host.load autoindex.load deflate.load env.load mime.load php5.conf setenvif.load alias.load authz_default.load authz_user.load cgi.load dir.conf jk.load negotiation.conf php5.load status.conf auth_basic.load authz_groupfile.load autoindex.conf deflate.conf dir.load mime.conf negotiation.load setenvif.conf status.load
Arquivos modificados para configurar mod_jk no Apache:
- /etc/apache2/
- tomcat.conf
- workers.properties - sites-enabled/
- 000-default
tomcat.conf
Arquivo responsável por definir configurações do módulo JK, como propriedades, log e formatos:
1 JkWorkersFile /etc/apache2/workers.properties 2 JkLogFile /var/log/apache2/mod_jk.log 3 JkLogLevel error 4 JkLogStampFormat "[%a %b %d %H:%M:%S %Y] " 5 #JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories 6 JkOptions +ForwardKeySize -ForwardDirectories 7 JkRequestLogFormat "%w %V %T"
workers.properties
Arquivo responsável por fazer o relacionamento entre Apache e Tomcat via protocolo ajp13
1 workers.tomcat_home=/usr/local/apache-tomcat-6.0.18/ 2 workers.java_home=/usr/local/jre1.5.0_17 3 ps=/ 4 worker.list=jvm1 5 worker.jvm1.type=ajp13 6 worker.jvm1.host=127.0.0.1 7 worker.jvm1.port=8009 8 worker.jvm1.socket_keepalive=1 9 worker.jvm1.socket_timeout=300 10 worker.jvm1.lbfactor=1
000-default
Arquivo responsável por armazenar configurações de VirtualHost do apache para o site denominado default
1 <VirtualHost *:80> 2 ServerAdmin webmaster@localhost 3 ##ServerName intranet.com.br 4 DocumentRoot /var/www/ 5 <Directory /> 6 Options FollowSymLinks 7 AllowOverride None 8 </Directory> 9 <Directory /var/www/> 10 Options Indexes FollowSymLinks MultiViews 11 AllowOverride None 12 Order allow,deny 13 allow from all 14 </Directory> 15 16 ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ 17 <Directory "/usr/lib/cgi-bin"> 18 AllowOverride None 19 Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch 20 Order allow,deny 21 Allow from all 22 </Directory> 23 24 ErrorLog /var/log/apache2/error.log 25 26 # Possible values include: debug, info, notice, warn, error, crit, 27 # alert, emerg. 28 LogLevel warn 29 30 CustomLog /var/log/apache2/access.log combined 31 32 Alias /doc/ "/usr/share/doc/" 33 <Directory "/usr/share/doc/"> 34 Options Indexes MultiViews FollowSymLinks 35 AllowOverride None 36 Order deny,allow 37 Deny from all 38 Allow from 127.0.0.0/255.0.0.0 ::1/128 39 </Directory> 40 41 42 # Modulo JK, Tomcat 43 44 JkMount /pentaho jvm1 45 JkMount /pentaho/* jvm1 46 JkMount /pentaho-style jvm1 47 JkMount /pentaho-style/* jvm1 48 JkMount /sw-style jvm1 49 JkMount /sw-style/* jvm1 50 51 52 53 # Caso for adicionar um outro PATH, modificar as duas chamadas 54 #JkMount /SISTEMA jvm1 55 #JkMount /SISTEMA/* jvm1 56 57 58 </VirtualHost>
o JkMount faz o redirecionamento do seu “/sistema” para a jvm1 que será atendida pelo tomcat. Note que o seu /sistema deve estar dentro do diretório webapps do tomcat.
CONFIGURANDO O Tomcat
Será necessário modificar apenas o server.xml em: tomcat/conf/server.xml
server.xml
Esse arquivo é responsável por definir o engine da JVM que irá atender as requisições do Apache com o módulo JK
140 <!-- Define the top level container in our container hierarchy --> 141 <Engine name="Catalina" <span style="color: #ff0000;"><strong>jvmRoute="jvm1"</strong></span> defaultHost="localhost">