TOMCAT

Définition :

Apache Tomcat est un conteneur de servlet J2EE. Issu du projet Jakarta, Tomcat est désormais un projet principal de la fondation Apache. Tomcat implémente les spécifications des servlets et des JSP de Sun Microsystems. Il inclut des outils pour la configuration et la gestion, mais peut également être configuré en éditant des fichiers de configuration XML. Comme Tomcat inclut un serveur HTTP interne, il est aussi considéré comme un serveur HTTP.

Installation pas à pas sur une Debian Etch en environnement VMWare :

Installation de JDK :

Ceci constitue la première étape, il faut installer Java sur la plateforme :

Récupérer le binaire auto-installable du jdk sur le site de sun : http://java.sun.com/javase/downloads/index.jsp (télécharger ici)
Le placer dans un répertoire comme /usr/local/

Rendre le binaire executable : chmod +x jdk-6u5-linux-i586.bin

Executer le binaire : ./jdk-6u5-linux-i586.bin

L'installation est soumise à licence en bas du fichier de licence saisissez OUI et l'installation s'effectuera.

Une fois l'installation terminée, créez un alias sur le repertoire où a été installé le jdk : ln -s jdk1.6.0_05/ jdk

Créez ensuite une variable d'environnement JAVA_HOME pointant sur votre répertoire : export JAVA_HOME=/usr/local/jdk

Installation de Tomcat

La première chose à faire et de se préparer un répertoire où l'on va installer Tomcat. Dans cette documentation je vais la faire dans /data/tomcat/

Il vous faut ensuite télécharger le zip d'installation de Tomcat. Rendez-vous sur le site : http://tomcat.apache.org/ pour télécharger votre tomcat. Dans cette documentation je vais monter un Tomcat 5.5. (Télécharger le tar.gz)

Décompresser le fichier : tar -xzvf apache-tomcat-5.5.26.tar.gz

Créez un utilisateur et un groupe tomcat :

groupadd tomcat
useradd -g tomcat -d /usr/local/tomcat tomcat

Régler les droits qui vont bien sur le répertoire de Tomcat :

chown -R tomcat:tomcat apache-tomcat-5.5.26
chmod 770 apache-tomcat-5.5.26

Création du script de démarrage

vi /etc/init.d/tomcat

#! /bin/bash
#
# Tomcat Start the tomcat server. FOR NosLand.com
#

NAME="Jakarta Tomcat 5.5.26"
TOMCAT_HOME=/usr/local/tomcat
CATALINA_HOME=/usr/local/tomcat
JAVA_HOME=/usr/local/jdk
CATALINA_OPTS="-Dfile.encoding=iso8859-1"
TOMCAT_USER=tomcat
LC_ALL=fr_FR
export TOMCAT_HOME CATALINA_HOME JAVA_HOME CATALINA_OPTS TOMCAT_USER LC_ALL
cd $TOMCAT_HOME/logs
case "$1" in
start)
echo -ne "Starting $NAME. "
/bin/su $TOMCAT_USER $TOMCAT_HOME/bin/startup.sh
;;

stop)
echo -ne "Stopping $NAME. "
/bin/su $TOMCAT_USER $TOMCAT_HOME/bin/shutdown.sh
;;

*)
echo "Usage: /etc/init.d/tomcat {start|stop}"
exit 1
;;
esac

exit 0

Rendre le script executable et le placer dans le démarrage automatique. Puis lancer le service.

chmod 700 /etc/init.d/tomcat
update-rc.d tomcat defaults 25
/etc/init.d/tomcat start

Vérifier que le Tomcat tourne : ps -xa|grep tomcat

Configurer TOMCAT

  • Tomcat écoute par défaut sur le port 8080. Si vous désirez que votre Tomcat soit accessible via le port 80 classique http, vous serez obligé de mettre un autre serveur Web en frontal, ou bien de faire touner votre tomcat sous l'utilisateur root (ce qui est mal !!!) , car sous Unix les port <1024 doivent être intialiser sous le super utilisateur. Donc le mieux si vous désirez accèder à votre site web via un http://mondomain.com alors configurer un apache pour une redirection sur votre tomcat en http://mondomaine.com:8080.
  • Pour que les servlet puissent être déployé à la volé, c'est à dire sans que vous soyez obligé de relancer le serveur à chaque mise à jour, vous devez activer la fonctionnalité. Par défaut celle-ci est désactivée car elle dégrade fortement les performences du serveur. Pour activer cette fonctionnalité il vous faudra effectuer une modification sur le fichier /usr/local.tomcat/apache-tomcat-5.5.26/conf/context.xml de cette façon :
Original
Modifiée
<Context>

<!-- Default set of monitored resources -->
<WatchedResource>WEB-INF/web.xml</WatchedResource>

<!-- Uncomment this to disable session persistence across Tomcat restarts -->
<!--
<Manager pathname="" />
-->

</Context>

<Context reloadable="true" privileged="true">

<!-- Default set of monitored resources -->
<WatchedResource>WEB-INF/web.xml</WatchedResource>

<!-- Uncomment this to disable session persistence across Tomcat restarts -->
<!--
<Manager pathname="" />
-->

</Context>