Nous allons voir dans cet article comment installer manuellement la dernière version de Tomcat.
Nous verrons également comment faire tourner en parallèle plusieurs instances de Tomcat sur la même machine. Pour finir, nous verrons comment obtenir des données de performance grâce à JavaMelody.

Liens utiles :

Sommaire

Installation

Le moteur Tomcat

Téléchargez l'archive de Tomcat 8 et décompressé la dans /opt/tomcat

cd /usr/src  
wget http://mirrors.ircam.fr/pub/apache/tomcat/tomcat-8/v8.0.32/bin/apache-tomcat-8.0.32.tar.gz  
tar -xvzf apache-tomcat-8.0.32.tar.gz  
cp -aR apache-tomcat-8.0.32/ /opt/tomcat  
groupadd tomcat  
useradd -g tomcat -d /opt/tomcat tomcat  
chown -R tomcat:tomcat /opt/tomcat  
chmod -R 770 /opt/tomcat  

L'instance applicative

Vous devez suivre cette section à chaque fois que vous souhaitez ajouter une nouvelle instance de Tomcat. Cependant, veillez à changer les ports d'une instance à l'autre ;)

Nous allons par exemple créer une instance pour héberger Xwiki.

mkdir /opt/xwiki  
mkdir /opt/xwiki/bin  
mkdir /opt/xwiki/logs  
mkdir /opt/xwiki/webapps  
mkdir /opt/xwiki/work  
cp -aR /opt/tomcat/conf /opt/xwiki/  
nano /opt/xwiki/conf/server.xml  

Modifiez lz configuration comme ceci :

<Server port="8006" shutdown="SHUTDOWN">  
...

<Connector port="8081" protocol="HTTP/1.1"  
               connectionTimeout="20000"
               RIEncoding="UTF-8"
               compression="on" compressionMinSize="2048" compressableMimeType="text/html,text/xml,text/css,text/javascript,application/x-javascript"
               redirectPort="8443" />

...

 <Connector port="8010" protocol="AJP/1.3" redirectPort="8443" />

Puis créez une entrée dans Initd :

nano /etc/init.d/tomcat_xwiki  

Mettez :

#!/bin/sh
set -e

### BEGIN INIT INFO
# Provides:  tomcat8
# Required-Start: $local_fs $remote_fs $network $time
# Required-Stop: $local_fs $remote_fs $network $time
# Should-Start:  $syslog
# Should-Stop:  $syslog
# Default-Start: 2 3 4 5
# Default-Stop:  0 1 6
# Short-Description: Tomcat 8 server
### END INIT INFO

CATALINA_HOME=/opt/tomcat; export CATALINA_HOME  
JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64; export JAVA_HOME

# CUSTOM INSTANCE
TOMCAT_OWNER=tomcat; export  TOMCAT_OWNER  
CATALINA_BASE=/opt/xwiki; export CATALINA_BASE  
JAVA_OPTS="-Djava.awt.headless=true -Xms1024M -Xmx1024M -XX:MaxPermSize=512M"; export JAVA_OPTS  
CATALINA_PID="$CATALINA_HOME/catalina_pid"; export CATALINA_PID

cd $CATALINA_HOME

start() {  
  echo -n "Starting Tomcat:  "
  su $TOMCAT_OWNER -c $CATALINA_HOME/bin/startup.sh

}
stop() {  
   echo -n "Stopping Tomcat: "
   su $TOMCAT_OWNER -c "$CATALINA_HOME/bin/shutdown.sh -force"
}

##

case "$1" in  
start)  
  start
   ;;
stop)  
   stop
   ;;
restart)  
   stop
   start
   ;;
*)
   echo $"Usage: tomcat {start|stop|restart}"
   exit
esac  

Mettez le .war de Xwiki dans /opt/xwiki/webapps/, puis lancez les commandes suivantes :

chmod +x /etc/init.d/tomcat_xwiki  
chown -R tomcat:tomcat /opt/xwiki  
chmod -R 770 /opt/xwiki  
/etc/init.d/tomcat_xwiki start

Configuration du manager

Security

Editez le fichier suivant :

nano /opt/xwiki/conf/tomcat-users.xml  

Puis mettez :

<!--  
Role pour gérer Tomcat  
-->
<role rolename="tomcat"/>  
<user username="tomcat" password="My_PASSWORD" roles="tomcat"/>  

Monitoring / Données de performances

JAVA Melody

Installation

Lancez les commandes suivantes :

cd /opt/xwiki/webapps/xwiki/WEB-INF/lib  
wget https://github.com/javamelody/javamelody/releases/download/javamelody-core-1.49.0/jrobin-1.5.9.jar  
wget https://github.com/javamelody/javamelody/releases/download/javamelody-core-1.59.0/javamelody-1.59.0.jar  

Sécurité

Editez le fichier :

nano /opt/xwiki/conf/web.xml  

Mettez :

<login-config>  
   <auth-method>BASIC</auth-method>
   <realm-name>Monitoring</realm-name>
</login-config>  
<security-role>  
   <role-name>monitoring</role-name>
</security-role>  
<security-constraint>  
   <web-resource-collection>
      <web-resource-name>Monitoring</web-resource-name>
         <url-pattern>/monitoring</url-pattern>
      </web-resource-collection>
      <auth-constraint>
         <role-name>monitoring</role-name>
      </auth-constraint>
      <!-- if SSL enabled (SSL and certificate must then be configured in the server)
      <user-data-constraint>
         <transport-guarantee>CONFIDENTIAL</transport-guarantee>
       </user-data-constraint> 
       -->
</security-constraint>  

Puis editez :

nano /data/jee/equarius/conf/tomcat-users.xml  

Mettez :

<!--  
Role pour java melody  
-->
<role rolename="monitoring"/>  
<user username="monitoring" password="My_PASSWORD" roles="monitoring"/>