A travers ce bref tutoriel, vous pourrez suivre les étapes précises de l’installation du serveur d’application Tomcat (version 7, 8 ou 9) sur une machine Linux (tomcat 9 sur une machine Centos dans notre cas).
A votre terminal !
On commencera par créer un utilisateur tomcat appartenant au groupe tomcat et ayant le répertoire /home/tomcat comme répertoire d’accueil et mettant son shell à la valeur /bin/false pour prévenir une connection SSH avec ce compte :
[root@localhost ~]# groupadd tomcat [root@localhost ~]# useradd -d /home/tomcat -g tomcat -s /bin/false tomcat
Nos utilisateur/groupe sont dorénavant prêts.
Téléchargement de Tomcat 9
En se connectant sur le site official de tomcat https://tomcat.apache.org/ , trouvez la version que vous souhaitez installer (version 9 dans notre cas)
On va télécharger la version package sous le format “tar.gz”.
A l’aide de la commande wget, On va télécharger le package tomcat directement sur le repertoire /tmp
[root@localhost ~]# cd /tmp [root@localhost tmp]# wget http://www-us.apache.org/dist/tomcat/tomcat-9/v9.0.1/bin/apache-tomcat-9.0.1.tar.gz [root@localhost tmp]# wget http://www-us.apache.org/dist/tomcat/tomcat-9/v9.0.1/bin/apache-tomcat-9.0.1.tar.gz --2017-10-17 21:00:23-- http://www-us.apache.org/dist/tomcat/tomcat-9/v9.0.1/bin/apache-tomcat-9.0.1.tar.gz Résolution de www-us.apache.org (www-us.apache.org)... 140.211.11.105 Connexion vers www-us.apache.org (www-us.apache.org)|140.211.11.105|:80...connecté. requête HTTP transmise, en attente de la réponse...200 OK Longueur: 9397803 (9,0M) [application/x-gzip] Sauvegarde en : «apache-tomcat-9.0.1.tar.gz» 100%[======================================>] 9 397 803 2,76MB/s ds 4,0s 2017-10-17 21:00:28 (2,27 MB/s) - «apache-tomcat-9.0.1.tar.gz» sauvegardé [9397803/9397803] [root@localhost tmp]# ls |grep tomcat apache-tomcat-9.0.1.tar.gz
Le package tomcat sera installé dans l’arborescence /produit/tomcat directory.
[root@localhost tmp]# mkdir -p /produits/tomcat [root@localhost tmp]# tar xvf apache-tomcat-9.0.1.tar.gz -C /produits/tomcat --strip-components=1 apache-tomcat-9.0.1/conf/ apache-tomcat-9.0.1/conf/catalina.policy apache-tomcat-9.0.1/conf/catalina.properties ... apache-tomcat-9.0.1/bin/startup.sh apache-tomcat-9.0.1/bin/tool-wrapper.sh apache-tomcat-9.0.1/bin/version.sh [root@localhost tmp]#
Gérer les droits d’accès
Une fois l’installation terminée, on va mettra à jour les droits d’accès du repertoire /produits/tomcat/ pour notre utilisateur tomcat
[root@localhost ~]# cd /produits/tomcat/ [root@localhost tomcat]# ll total 92 drwxr-x---. 2 root root 4096 17 oct. 21:04 bin drwx------. 2 root root 238 27 sept. 19:32 conf drwxr-x---. 2 root root 4096 17 oct. 21:04 lib -rw-r-----. 1 root root 57092 27 sept. 19:32 LICENSE drwxr-x---. 2 root root 6 27 sept. 19:32 logs -rw-r-----. 1 root root 1804 27 sept. 19:32 NOTICE -rw-r-----. 1 root root 6705 27 sept. 19:32 RELEASE-NOTES -rw-r-----. 1 root root 15946 27 sept. 19:32 RUNNING.txt drwxr-x---. 2 root root 30 17 oct. 21:04 temp drwxr-x---. 7 root root 81 27 sept. 19:32 webapps drwxr-x---. 2 root root 6 27 sept. 19:32 work
L’utilisateur tomcat devera avoir les autorisations suivantes :
- Accès en écriture des répertoires conf
- Accès en lecture au contenu du répertoire conf
- Propriétaire des répertoires work, temp et logs
[root@localhost tomcat]# chgrp -R tomcat conf [root@localhost tomcat]# sudo chmod g+rwx conf [root@localhost tomcat]# sudo chmod g+r conf/* [root@localhost tomcat]# sudo chown -R tomcat work/ temp/ logs/ [root@localhost tomcat]# ll total 92 drwxr-x---. 2 root root 4096 17 oct. 21:04 bin drwxrwx---. 2 root tomcat 238 27 sept. 19:32 conf drwxr-x---. 2 root root 4096 17 oct. 21:04 lib -rw-r-----. 1 root root 57092 27 sept. 19:32 LICENSE drwxr-x---. 2 tomcat root 6 27 sept. 19:32 logs -rw-r-----. 1 root root 1804 27 sept. 19:32 NOTICE -rw-r-----. 1 root root 6705 27 sept. 19:32 RELEASE-NOTES -rw-r-----. 1 root root 15946 27 sept. 19:32 RUNNING.txt drwxr-x---. 2 tomcat root 30 17 oct. 21:04 temp drwxr-x---. 7 root root 81 27 sept. 19:32 webapps drwxr-x---. 2 tomcat root 6 27 sept. 19:32 work [root@localhost tomcat]#
Il ne reste plus que démarrer notre serveur tomcat.
Préparation du script de démarrage
Tout d’abord il faudra vérifier l’emplacement de java installé sur la machine en utilisant la commande update-alternatives –config java comme suit :
[root@localhost opt]# /usr/sbin/alternatives --config java Il existe 2 programmes qui fournissent « java ». Sélection Commande ----------------------------------------------- * 1 java-1.7.0-openjdk.x86_64 (/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.151-2.6.11.1.el7_4.x86_64/jre/bin/java) + 2 /usr/jdk1.8.0_131/bin/java Entrez pour garder la sélection courante [+] ou saisissez le numéro de type de sélection :^C [root@localhost opt]#
On voit bien que la version par défaut est : /usr/jdk1.8.0_131/bin/java.
Pour créer un lanceur automatique pour tomcat, il faudra éditer le fichier suivant :
[root@localhost ~]# vi /etc/init.d/tomcat.conf #!/bin/bash TOMCAT_HOME="/produits/tomcat" SHUTDOWN_WAIT=45 export JAVA_HOME=/usr/jdk1.8.0_131/ export CATALINA_HOME=$TOMCAT_HOME export JAVA_OPTS="-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom" export CATALINA_OPTS="-Xms512M -Xmx1024M -server -XX:+UseParallelGC" setuid tomcat setgid tomcat tomcat_pid() { echo `ps aux | grep org.apache.catalina.startup.Bootstrap | grep -v grep | awk '{ print $2 }'` } start() { pid=$(tomcat_pid) if [ -n "$pid" ] then echo "Tomcat est déjà démarré en utilisant le pid (pid: $pid)" else # Start tomcat echo "Démarrage de tomcat du HOME $TOMCAT_HOME" exec $TOMCAT_HOME/bin/startup.sh fi return 0 } stop() { pid=$(tomcat_pid) if [ -n "$pid" ] then echo "Arrêt de Tomcat" exec $TOMCAT_HOME/bin/shutdown.sh let kwait=$SHUTDOWN_WAIT count=0 count_by=5 until [ `ps -p $pid | grep -c $pid` = '0' ] || [ $count -gt $kwait ] do echo "Arrêt du processus." sleep $count_by let count=$count+$count_by; done if [ $count -gt $kwait ]; then echo "Arrêt forcé du processus" kill -9 $pid fi else echo "Tomcat n est pas démarré" fi return 0 } case $1 in start) start ;; stop) stop ;; restart) stop start ;; status) pid=$(tomcat_pid) if [ -n "$pid" ] then echo "Tomcat a été démarré avec le pid: $pid" else echo "Tomcat n est pas démarré" fi ;; esac exit 0
On va modifié les droits de ce script à 755 et pointer un lien dans /etc/rec1 et /etc/rc2 pour que le service soit démarré avec le système.
[root@localhost ~]# chmod 755 /etc/init.d/tomcat [root@localhost ~]# sudo ln -s /etc/init.d/tomcat /etc/rc1.d/tomcat [root@localhost ~]# sudo ln -s /etc/init.d/tomcat /etc/rc2.d/tomcat
Par défaut Tomcat utilise le port 8080 et ainsi vous pouvez utiliser l’url suivante pour accéder à son interface d’administration :
http://server_IP_address:8080
Configuration de l’utilisateur admin
Pour pouvoir accéder à l’interface d’administration tomcat Il est obligatoire d’ajouter un compte admin en éditant le fichier tomcat-users.xml
<!-- <role rolename="tomcat"/> <role rolename="role1"/> <user username="tomcat" password="<must-be-changed>" roles="tomcat"/> <user username="both" password="<must-be-changed>" roles="tomcat,role1"/> <user username="role1" password="<must-be-changed>" roles="role1"/> -->
Par
<role rolename="manager-gui"/> <user username="admin" password="password" roles="manager-gui"/>
Il ne reste plus qu’enregistrer le fichier et redémarrer le serveur tomcat.
service tomcat restart