Installation Tomcat Ubuntu

De EjnTricks

L'installation de Tomcat s'effectue à l'aide de l'outil apt, avec la commande suivante:

#sudo apt-get install tomcat6

Une installation de Tomcat sous Ubuntu avec apt-get entraîne la création de plusieurs répertoires

  • /etc/tomcat6: Contient un ensemble de fichier commun de configuration. pas utilisé à priori.
  • /usr/share/tomcat6: Correspond au CATALINA_HOME, contient les binaires de Tomcat.
  • /var/cache/tomcat6: Correspond au répertoire de travail de Tomcat, en autre les pages compilés de webapp.
  • /var/lib/tomcat6: Correspond au CATALINA_BASE, contient l'instance par défaut où les webapp doivent être déployés.


Hand-icon.png Votre avis

Nobody voted on this yet

 You need to enable JavaScript to vote


Version 11.X

Sur une machine Ubuntu, le script de démarrage du service scan des répertoires pour trouver l'installation de JAVA disponible, si la variable d'environnement JAVA_HOME n'est pas positionnée. Par défaut, c'est l'installation java-6-openjdk qui est prise en compte. Pour prendre en compte la version de SUN, il faut éditer le fichier /etc/init.d/tomcat6:

# The first existing directory is used for JAVA_HOME (if JAVA_HOME is not
# defined in $DEFAULT)
JDK_DIRS="/usr/lib/jvm/java-6-openjdk /usr/lib/jvm/java-6-sun /usr/lib/jvm/java-1.5.0-sun /usr/lib/j2sdk1.5-sun /usr/lib/j2sdk1.5-ibm"

# Look for the right JVM to use
for jdir in $JDK_DIRS; do
    if [ -r "$jdir/bin/java" -a -z "${JAVA_HOME}" ]; then
        JAVA_HOME="$jdir"
    fi
done

Modifié par:

# The first existing directory is used for JAVA_HOME (if JAVA_HOME is not
# defined in $DEFAULT)
JDK_DIRS="/usr/lib/jvm/java-6-sun /usr/lib/jvm/java-6-openjdk /usr/lib/jvm/java-1.5.0-sun /usr/lib/j2sdk1.5-sun /usr/lib/j2sdk1.5-ibm"

# Look for the right JVM to use
for jdir in $JDK_DIRS; do
    if [ -r "$jdir/bin/java" -a -z "${JAVA_HOME}" ]; then
        JAVA_HOME="$jdir"
    fi
done


Version 12.04

Pour la version 12.04 de Ubuntu, le script de démarrage de Tomcat, fichier /etc/init.d/tomcat6 est légèrement modifié pour prendre en compte le lien /usr/lib/jvm/default-java comme JRE à utilisé préférentiellement.

# The first existing directory is used for JAVA_HOME (if JAVA_HOME is not
# defined in $DEFAULT)

OPENJDKS=""
find_openjdks
JDK_DIRS="/usr/lib/jvm/default-java ${OPENJDKS} /usr/lib/jvm/java-6-sun /usr/lib/jvm/java-1.5.0-sun /usr/lib/j2sdk1.5-sun /usr/lib/j2sdk1.5-ibm"

# Look for the right JVM to use
for jdir in $JDK_DIRS; do
    if [ -r "$jdir/bin/java" -a -z "${JAVA_HOME}" ]; then
        JAVA_HOME="$jdir"
    fi
done
export JAVA_HOME

Or ce lien default-java pointe par défaut sur l'instance de openjdk:

#ll /usr/lib/jvm
total 100
drwxr-xr-x   6 root root  4096 mai    6 20:41 ./
drwxr-xr-x 122 root root 69632 mai    6 22:52 ../
lrwxrwxrwx   1 root root    24 déc.   2 14:46 default-java -> java-1.6.0-openjdk-amd64/
lrwxrwxrwx   1 root root    24 déc.   2 14:46 java-1.6.0-openjdk -> java-1.6.0-openjdk-amd64/
lrwxrwxrwx   1 root root    20 avril 13 02:36 java-1.6.0-openjdk-amd64 -> java-6-openjdk-amd64/
-rw-r--r--   1 root root  2387 avril 13 02:36 .java-1.6.0-openjdk-amd64.jinfo
drwxr-xr-x   2 root root  4096 mai    6 20:41 java-6-openjdk/
drwxr-xr-x   5 root root  4096 mai    6 20:41 java-6-openjdk-amd64/
drwxr-xr-x   3 root root  4096 mai    6 20:41 java-6-openjdk-common/
lrwxrwxrwx   1 root root    19 juil. 12  2011 java-6-sun -> java-6-sun-1.6.0.26/
drwxr-xr-x   8 root root  4096 juil. 12  2011 java-6-sun-1.6.0.26/
-rw-r--r--   1 root root  2392 juil. 12  2011 .java-6-sun.jinfo

Par conséquent, même si la version de Java est modifiée par la commande update-java-alternatives, cell-ci ne sera pas prise en compte. Deux choix s'offrent aux utilisateurs:

  • Modifier le lien default-java.
  • Modifier le script de démarrage de Tomcat.

La deuxième solution est utilisée afin de se prémunir de problèmes sur d'autres applications. Le principe est donc d'inverser les répertoires de recherche de la JRE.

# The first existing directory is used for JAVA_HOME (if JAVA_HOME is not
# defined in $DEFAULT)

OPENJDKS=""
find_openjdks
JDK_DIRS="/usr/lib/jvm/java-6-sun /usr/lib/jvm/default-java ${OPENJDKS} /usr/lib/jvm/java-1.5.0-sun /usr/lib/j2sdk1.5-sun /usr/lib/j2sdk1.5-ibm"

# Look for the right JVM to use
for jdir in $JDK_DIRS; do
    if [ -r "$jdir/bin/java" -a -z "${JAVA_HOME}" ]; then
        JAVA_HOME="$jdir"
    fi
done
export JAVA_HOME

Lors de l'installation de la version 1.7, il faut penser à modifier le script pour prendre en compte cette nouvelle version.

# The first existing directory is used for JAVA_HOME (if JAVA_HOME is not
# defined in $DEFAULT)

OPENJDKS=""
find_openjdks
JDK_DIRS="/usr/lib/jvm/java-7-oracle /usr/lib/jvm/java-6-sun /usr/lib/jvm/default-java ${OPENJDKS} /usr/lib/jvm/java-1.5.0-sun /usr/lib/j2sdk1.5-sun /usr/lib/j2sdk1.5-ibm"

# Look for the right JVM to use
for jdir in $JDK_DIRS; do
    if [ -r "$jdir/bin/java" -a -z "${JAVA_HOME}" ]; then
        JAVA_HOME="$jdir"
    fi
done
export JAVA_HOME


Run-icon.png Arrêt / Relance

Pour l'installation décrite ci dessus, le lancement et l'arrêt de Tomcat ne s'effectue pas avec les traditionnels script sh startup.sh et shutdown.sh. Le lancement et l'arrêt du serveur s'effectue à l'aide des commandes services:

#sudo service tomcat6 start
#sudo service tomcat6 stop