Instalando o Tomcat no Debian Sarge
02/12/2007 – 18:53:20O objetivo desse artigo é explicar, passo a passo, como proceder para instalar o Apache Tomcat 5.5 em uma instalação do Debian Sarge.
Este artigo é mais direto do que instrutivo. Ao fim dele você terá o Tomcat instalado no Debian Sarge, rodando com a JVM da Sun, mas não tenho a pretensão de explicar os motivos de cada um dos passos.
Espero na sequência escrever um artigo ensinando como utilizar o Apache 2 na frente do Tomcat, como acontece nos ambientes mais sérios de produção (o Apache responde às requisições de arquivos estáticos passando a responsabilidade para o Tomcat quando existir uma requisição a um conteúdo dinâmico (gerado por servlets, etc).
O que é necessário para começar
Para começar você deve ter um Debian Sarge instalado com o servidor web Apache 2, ou apenas um Debian Sarge caso você não tenha interesse em ter um servidor web à frente do servidor de aplicação (Tomcat).
Se você usa Windows e não quer ter muito trabalho fazendo uma instalação de Linux, uma boa opção é baixar o VMWare Player (para baixar clique aqui e depois clique no botão .Download VMware Player.) e uma das imagens do VMWare de Debian Sarge disponibilizadas (você pode baixá-la aqui).
Instalação do JDK
Baixando o JDK da Sun
Devido às questões de licenciamento, não existe uma maneira direta de obter o JDK da Sun com um .apt-get. ou similar no Debian. Então a opção é baixar a versão apropriada para Linux no site da Sun (clique aqui e depois siga o link .JDK 5.0 Update 11.). O arquivo utilizado neste artigo é o jdk-1_5_0_11-linux-i586.bin.
Instalando o JDK da Sun
Após baixar o arquivo basta executá-lo, ler a licença e digitar .yes. caso você concorde com ela. A partir daí os arquivos serão extraídos para o seu disco (note que para executar o arquivo você precisa, antes de tudo, setar as devidas permissões).
Ao final da operação vamos mover os arquivos para um local mais apropriado, o diretório /opt/. E para facilitar o trabalho na hora de atualizar os arquivos do JDK vamos criar, também, um link simbólico para o diretório:
chmod 755 jdk-1_5_0_11-linux-i586.bin mv jdk1.5.0_11/ /opt/ ln -s /opt/jdk1.5.0_11 /opt/java
Instalação do Tomcat
Baixando e instalando o Tomcat
Você pode baixar o arquivo .zip com os arquivos binários do Tomcat no endereço http://tomcat.apache.org/download-55.cgi . Aproveite para baixar a aplicação de administração do Tomcat, pois ela certamente lhe será util no futuro.
Após baixar o arquivo vamos descompactá-lo, movê-lo para o diretório /opt, criar um link simbólico para o diretório (assim podemos trocar a versão do Tomcat sem maiores dores de cabeça) e setar as permissões para os scripts do Tomcat.
unzip apache-tomcat-5.5.23.zip mv apache-tomcat-5.5.23/ /opt/ ln -s /opt/apache-tomcat-5.5.23 /opt/tomcat chmod 755 /opt/tomcat/bin/*.sh
Preparando o ambiente para rodar o Tomcat
Vamos aproveitar para preparar o ambiente de forma a rodar o Tomcat com um usuário não privilegiado.
A idéia aqui é criar um grupo chamado .webusers. e um usuário .tomcat., associar esse novo usuário ao grupo recém-criado e sempre subir o Tomcat utilizando esse usuário. Adicionalmente precisamos dar as devidas permissões no diretório do Tomcat ao novo usuário.
groupadd webusers useradd -g webusers -s /dev/null tomcat chown -R tomcat:webusers /opt/tomcat
Vamos criar, também, um script para subir e derrubar o servidor de aplicações com o devido usuário.
Não irei dar maiores explicações sobre o conteúdo do script, até mesmo porque o original não é de minha autoria. Apenas fiz as alterações necessárias para que funcionasse no ambiente descrito nesse artigo.
Crie um arquivo /opt/tomcat/bin/tomcat.sh com o conteúdo abaixo:
#! /bin/sh -e # # /etc/init.d/tomcat -- startup script for the Tomcat 5.0 servlet engine # # Written by Miquel van Smoorenburg . # Modified for Debian GNU/Linux by Ian Murdock . # Modified for Tomcat by Stefan Gybas . # Modified by Rafael Cotta PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin NAME=tomcat DESC="Tomcat 5.5 servlet engine" CATALINA_HOME=/opt/$NAME #DAEMON=/usr/bin/$NAME DAEMON=$CATALINA_HOME/bin/catalina.sh # The following variables can be overwritten in /etc/default/tomcat5 # Run Tomcat 5.5 as this user ID (default: tomcat5) # Set this to an empty string to prevent Tomcat from starting automatically TOMCAT5_USER=tomcat # The first existing directory is used for JAVA_HOME (if JAVA_HOME is not # defined in /etc/default/tomcat5) JDK_DIRS="/opt/java" JAVA_HOME="/opt/java" # Arguments to pass to the Java virtual machine (JVM) #CATALINA_OPTS="-Djavax.net.ssl.trustStore=/etc/tomcat/truststore.aaitest.jks" # Use the Java security manager? (yes/no) #TOMCAT5_SECURITY="no" # End of variables that can be overwritten in /etc/default/tomcat5 # overwrite settings from default file #if [ -f /etc/default/tomcat5 ]; then # . /etc/default/tomcat5 #fi test -f $DAEMON || exit 0 # Look for the right JVM to use for jdir in $JDK_DIRS; do if [ -d "$jdir" -a -z "${JAVA_HOME}" ]; then JAVA_HOME="$jdir" fi done export JAVA_HOME export CATALINA_OPTS # Define other required variables PIDFILE="/var/run/$NAME.pid" LOGDIR="$CATALINA_HOME/logs" WEBAPPDIR="$CATALINA_HOME/webapps" STARTUP_OPTS="" if [ "$TOMCAT5_SECURITY" = "yes" ]; then STARTUP_OPTS="-security" fi # CATALINA_PID for catalina.sh export CATALINA_PID="$PIDFILE" case "$1" in start) if [ -z "$TOMCAT5_USER" ]; then echo "Not starting $DESC as configured (TOMCAT5_USER is empty in" echo "/etc/default/tomcat5)." exit 0 fi if [ -z "$JAVA_HOME" ]; then echo "Could not start $DESC because no Java Development Kit" echo "(JDK) was found. Please download and install JDK 1.3 or higher and set" echo "JAVA_HOME in /etc/default/tomcat5 to the JDK's installation directory." exit 0 fi echo -n "Starting $DESC using Java from $JAVA_HOME: " # Remove dangling webapp symlinks for webapp in "$WEBAPPDIR"/*; do if [ "$webapp" != "$WEBAPPDIR/*" -a ! -e "$webapp" ]; then echo "Removing obsolete webapp $webapp" >>"$LOGDIR/catalina.out" rm "$webapp" >> "$LOGDIR/catalina.out" 2>&1 || true fi done # Symlink new webapps from /usr/share/java/webapps for webapp in /usr/share/java/webapps/*; do if [ -e "$webapp" -a ! -e "$WEBAPPDIR/`basename $webapp`" \ -a ! -e "$WEBAPPDIR/`basename $webapp .war`" ]; then echo "Symlinking new webapp $webapp" >>"$LOGDIR/catalina.out" ln -s "$webapp" "$WEBAPPDIR" || true fi done # Create catalina.policy (for the security manager) # rm -f /var/lib/tomcat/catalina.policy # cat /etc/tomcat/policy.d/*.policy >/var/lib/tomcat/catalina.policy mkdir -p "$CATALINA_HOME/work/_temp" touch "$PIDFILE" "$LOGDIR/catalina.out" || true chown --dereference "$TOMCAT5_USER" "$PIDFILE" "$LOGDIR" \ "$LOGDIR/catalina.out" "$CATALINA_HOME/work" \ "$CATALINA_HOME/temp" || true if start-stop-daemon --test --start --pidfile "$PIDFILE" \ --user $TOMCAT5_USER --startas "$DAEMON" >/dev/null; then # -p preserves the environment (for $JAVA_HOME etc.) # -s is required because tomcat5's login shell is /bin/false su -p -s /bin/sh $TOMCAT5_USER \ -c "\"$DAEMON\" start $STARTUP_OPTS" \ >>"$LOGDIR/catalina.out" 2>&1 echo "$NAME." else echo "(already running)." fi ;; stop) echo -n "Stopping $DESC: " if start-stop-daemon --test --start --pidfile "$PIDFILE" \ --user $TOMCAT5_USER --startas "$DAEMON" >/dev/null; then echo "(not running)." else su -p $TOMCAT5_USER -c "\"$DAEMON\" stop" >/dev/null 2>&1 || true # Fallback to kill the JVM process in case stopping did not work sleep 1 start-stop-daemon --stop --oknodo --quiet --pidfile "$PIDFILE" \ --user "$TOMCAT5_USER" rm -f "$PIDFILE" echo "$NAME." fi ;; restart|force-reload) $0 stop sleep 1 $0 start ;; *) echo "Usage: /etc/init.d/tomcat {start|stop|restart|force-reload}" >&2 exit 1 ;; esac exit 0
Controlando o Tomcat
Finalmente, podemos iniciar o Tomcat com o comando:
/opt/tomcat/bin/tomcat.sh start
E derrubá-lo com o commando:
/opt/tomcat/bin/tomcat.sh stop
Dica: você pode digitar o comando sem nenhuma opção para visualizar todas as opções disponíveis.
Teste o servidor de aplicação acessando o endereço http://SEU_ENDERECO_IP:8080/. Se tudo estiver correto você deverá visualizar a tela de boas-vindas do Tomcat.