Instalação do Apache Tomcat + Debian Squeeze
E ai galera aqui vou abordar a instalação e configuração do Tomcat no Debian Squeeze ;)
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 os repositórios e fazer um upgrade do sistema
aptitude update && aptitude dist-upgrade -y
Agora 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
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 do tomcat
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: 0 1 6 # 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
Vamos acertar a permissão do script
chmod +x /etc/init.d/tomcat
Agora vamos colocar esse script na inicialização do sistema
insserv -f -v tomcat
Agora vamos acertar o usuario 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 checar a configuração
nmap -sS localhost -T4 Starting Nmap 5.21 ( http://nmap.org ) at 2011-10-01 19:54 BRT Nmap scan report for localhost (127.0.0.1) Host is up (0.0000040s latency). Not shown: 995 closed ports PORT STATE SERVICE 22/tcp open ssh 111/tcp open rpcbind 631/tcp open ipp 8009/tcp open ajp13 8080/tcp open http-proxy Nmap done: 1 IP address (1 host up) scanned in 0.12 seconds
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
Configurando o virtualhost para o tomcat se você não tiver mais um servidor web trabalhando pode musar a porta padrão do tomcat de 8080 para a porta 80
vim /opt/tomcat/conf/server.xml [...] <!-- Opcional --> [...] <Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="443" /> [...] <Connector port="8009" protocol="AJP/1.3" redirectPort="443" /> <!-- Criação do virtual host --> <Engine name="Catalina" defaultHost="tomcat.douglasqsantos.com.br"> [...] <!-- 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 no tomcat
mkdir -p /opt/tomcat/conf/Catalina/tomcat.douglasqsantos.com.br cp /opt/tomcat/conf/Catalina/localhost/* /opt/tomcat/conf/Catalina/tomcat.douglasqsantos.com.br
Agora 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 é so reiniciar o tomcat
/etc/init.d/tomcat restart
Agora para testar você pode acessar em http://tomcat.douglasqsantos.com.br se você mudou a porta de 8080 para 80 senão acesse em http://tomcat.douglasqsantos.com.br:8080 se ficou a porta padrão
Opcional Gerar a chave de criptografia para trabalhar com https
mkdir /etc/ssl/tomcat keytool -genkeykeytool -genkey -alias tomcat -keyalg RSA -keystore /etc/ssl/tomcat/key.jks Enter keystore password: doug123 Re-enter new password: doug123 What is your first and last name? [Unknown]: tomcat.douglasqsantos.com.br What is the name of your organizational unit? [Unknown]: Douglas What is the name of your organization? [Unknown]: Douglas What is the name of your City or Locality? [Unknown]: Curitiba What is the name of your State or Province? [Unknown]: Parana What is the two-letter country code for this unit? [Unknown]: BR Is CN=tomcat.douglasqsantos.com.br, OU="Douglas ", O=Douglas, L=Curitiba, ST=Parana, C=BR correct? [no]: yes Enter key password for <tomcat> (RETURN if same as keystore password): doug123 Re-enter new password: doug123
Agora vamos acertar a configuração do tomcat para trabalhar com https
vim /opt/tomcat/conf/server.xml [...] <Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="443" /> [...] <!-- Insira essas linhas abaixo --> <Connector port="443" protocol="HTTP/1.1" SSLEnabled="true" maxThreads="150" scheme="https" secure="true" keystoreFile="/etc/ssl/tomcat/key.jks" keystorePass="doug123" clientAuth="false" sslProtocol="TLS" />
Agora vamos reiniciar o tomcat
/etc/init.d/tomcat restart
Para testar acess https://tomcat.douglasqsantos.com.br
Se gerarmos as chaves como as chaves do apache podemos utilizar as seguintes entradas em server.xml
vim /opt/tomcat/conf/server.xml [...] <Connector port="8443" maxThreads="200" scheme="https" secure="true" SSLEnabled="true" SSLCertificateFile="/usr/local/ssl/server.crt" SSLCertificateKeyFile="/usr/local/ssl/server.pem" clientAuth="optional" SSLProtocol="TLSv1" />