Plutôt que de reproduire manuellement la procédure d’installation de Tomcat, j’ai cherché à automatiser un maximum de tâches. Le script qui en découle est encore sommaire et ne fournit pas une configuration définitive, et de toute façon par conforme à une configuration de production. De plus, ce travail est ciblé pour mon système d’exploitation habituel qui est Linux Ubuntu, avec Tomcat 6.
Procédure d’installation
Installation de Java
Le premier pré-requis est la présence de Java. J’utilise la version 6 d’OpenJDK. J’en profite aussi pour ajouter des outils associés à Java, comme la commande update-java-alternative qui peut être pratique pour détecter le répertoire d’installation du JDK.
# Installation de Java
apt-get -y install openjdk-6-jdk
apt-get -y install java-common
Cette portion pourrait être améliorée en vérifiant au préalable la présence d’un autre JDK 6.
Installation de Tomcat
Dans cette portion, on télécharge la distribution de Tomcat, puis on l’installe dans le répertoire /usr/java. On crée en plus un lien symbolique, qui permet d’accéder au répertoire de Tomcat sans se préoccuper du numéro de version dans le nom du répertoire.
# Variables (racine du miroir et version de Tomcat)
MIRROR_HOME=link:http://mir2.ovh.net/ftp.apache.org/dist[http://mir2.ovh.net/ftp.apache.org/dist]
TOMCAT_VERSION=6.0.20
# Téléchargement et installation de tomcat
wget $MIRROR_HOME/tomcat/tomcat-6/v6.0.20/bin/apache-tomcat-$TOMCAT_VERSION.tar.gz
mkdir /usr/java
tar -xvf apache-tomcat-$TOMCAT_VERSION.tar.gz -C /usr/java/
ln -s /usr/java/apache-tomcat-$TOMCAT_VERSION/ /usr/java/apache-tomcat
Installation en service
Pour l’installation de Tomcat en service, j’ai préparé un script de type init.d qu’il faut télécharger et installer. Ce script est épuré et ne tient pas compte des bonnes pratiques de mise en production.
Pour le démarrage, il lance le script startup de Tomcat avec l’utilisateur java ; pour l’arrêt, il lance le script shutdown.
#!/bin/bash
# Tomcat auto-start
#
# description: Démarrage automatique de Tomcat
export JAVA_HOME=/usr/lib/jvm/java-6-openjdk
export CATALINA_HOME=/usr/java/apache-tomcat
USER=java
# Fonction de démarrage
start()
{
su -p -s /bin/sh - $USER $CATALINA_HOME/bin/startup.sh
}
# Fonction d'arrêt
stop()
{
sh $CATALINA_HOME/bin/shutdown.sh
}
case $1 in
start)
start
;;
stop)
stop
;;
restart)
stop
sleep 1
start
;;
esac
exit 0
Pour installer Tomcat, il suffit donc de copier ou télécharger ce script dans le répertoire bin de Tomcat et de faire un lien symbolique depuis /etc/init.d/tomcat.
SCRIPTS_HOME=link:http://download.jtips.info/scripts[http://download.jtips.info/scripts]
wget $SCRIPTS_HOME/tomcat-init-ubuntu.sh
mv tomcat-init-ubuntu.sh /usr/java/apache-tomcat/bin/init-ubuntu.sh
ln -s /usr/java/apache-tomcat/bin/init-ubuntu.sh /etc/init.d/tomcat
chmod 755 /etc/init.d/tomcat
Enfin, pour que ce script soit pris en compte automatiquement au démarrage et à l’arrêt du serveur, on ajoute des lien symboliques dans /etc/rcN.d.
ln -s /etc/init.d/tomcat /etc/rc1.d/K80tomcat
ln -s /etc/init.d/tomcat /etc/rc2.d/S80tomcat
Installation de Log4J
Je n’aime vraiment pas utiliser JULI, et même en développement, je préfère Log4J. J’ai donc préparé un fichier de configuration élémentaire qu’il faut télécharger et installer dans le répertoire lib de Tomcat, en plus des fichiers jar de l’adaptateur Log4J.
# LOG4J
wget $MIRROR_HOME/logging/log4j/1.2.15/apache-log4j-1.2.15.tar.gz
tar -xvf apache-log4j-1.2.15.tar.gz apache-log4j-1.2.15/log4j-1.2.15.jar
mv apache-log4j-1.2.15/log4j-1.2.15.jar /usr/java/apache-tomcat/lib/
rm -r apache-log4j-*
wget $MIRROR_HOME/tomcat/tomcat-6/v$TOMCAT_VERSION/bin/extras/tomcat-juli-adapters.jar
mv tomcat-juli-adapters.jar /usr/java/apache-tomcat/lib/
wget $MIRROR_HOME/tomcat/tomcat-6/v$TOMCAT_VERSION/bin/extras/tomcat-juli.jar
mv tomcat-juli.jar /usr/java/apache-tomcat/bin/
wget $SCRIPTS_HOME/tomcat-log4j.properties
mv tomcat-log4j.properties /usr/java/apache-tomcat/lib/log4j.properties
Script d’installation
Le script complet d’installation peut être téléchargé et utilisé librement.
wget link:http://download.jtips.info/scripts/tomcat-install.sh[http://download.jtips.info/scripts/tomcat-install.sh]
chmod +x tomcat-install.sh
bash tomcat-install.sh