Table des matières

, ,

Apache Tomcat

Apache Tomcat est un conteneur de servlet Java EE. Issu du projet Jakarta, Tomcat est désormais un projet principal de la fondation Apache. Tomcat implémente les spécifications des servlets et des JSP de Sun Microsystems. Il inclut des outils pour la configuration et la gestion, mais peut également être configuré en éditant des fichiers de configuration XML. Comme Tomcat inclut un serveur HTTP interne, il est aussi considéré comme un serveur HTTP.

Cette page nécessite un ménage. Il faudrait nettoyer toute mention des versions d'Ubuntu désuètes, spécifier que pour 8.04 (Hardy) c'est tomcat5.5, et pour les versions suivantes c'est tomcat7 ; vérifier les pré-requis en fonction des versions.

Installation tasksel

Installation

Installation d'un serveur tomcat7 pour Ubuntu 14.04 LTS : tomcat7

Pour Ubuntu 22.04, c'est probablement tomcat9.

It works ! doit apparaître sur la page

http://localhost:8080/

Configuration

Changer éventuellement la version de java utilisée en modifiant le fichier /etc/default/tomcat7. Changer ou ajouter la variable JAVA_HOME en fonction de votre configuration :

JAVA_HOME=/usr/lib/jvm/java-6-sun
JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk-amd64
JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-amd64
JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64

Pour ensuite pouvoir se connecter aux consoles d'administration, il faut ajouter un utilisateur. Ajouter fichier /etc/tomcat7/tomcat-users.xml entre les balises <tomcat-users> et </tomcat-users> (voir les exemples en commentaire dans le fichier):

<role rolename="manager-gui"/>
<role rolename="admin-gui"/>
<user username="<utilisateur>" password="<mot_de_passe>" roles="admin-gui,manager-gui"/>
Remplacer <utilisateur> et <mot_de_passe> respectivement par le nom d'utilisateur et le mot de passe que vous souhaitez utiliser

Enfin, changer les droits sur le dossier de tomcat7 :

sudo chgrp -R tomcat7 /etc/tomcat7
sudo chmod -R g+w /etc/tomcat7

Une fois la configuration terminée, relancer le service tomcat7 :

sudo service tomcat7 restart

Utilisation

Vous pouvez désormais accéder aux panneaux de configurations :

http://localhost:8080/manager/html

http://localhost:8080/host-manager/html

Source : Apache Tomcat sur la documentation officielle de Ubuntul

Installation par les paquets

Pré-requis

Installation

Pour les nouvelles versions d'ubuntu utiliser tomcat7 tomcat7, tomcat7-admin et tomcat7-examples.
À l'installation du paquet, Tomcat est automatiquement démarré et, normalement, fonctionnel. Vous pouvez vérifier en visitant http://localhost:8080/.

Il se peut que Tomcat soit accessible sur un autre port. Si l'adresse ci-dessus ne fonctionne pas, essayez http://localhost:8180/.

Utilisation et configuration

Arrêt et démarrage

Tomcat peut être démarré et arrêté comme un « dæmon » standard via le script « /etc/init.d/tomcat5 » avec les options « start », « stop » et « restart » pour la démarrer, l'arrêter ou le redémarrer. L'option « status » permet de savoir s'il est déjà lancé.

À l'installation, le système est configuré pour démarrer Tomcat au démarrage de l'ordinateur. Si vous souhaitez changer ce comportement, vous pouvez le faire via la commande « update-rc.d » :

sudo update-rc.d tomcat7 remove

Si Tomcat n'est pas démarré avec la machine et que vous souhaitez que ce soit le cas, utilisez :

sudo update-rc.d tomcat7 defaults

Interfaces d'administration

Le paquet « tomcat6-admin » installe deux interfaces Web d'administration. Elle sont disponibles aux adresses http://localhost:8080/admin/ et http://localhost:8080/manager/html mais nécessitent la configuration manuelle d'un utilisateur administrateur.

Cette configuration se fait en ajoutant un (ou plusieurs) utilisateur(s) et deux rôles dans le fichier « /var/lib/tomcat5.5/conf/tomcat-users.xml » ou « /var/lib/tomcat6/conf/tomcat-users.xml », sur les nouvelles versions il est dans « /etc/tomcat8/tomcat-users.xml » :

<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
  <!-- Utilisateurs administrateur de tomcat -->
  <role rolename="manager"/>
  <role rolename="admin"/>
  <user username="NOM_D_UTILISATEUR" password="MOT_DE_PASSE" roles="admin,manager"/>
  <!-- On peut ajouter d'autre rôles, utilisateurs ou groupes pour les
       applications web déployées sur le serveur -->
</tomcat-users>

Puis relancer Tomcat pour tester ces comptes :

 /etc/init.d/tomcat7 restart

Notes concernant la configuration

Attention

Le paramètre « TOMCAT_SECURITY=yes » empêche certaines applications de fonctionner (scripts d'installation de CMS, par exemple). Il faut se rendre dans « /etc/init.d/tomcat5.5 » et passer le paramètre à « no » (« TOMCAT_SECURITY=no »).

Notes

Tomcat et Eclipse

Pour utiliser Tomcat avec Eclipse (dans le cas de projet commun Windows et Linux), vous devez rajouter une variable dans les perspectives d'Eclipse.

  1. allez dans le menu Windows → Preferences.
  2. élément Java → Build path → Classpath Variables de l'arbre de gauche.
  3. cliquez sur New.
  4. comme NAME, introduisez TOMCAT_HOME.
  5. comme Path, introduisez /usr/local/tomcat. (ou /usr/share/tomcat6 le cas échéant)
  6. cliquez sur OK.

Impossible d'ajouter un serveur tomcat sous eclipse

Si vous n'arrivez pas à ajouter un serveur tomcat sous éclipse avec Windows → preferences → server → runtime environments → add ou que celui-ci n’apparaît pas dans la vue serveur suivez les instructions suivantes:

Pour tomcat7

1. Pour résoudre l'erreur 'Cannot create a server using the selected type'

cd ~/workspace/.metadata/.plugins/org.eclipse.core.runtime/.settings/
rm org.eclipse.jst.server.tomcat.core.prefs
rm org.eclipse.wst.server.core.prefs

2. Pour résoudre l'erreur 'Could not load the Tomcat server configuration at /usr/share/tomcat7/conf. The configuration may be corrupt or incomplete /usr/share/tomcat7/conf/catalina.policy (No such file or directory)'

cd /usr/share/tomcat7
sudo ln -s /var/lib/tomcat7/conf conf
sudo ln -s /etc/tomcat7/policy.d/03catalina.policy conf/catalina.policy
sudo ln -s /var/log/tomcat7 log
sudo chmod -R 777 /usr/share/tomcat7/conf

source

Accéder à Tomcat6 par le port 80

Pour pouvoir se connecter à Tomcat à partir du port 80 :

/sbin/iptables -t nat -A PREROUTING -j REDIRECT -p tcp --destination-port 80 --to-ports 8080

Tomcat couplé avec Apache 2 et SSL

Comment coupler Apache2 avec un serveur d'application Tomcat (avec support SSL) ?

Liens & références


Contributeurs : ostaquet, strzel_a jahbromo, Brzhk, clement.analogue, ph3nix_