tutoriel | Installer et configurer Tomcat 7
Article publiée le 09 Septembre 2013
Mis à jour le 8 Novembre 2016
Tomcat 8 étant sorti, je me suis permis de rédiger un petit tutoriel adapté:
http://journaldunadminlinux.fr/tutoriel-installer-et-configurer-tomcat-8/
Tomcat est le conteneur libre de servlets le plus utilisé.
En parcourant les forums j'ai remarqué que pas mal d'admin avaient des soucis pour installer et configurer Tomcat.
Ci-dessous le tutoriel d'installation et de configuration de Tomcat 7 (adapté pour Debian/Ubuntu et RedHat/CentOS):
Je privilégie l'installation manuelle de Tomcat plutôt que de passer par le gestionnaire de paquet. Vous pourrez ainsi personnaliser votre installation et choisir une version récente de Tomcat.
1) Installation
Prérequis: java
yum install java-1.6.0 pour (RedHat/Centos) ou apt-get install openjdk* (Sous debian/Ubuntu)
- Tout d'abord récupérez le tar.gz sur le site de tomcat via http://tomcat.apache.org/download-70.cgi (section core téléchargez la version tar.gz)
Au moment de la rédaction de cette article Tomcat 8 est sorti en version RC1. Je vous déconseille fortement d'utiliser une tel version car celle-ci est encore trop instable.
- Créez proprement votre répertoire d'installation de tomcat, dans mon cas cela sera /apps/tomcat
mkdir /apps/tomcat
- Décompressez l'archive dans le répertoire de destination:
mv <votre archive>.tar.gz <repertoire d'installation> && tar -xvf <repertoire d'installation>/<votre archive>.tar.gz
exemple: mv apache-tomcat-7.0.42.tar.gz && tar -xvf /apps/tomcat/apache-tomcat-7.0.42.tar.gz
- Faites un ls dans le repertoire d'installation et vous pourrez voir ceci:
Quelques petites explications:
- Le répertoire bin contient tous les scripts de tomcat notamment ceux de démarrage et d’arrêt.
- Le répertoire conf contient tous les fichiers de configuration de tomcat
- Le répertoire webapps contient toutes les webapps (vos servlets java)
2) Configuration
- Allez dans le répertoire conf:
cd conf
- Si vous désirez changer le port d'écoute éditez le fichier server.xml et éditez cette ligne en remplaçant le port par défaut 8080 par celui que vous désirez:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
<!-- A "Connector" using the shared thread pool-->
- Editons ensuite le fichier tomcat-user afin de définir le mot de passe de l'interface d'administration de tomcat:
Le dernier "paragraphe" du fichier de configuration est commenté. Pour le dé-commentez enlevez :
<!-- et -->
Ajoutez ensuite les balises rolename:
<role rolename="manager"/>
<role rolename="manager-gui"/>
Créons ensuite le user qui aura les droits d'admin de votre serveur tomcat:
<user username="tomcat-admin" password="tomcat" roles="manager,manager-gui"/>
Sans oublier de modifier le password 😉
-Il ne reste plus qu' à redémarrer Tomcat :
rendez vous dans le répertoire bin (de tomcat) et exécutez ces scripts:
./shutdown.sh (pour arréter tomcat)
./startup.sh (pour démarrer tomcat)
- Connectez vous à l'interface d'administration de votre serveur tomcat via votre navigateur depuis cette URL: <ip ou DNS de votre machine>:8080
- Cliquez sur Manager app et entrez les identifiants que vous avez paramétrés précédemment dans votre fichier tomcat-users.xml
Ici vous trouverez la liste des Webapp déployées.
-Il existe 2 méthodes pour déployer une Webapp (fichier .war):
La première (la plus simple) consiste à cliquer sur le bouton déployer et de selectionnez votre fichier war.
Tomcat se chargera de la déployer pour vous. Une fois le déploiement terminé vous pourrez voir apparaître une nouvelle ligne avec le nom de votre Webapp.
La deuxième plus longue mais très utile si vous voulez scripter des déploiements automatiques consiste à arrêter votre serveur tomcat, déposez votre fichier war dans le répertoire webapps et redémarrer le service tomcat.
Votre Webapp sera automatiquement déployée.
3) Tunning :
Il est possible, si vous déployez des applications lourdes ou en grand nombre, que vous ayez des problèmes mémoires.
Dans ce cas vous pourrez avoir des messages d'erreur ou de grosses lenteurs lors de l’exécution de vos webapps.
Pour cela éditez le fichier startup.sh et ajoutez à la ligne export JAVA_OPTS= -server -Xms<mémoire minimal alloué> -Xmx <mémoire maximum alloué>
Exemple:
export JAVA_OPTS="-server -Xms2048m -Xmx2048m"
Redémarrez votre serveur Tomcat afin que les modifications soient prises en comptes.
Si vous rencontrez d'autres problèmes mémoire vous pouvez vous rendre sur cette page :
Cette article traite d'un problème Tomcat et pourra peut-être vous aider.
4) Script de démarrage
Afin de vous faciliter la vie, je vous livre ci-dessous le script de démarrage de tomcat à déposer dans le répertoire init.d:
#!/bin/sh
CATALINA_HOME=<repertoire tomcat>; export CATALINA_HOME
JAVA_HOME=<repertoire java>; export JAVA_HOME
TOMCAT_OWNER=<votre user tomcat>; export TOMCAT_OWNER
start() {
echo -n "Starting Tomcat: "
su $TOMCAT_OWNER -c $CATALINA_HOME/bin/startup.sh
sleep 2
}
stop() {
echo -n "Stopping Tomcat: "
su $TOMCAT_OWNER -c $CATALINA_HOME/bin/shutdown.sh
}
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
*)
echo $"Usage: tomcat {start|stop|restart}"
exit
esac
5) Best Pratice
- Si votre application doit-être accessible depuis le monde extérieur je vous conseille de procéder à un couplage (Apache/Tomcat) avec les règles firewall qui vont bien
- Utilisez toujours un serveur apache en front en mode revese proxy. Vos clients ne doivent pas se connecter en direct sur le Tomcat. Un tuto est disponible: http://journaldunadminlinux.fr/tutoriel-mettre-en-place-un-reverse-proxy-sur-apache-via-mod_proxy/
Bonjour,
Savez-vous comment procéder pour la mise en place de virtualhost ?
Si vous entendez virtualHost comme les virtualHost d’apache je vous suggère de procéder à un couplage Apache/Tomcat puis de créer votre VirtualHost Apache.
Je procède moi meme de cette manière
Merci beaucoup de votre pédagogie
Bonjour, si on a déjà une version antérieur de Tomcat et que l’on veut migrer vers une version plus récente, quelle serait la procédure, tout en sauvegardant l’appli web du répertoire /webapps ?
Merci
Juste installer la nouvelle version de tomcat dans un répertoire différent et migrer la webapp.
Comment fait-on pour migrer la webapp? Est ce qu’il suffit de copier les fichiers?
Merci