« Apache et Tomcat » : différence entre les versions

De Lea Linux
Aller à la navigation Aller à la recherche
m (Fiches:Comment faire fonctionner ensemble Apache et Tomcat ? déplacé vers Apache et Tomcat)
(balises code)
 
(5 versions intermédiaires par 4 utilisateurs non affichées)
Ligne 1 : Ligne 1 :
[[Catégorie:Services Web]]
= Introduction =
= Introduction =
Apache est un serveur Web : il reçoit des requêtes HTTP émises depuis un navigateur, les analyse et envoie des pages Web en réponse au navigateur.
Apache est un serveur Web : il reçoit des requêtes HTTP émises depuis un navigateur, les analyse et envoie des pages Web en réponse au navigateur.
Ligne 11 : Ligne 13 :


== Installation des paquets ==
== Installation des paquets ==
Il faut commencer par installer le paquet apache2, ainsi que d'autres paquets apache et php qui peuvent s'avérer utiles.<br>
 
Par exemple, avec Debian :<br>
Il faut commencer par installer le paquet apache2, ainsi que d'autres paquets apache et php qui peuvent s'avérer utiles.
<code multi>$ aptitude install apache2 apache2-doc apache2-mpm-prefork apache2-utils apache2.2-common libapache2-mod-jk libapache2-mod-perl2 libapache2-mod-php5 libapache2-reload-perl php5 php5-cgi php5-cli php5-common php5-curl php5-gd php5-imap php5-ldap php5-mcrypt php5-mhash php5-mysql php5-odbc</code>
 
Installez-les [[Software-soft_gere-installation_logiciel|suivant la procédure habituelle]] propre à votre distribution.
 
Par exemple, avec Debian :
<div class="code">$ aptitude install apache2 apache2-doc apache2-mpm-prefork apache2-utils apache2.2-common libapache2-mod-jk libapache2-mod-perl2 libapache2-mod-php5 libapache2-reload-perl php5 php5-cgi php5-cli php5-common php5-curl php5-gd php5-imap php5-ldap php5-mcrypt php5-mhash php5-mysql php5-odbc</div>


== Fichiers de configuration d'Apache ==
== Fichiers de configuration d'Apache ==
Ligne 22 : Ligne 28 :
== Test de l'installation d'Apache ==
== Test de l'installation d'Apache ==
*Pour lancer le serveur Apache :
*Pour lancer le serveur Apache :
<code multi>$ /etc/init.d/apache2 start</code>
<div class="code">$ /etc/init.d/apache2 start</div>
*Pour tester Apache :
*Pour tester Apache :
Depuis un navigateur, aller à l'adresse [http://localhost/ http://localhost/].
Depuis un navigateur, aller à l'adresse [http://localhost/ http://localhost/].
Ligne 28 : Ligne 34 :
*Si cela ne fonctionne pas:
*Si cela ne fonctionne pas:
**Vérifier si le port par défaut est bien le port 80 : le fichier /etc/apache2/ports.conf doit contenir :
**Vérifier si le port par défaut est bien le port 80 : le fichier /etc/apache2/ports.conf doit contenir :
<code multi>Listen 80</code>
<div class="code">Listen 80</div>
**Regarder les fichiers de log dans /var/log/apache2.
**Regarder les fichiers de log dans /var/log/apache2.
**après modification, relancer Apache :
**après modification, relancer Apache :
<code multi>$ /etc/init.d/apache2 restart</code>
<div class="code">$ /etc/init.d/apache2 restart</div>
*Pour arrêter Apache :
*Pour arrêter Apache :
<code multi>$ /etc/init.d/apache2 stop</code>
<div class="code">$ /etc/init.d/apache2 stop</div>
*Pour afficher des pages HTML qui ne nécessitent pas de gestion de jsp (et qui peuvent être traitées directement par Apache, sans passer par Tomcat) : copier les fichiers HTML correspondants dans le répertoire /var/www (qui correspond par défaut à la racine du site http://localhost/).
*Pour afficher des pages HTML qui ne nécessitent pas de gestion de jsp (et qui peuvent être traitées directement par Apache, sans passer par Tomcat) : copier les fichiers HTML correspondants dans le répertoire /var/www (qui correspond par défaut à la racine du site http://localhost/).


== Personnalisations d'Apache ==
== Personnalisations d'Apache ==
Il faut ensuite activer les modules ssl, rewrite, suexec et include d'Apache : il s'agit de créer depuis le répertoire /etc/apache2/mods-enabled des liens symboliques vers les modules du répertoire /etc/apache2/mods-available dont on a besoin :
Il faut ensuite activer les modules ssl, rewrite, suexec et include d'Apache : il s'agit de créer depuis le répertoire /etc/apache2/mods-enabled des liens symboliques vers les modules du répertoire /etc/apache2/mods-available dont on a besoin :
<code multi>$ a2enmod ssl
<div class="code">
$ a2enmod rewrite
$ a2enmod ssl
$ a2enmod suexec
$ a2enmod rewrite
$ a2enmod include</code>
$ a2enmod suexec
$ a2enmod include
</div>
Ensuite, il faut relancer Apache :
Ensuite, il faut relancer Apache :
<code multi>$ /etc/init.d/apache2 restart</code>
<div class="code">$ /etc/init.d/apache2 restart</div>


= Installation de JDK =
= Installation de JDK =
Tomcat a besoin des bibliothèques Java disponibles dans le paquet contenant le JDK (Java Development Kit).
Tomcat a besoin des bibliothèques Java disponibles dans le paquet contenant le JDK (Java Development Kit).


Pour l'installer (par exemple depuis Debian)
Installez-les [[Software-soft_gere-installation_logiciel|suivant la procédure habituelle]] propre à votre distribution.
<code multi>$ aptitude install sun-java6-jdk</code>
 
Pour l'installer (par exemple depuis Debian) :
<div class="code">$ aptitude install sun-java6-jdk</div>


Pour ne pas avoir besoin de modifier tous les fichiers de configuration lorsque vous changerez de version de JDK, on va utiliser un lien symbolique /usr/lib/jdk qui pointera sur la version de JDK de votre choix :
Pour ne pas avoir besoin de modifier tous les fichiers de configuration lorsque vous changerez de version de JDK, on va utiliser un lien symbolique /usr/lib/jdk qui pointera sur la version de JDK de votre choix :
<code multi>$ ln -s /usr/lib/jvm/java-6-sun-1.6.0.06/ /usr/lib/jdk</code>
<div class="code">$ ln -s /usr/lib/jvm/java-6-sun-1.6.0.06/ /usr/lib/jdk</div>


= Installation de Tomcat =
= Installation de Tomcat =
== Installation des paquets ==
== Installation des paquets ==
Il faut commencer par installer les paquets tomcat qui nous seront utiles.<br>
Il faut commencer par installer les paquets tomcat qui nous seront utiles.<br>
Installez-les [[Software-soft_gere-installation_logiciel|suivant la procédure habituelle]] propre à votre distribution.
Par exemple, avec Debian :<br>
Par exemple, avec Debian :<br>
<code multi>$ aptitude install tomcat5.5 tomcat5.5-admin tomcat5.5-webapps libtomcat5.5-java</code>
<div class="code">$ aptitude install tomcat5.5 tomcat5.5-admin tomcat5.5-webapps libtomcat5.5-java</div>


== Lien symbolique qui pointe vers la bonne version de Tomcat ==
== Lien symbolique qui pointe vers la bonne version de Tomcat ==
Pour ne pas avoir besoin de modifier tous les fichiers de configuration lorsque vous changerez de version de Tomcat, on va utiliser un lien symbolique /usr/lib/apache-tomcat qui pointera sur la version de Tomcat de votre choix :
Pour ne pas avoir besoin de modifier tous les fichiers de configuration lorsque vous changerez de version de Tomcat, on va utiliser un lien symbolique /usr/lib/apache-tomcat qui pointera sur la version de Tomcat de votre choix :
<code multi>$ ln -s /usr/share/tomcat5.5/ /usr/lib/apache-tomcat</code>
<div class="code">$ ln -s /usr/share/tomcat5.5/ /usr/lib/apache-tomcat</div>
Remarque : ce répertoire est référencé en tant que CATALINA_HOME dans la document Tomcat.
Remarque : ce répertoire est référencé en tant que CATALINA_HOME dans la documentation Tomcat.


== Fichiers de configuration de Tomcat ==
== Fichiers de configuration de Tomcat ==
Ligne 70 : Ligne 83 :
*web.xml : permet de définir la configuration des servlets de vos applications Java.
*web.xml : permet de définir la configuration des servlets de vos applications Java.
*tomcat-users.xml : permet de définir les utiliseurs et leurs droits. Il faut définir au moins un rôle "admin" et un utilisateur "admin" pour pouvoir administrer Tomcat :
*tomcat-users.xml : permet de définir les utiliseurs et leurs droits. Il faut définir au moins un rôle "admin" et un utilisateur "admin" pour pouvoir administrer Tomcat :
<code multi><?xml version='1.0' encoding='utf-8'?>
<div class="code">
<tomcat-users>
<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
   <role rolename="manager"/>
   <role rolename="manager"/>
   <role rolename="tomcat"/>
   <role rolename="tomcat"/>
Ligne 77 : Ligne 91 :
   <user username="tomcat" password="tomcat" roles="tomcat"/>
   <user username="tomcat" password="tomcat" roles="tomcat"/>
   <user username="admin" password="admin" roles="tomcat,manager,admin"/>
   <user username="admin" password="admin" roles="tomcat,manager,admin"/>
</tomcat-users></code>
</tomcat-users>
</div>


== Test de l'installation de Tomcat ==
== Test de l'installation de Tomcat ==
*Pour lancer le serveur Tomcat :
*Pour lancer le serveur Tomcat :
<code multi>$ /usr/lib/apache-tomcat/bin/startup.sh</code>
<div class="code">$ /usr/lib/apache-tomcat/bin/startup.sh</div>
*Pour tester Tomcat :
*Pour tester Tomcat :
**Regarder dans le fichier de configuration /etc/tomcatxxx/server.xml le numéro de port HTTP utilisé (en général, 8080 ou 8180).
**Regarder dans le fichier de configuration /etc/tomcatxxx/server.xml le numéro de port HTTP utilisé (en général, 8080 ou 8180).
Ligne 87 : Ligne 102 :
*Si cela ne fonctionne pas, regarder les fichiers de log dans /var/log/tomcatxxx.
*Si cela ne fonctionne pas, regarder les fichiers de log dans /var/log/tomcatxxx.
**après modification, relancer tomcat :
**après modification, relancer tomcat :
<code multi>$ /usr/lib/apache-tomcat/bin/shutdown.sh
<div class="code">
$ /usr/lib/apache-tomcat/bin/startup.sh</code>
$ /usr/lib/apache-tomcat/bin/shutdown.sh
$ /usr/lib/apache-tomcat/bin/startup.sh
</div>
*Pour arrêter Tomcat :
*Pour arrêter Tomcat :
<code multi>$ /usr/lib/apache-tomcat/bin/shutdown.sh</code>
<div class="code">$ /usr/lib/apache-tomcat/bin/shutdown.sh</div>


= Installation de mod_jk =
= Installation de mod_jk =
== Installation des paquets ==
== Installation des paquets ==
Installez-les [[Software-soft_gere-installation_logiciel|suivant la procédure habituelle]] propre à votre distribution.
Par exemple, sous Debian :
Par exemple, sous Debian :
<code multi>$ aptitude install libapache2-mod-jk</code>
<div class="code">$ aptitude install libapache2-mod-jk</div>
Cette commande crée en particulier un fichier /usr/lib/apache2/modules/mod_jk.so correspondant au module mod_jk.
Cette commande crée en particulier un fichier /usr/lib/apache2/modules/mod_jk.so correspondant au module mod_jk.


Ligne 101 : Ligne 121 :
Tout d'abord, il faut indiquer à Apache comment utiliser mod_jk :
Tout d'abord, il faut indiquer à Apache comment utiliser mod_jk :
*Créer un fichier /etc/apache2/workers.properties (s'il n'existe pas), et indiquer les informations suivantes :
*Créer un fichier /etc/apache2/workers.properties (s'il n'existe pas), et indiquer les informations suivantes :
<code multi>workers.tomcat_home=/usr/lib/apache-tomcat
<div class="code">
workers.java_home=/usr/lib/jdk
workers.tomcat_home=/usr/lib/apache-tomcat
ps=/
workers.java_home=/usr/lib/jdk
worker.list=worker1
ps=/
worker.worker1.port=8009
worker.list=worker1
worker.worker1.host=localhost
worker.worker1.port=8009
worker.worker1.type=ajp13
worker.worker1.host=localhost
worker.worker1.lbfactor=1</code>
worker.worker1.type=ajp13
worker.worker1.lbfactor=1
</div>
worker1 (on peut modifier ce nom) correspond aux caractéristiques du module mod_jk qui sera utilisé pour communiquer avec Tomcat : port 8009, machine localhost, protocole ajp13...
worker1 (on peut modifier ce nom) correspond aux caractéristiques du module mod_jk qui sera utilisé pour communiquer avec Tomcat : port 8009, machine localhost, protocole ajp13...
*Indiquer à Apache le chemin du fichier workers.properties (si ce n'est pas fait) ainsi que d'autres informations utiles : pour cela, il faut mettre à jour le fichier /etc/apache2/mods-available/jk.load (ou, à défaut, /etc/apache2/apache2.conf), en indiquant les informations suivantes :
*Indiquer à Apache le chemin du fichier workers.properties (si ce n'est pas fait) ainsi que d'autres informations utiles : pour cela, il faut mettre à jour le fichier /etc/apache2/mods-available/jk.load (ou, à défaut, /etc/apache2/apache2.conf), en indiquant les informations suivantes :
<code multi># Charger le module mod_jk
<div class="code">
LoadModule jk_module /usr/lib/apache2/modules/mod_jk.so
# Charger le module mod_jk
# Chemin du fichier workers.properties
LoadModule jk_module /usr/lib/apache2/modules/mod_jk.so
JkWorkersFile /etc/apache2/workers.properties
# Chemin du fichier workers.properties
# Fichier contenant la mémoire partagée
JkWorkersFile /etc/apache2/workers.properties
JkShmFile /var/log/apache2/mod_jk.shm
# Fichier contenant la mémoire partagée
# Fichier de log de mod_jk
JkShmFile /var/log/apache2/mod_jk.shm
JkLogFile /var/log/apache2/mod_jk.log
# Fichier de log de mod_jk
# Niveau d'information : [info/error/debug]
JkLogFile /var/log/apache2/mod_jk.log
JkLogLevel    debug
# Niveau d'information : [info/error/debug]
# Format du nom des fichiers de log
JkLogLevel    debug
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
# Format du nom des fichiers de log
# JkOptions indique d'envoyer la taille de la clé SSL
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
# JkOptions indique d'envoyer la taille de la clé SSL
# Format du log de la requête
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
JkRequestLogFormat "%w %V %T"
# Format du log de la requête
# Lorsque le chemin des pages Web demandées correspondent aux schémas suivants,
JkRequestLogFormat "%w %V %T"
# Apache doit les transférer à Tomcat via worker1 (à adapter en fonction des besoins)
# Lorsque le chemin des pages Web demandées correspondent aux schémas suivants,
# le répertoire jsp-examples de Tomcat contient des examples d'utilisation de servlets,
# Apache doit les transférer à Tomcat via worker1 (à adapter en fonction des besoins)
# et peut être utile pour tester la configuration
# le répertoire jsp-examples de Tomcat contient des examples d'utilisation de servlets,
JkMount /jsp-examples worker1
# et peut être utile pour tester la configuration
JkMount /jsp-examples/*
JkMount /jsp-examples worker1
JkMount /tests/*.jsp</code>
JkMount /jsp-examples/*
JkMount /tests/*.jsp
</div>
Il faut aussi faire figurer la référence à worker1 lors de la définition des hôtes virtuels (exemple : /etc/apache2/sites-enabled/000-default) :
Il faut aussi faire figurer la référence à worker1 lors de la définition des hôtes virtuels (exemple : /etc/apache2/sites-enabled/000-default) :
<code multi><VirtualHost *>
<div class="code">
...
<VirtualHost *>
JkMount /jsp-examples/* worker1
...
</VirtualHost></code>
JkMount /jsp-examples/* worker1
</VirtualHost>
</div>


== Test de mod_jk ==
== Test de mod_jk ==
*Avant de tester mod_jk, il faut relancer Apache et Tomcat.
*Avant de tester mod_jk, il faut relancer Apache et Tomcat.
<code multi>$ /usr/lib/apache-tomcat/bin/shutdown.sh
<div class="code">
$ /usr/lib/apache-tomcat/bin/startup.sh
$ /usr/lib/apache-tomcat/bin/shutdown.sh
$ /etc/init.d/apache2 restart</code>
$ /usr/lib/apache-tomcat/bin/startup.sh
$ /etc/init.d/apache2 restart
</div>
Remarque : il faut toujours lancer Tomcat en premier : lors du lancement d'Apache, le fichier de configuration de mod_jk est lu, et Apache sait alors qu'à tout moment il peut communiquer avec Tomcat via le port 8009. Il est donc préférable de lancer préalablement Tomcat, qui sera en attente de requêtes sur le port 8009.
Remarque : il faut toujours lancer Tomcat en premier : lors du lancement d'Apache, le fichier de configuration de mod_jk est lu, et Apache sait alors qu'à tout moment il peut communiquer avec Tomcat via le port 8009. Il est donc préférable de lancer préalablement Tomcat, qui sera en attente de requêtes sur le port 8009.
*Ensuite, il faut vérifier qu'Apache fonctionne sur le port 80 ([http://localhost/ http://localhost/]), et que Tomcat fonctionne sur le port 8080 ([http://localhost:8080/ http://localhost:8080/]) ou 8180 ([http://localhost:8180/ http://localhost/:8180]) selon votre configuration.
*Ensuite, il faut vérifier qu'Apache fonctionne sur le port 80 ([http://localhost/ http://localhost/]), et que Tomcat fonctionne sur le port 8080 ([http://localhost:8080/ http://localhost:8080/]) ou 8180 ([http://localhost:8180/ http://localhost/:8180]) selon votre configuration.
Ligne 155 : Ligne 183 :
*Définir des pages HTML traitées directement par Apache, en créant des fichiers HTML dans /var/www
*Définir des pages HTML traitées directement par Apache, en créant des fichiers HTML dans /var/www
*Définir des servlets et les intégrer dans Tomcat grâce au Tomcat Manager, accessible depuis le lien symbolique "Tomcat Manager" depuis la page d'accueil de Tomcat ([http://localhost:8080/ http://localhost:8080/] ou [http://localhost:8180/ http://localhost:8180/] selon votre configuration). Pour cela, il faut utiliser le login et le mot de passe "admin" définis dans /etc/tomcatxxx/tomcat-users.xml.
*Définir des servlets et les intégrer dans Tomcat grâce au Tomcat Manager, accessible depuis le lien symbolique "Tomcat Manager" depuis la page d'accueil de Tomcat ([http://localhost:8080/ http://localhost:8080/] ou [http://localhost:8180/ http://localhost:8180/] selon votre configuration). Pour cela, il faut utiliser le login et le mot de passe "admin" définis dans /etc/tomcatxxx/tomcat-users.xml.
<br/>
<br/>
'''<b>[[Reseau-index|@ Retour à la rubrique Réseau et sécurité]]</b>'''
<br/>


{{Copy|2008|[[Utilisateur:Nulix31]]|CC-BY-SA}}
{{Copy|2008|[[Utilisateur:Nulix31]]|CC-BY-SA}}

Dernière version du 20 mai 2012 à 13:10


Introduction

Apache est un serveur Web : il reçoit des requêtes HTTP émises depuis un navigateur, les analyse et envoie des pages Web en réponse au navigateur.

Lorsque les requêtes HTTP concernent des pages JSP (Java Server Pages), du code Java doit être exécuté pour construire les pages Web qu'Apache doit renvoyer au navigateur. Pour cela, Apache s'appuie sur un moteur de servlets qui prend en charge cette partie du traitement. Tomcat est l'un des moteurs de servlets les plus utilisés.

Pour communiquer entre eux, Apache et Tomcat utilisent un module intermédiaire, tel que mod_jk.

L'objet de cette fiche est de présenter les différentes étapes de l'installation de base d'Apache, Tomcat et mod_jk.

Installation d'Apache

Installation des paquets

Il faut commencer par installer le paquet apache2, ainsi que d'autres paquets apache et php qui peuvent s'avérer utiles.

Installez-les suivant la procédure habituelle propre à votre distribution.

Par exemple, avec Debian :

$ aptitude install apache2 apache2-doc apache2-mpm-prefork apache2-utils apache2.2-common libapache2-mod-jk libapache2-mod-perl2 libapache2-mod-php5 libapache2-reload-perl php5 php5-cgi php5-cli php5-common php5-curl php5-gd php5-imap php5-ldap php5-mcrypt php5-mhash php5-mysql php5-odbc

Fichiers de configuration d'Apache

Apache2 est en général installé dans /etc/apache2. Ce répertoire contient apache2.conf, le fichier de configuration principal d'Apache.

Remarque : apache2.conf peut faire appel à d'autres fichiers de configuration, via la directive "Include". Ainsi, lorsqu'on décrit des modifications à apporter à apache2.conf, il se peut selon les configurations que ces modifications soient à apporter dans d'autres fichiers inclus par apache2.conf.

Test de l'installation d'Apache

  • Pour lancer le serveur Apache :
$ /etc/init.d/apache2 start
  • Pour tester Apache :

Depuis un navigateur, aller à l'adresse http://localhost/. Une page vide doit s'afficher.

  • Si cela ne fonctionne pas:
    • Vérifier si le port par défaut est bien le port 80 : le fichier /etc/apache2/ports.conf doit contenir :
Listen 80
    • Regarder les fichiers de log dans /var/log/apache2.
    • après modification, relancer Apache :
$ /etc/init.d/apache2 restart
  • Pour arrêter Apache :
$ /etc/init.d/apache2 stop
  • Pour afficher des pages HTML qui ne nécessitent pas de gestion de jsp (et qui peuvent être traitées directement par Apache, sans passer par Tomcat) : copier les fichiers HTML correspondants dans le répertoire /var/www (qui correspond par défaut à la racine du site http://localhost/).

Personnalisations d'Apache

Il faut ensuite activer les modules ssl, rewrite, suexec et include d'Apache : il s'agit de créer depuis le répertoire /etc/apache2/mods-enabled des liens symboliques vers les modules du répertoire /etc/apache2/mods-available dont on a besoin :

$ a2enmod ssl
$ a2enmod rewrite
$ a2enmod suexec
$ a2enmod include

Ensuite, il faut relancer Apache :

$ /etc/init.d/apache2 restart

Installation de JDK

Tomcat a besoin des bibliothèques Java disponibles dans le paquet contenant le JDK (Java Development Kit).

Installez-les suivant la procédure habituelle propre à votre distribution.

Pour l'installer (par exemple depuis Debian) :

$ aptitude install sun-java6-jdk

Pour ne pas avoir besoin de modifier tous les fichiers de configuration lorsque vous changerez de version de JDK, on va utiliser un lien symbolique /usr/lib/jdk qui pointera sur la version de JDK de votre choix :

$ ln -s /usr/lib/jvm/java-6-sun-1.6.0.06/ /usr/lib/jdk

Installation de Tomcat

Installation des paquets

Il faut commencer par installer les paquets tomcat qui nous seront utiles.

Installez-les suivant la procédure habituelle propre à votre distribution.

Par exemple, avec Debian :

$ aptitude install tomcat5.5 tomcat5.5-admin tomcat5.5-webapps libtomcat5.5-java

Lien symbolique qui pointe vers la bonne version de Tomcat

Pour ne pas avoir besoin de modifier tous les fichiers de configuration lorsque vous changerez de version de Tomcat, on va utiliser un lien symbolique /usr/lib/apache-tomcat qui pointera sur la version de Tomcat de votre choix :

$ ln -s /usr/share/tomcat5.5/ /usr/lib/apache-tomcat

Remarque : ce répertoire est référencé en tant que CATALINA_HOME dans la documentation Tomcat.

Fichiers de configuration de Tomcat

Tomcat est en général installé dans /etc/tomcatxxx. Ce répertoire contient entre autres les fichiers de configuration suivants :

  • server.xml : permet de configurer les ports à utiliser. En général, le port HTTP est le port 8080 (ou 8180), et la communication avec le serveur Apache via mod_jk se fait sur le port 8009.
  • web.xml : permet de définir la configuration des servlets de vos applications Java.
  • tomcat-users.xml : permet de définir les utiliseurs et leurs droits. Il faut définir au moins un rôle "admin" et un utilisateur "admin" pour pouvoir administrer Tomcat :
<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
 <role rolename="manager"/>
 <role rolename="tomcat"/>
 <role rolename="admin"/>
 <user username="tomcat" password="tomcat" roles="tomcat"/>
 <user username="admin" password="admin" roles="tomcat,manager,admin"/>
</tomcat-users>

Test de l'installation de Tomcat

  • Pour lancer le serveur Tomcat :
$ /usr/lib/apache-tomcat/bin/startup.sh
  • Pour tester Tomcat :
    • Regarder dans le fichier de configuration /etc/tomcatxxx/server.xml le numéro de port HTTP utilisé (en général, 8080 ou 8180).
    • Depuis un navigateur, aller à l'adresse http://localhost:8080 (ou http://localhost:8180 selon votre configuration). La page d'accueil de Tomcat, contenant une présentation de Tomcat, doit s'afficher.
  • Si cela ne fonctionne pas, regarder les fichiers de log dans /var/log/tomcatxxx.
    • après modification, relancer tomcat :
$ /usr/lib/apache-tomcat/bin/shutdown.sh
$ /usr/lib/apache-tomcat/bin/startup.sh
  • Pour arrêter Tomcat :
$ /usr/lib/apache-tomcat/bin/shutdown.sh

Installation de mod_jk

Installation des paquets

Installez-les suivant la procédure habituelle propre à votre distribution.

Par exemple, sous Debian :

$ aptitude install libapache2-mod-jk

Cette commande crée en particulier un fichier /usr/lib/apache2/modules/mod_jk.so correspondant au module mod_jk.

configuration de mod_jk

Tout d'abord, il faut indiquer à Apache comment utiliser mod_jk :

  • Créer un fichier /etc/apache2/workers.properties (s'il n'existe pas), et indiquer les informations suivantes :
workers.tomcat_home=/usr/lib/apache-tomcat
workers.java_home=/usr/lib/jdk
ps=/
worker.list=worker1
worker.worker1.port=8009
worker.worker1.host=localhost
worker.worker1.type=ajp13
worker.worker1.lbfactor=1

worker1 (on peut modifier ce nom) correspond aux caractéristiques du module mod_jk qui sera utilisé pour communiquer avec Tomcat : port 8009, machine localhost, protocole ajp13...

  • Indiquer à Apache le chemin du fichier workers.properties (si ce n'est pas fait) ainsi que d'autres informations utiles : pour cela, il faut mettre à jour le fichier /etc/apache2/mods-available/jk.load (ou, à défaut, /etc/apache2/apache2.conf), en indiquant les informations suivantes :
# Charger le module mod_jk
LoadModule jk_module /usr/lib/apache2/modules/mod_jk.so
# Chemin du fichier workers.properties
JkWorkersFile /etc/apache2/workers.properties
# Fichier contenant la mémoire partagée
JkShmFile	/var/log/apache2/mod_jk.shm
# Fichier de log de mod_jk
JkLogFile	/var/log/apache2/mod_jk.log
# Niveau d'information : [info/error/debug]
JkLogLevel    debug
# Format du nom des fichiers de log
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
# JkOptions indique d'envoyer la taille de la clé SSL
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
# Format du log de la requête
JkRequestLogFormat "%w %V %T"
# Lorsque le chemin des pages Web demandées correspondent aux schémas suivants,
# Apache doit les transférer à Tomcat via worker1 (à adapter en fonction des besoins)
# le répertoire jsp-examples de Tomcat contient des examples d'utilisation de servlets,
# et peut être utile pour tester la configuration
JkMount /jsp-examples worker1
JkMount /jsp-examples/*
JkMount /tests/*.jsp

Il faut aussi faire figurer la référence à worker1 lors de la définition des hôtes virtuels (exemple : /etc/apache2/sites-enabled/000-default) :

<VirtualHost *>
...
JkMount /jsp-examples/* worker1
</VirtualHost>

Test de mod_jk

  • Avant de tester mod_jk, il faut relancer Apache et Tomcat.
$ /usr/lib/apache-tomcat/bin/shutdown.sh
$ /usr/lib/apache-tomcat/bin/startup.sh
$ /etc/init.d/apache2 restart

Remarque : il faut toujours lancer Tomcat en premier : lors du lancement d'Apache, le fichier de configuration de mod_jk est lu, et Apache sait alors qu'à tout moment il peut communiquer avec Tomcat via le port 8009. Il est donc préférable de lancer préalablement Tomcat, qui sera en attente de requêtes sur le port 8009.

  • Ensuite, il faut vérifier qu'Apache fonctionne sur le port 80 (http://localhost/), et que Tomcat fonctionne sur le port 8080 (http://localhost:8080/) ou 8180 (http://localhost/:8180) selon votre configuration.
  • Enfin, il faut vérifier que les requêtes aux adresses configurées via les directives JkMount dans /etc/apache2/mods-available/jk.load (ou, à défaut, /etc/apache2/apache2.conf) fonctionnent. Dans notre cas, l'adresse /jsp-examples qui, sous Tomcat, contient des exemples de jsp :

Installation terminée

A ce stade, vous pouvez :

  • Définir des pages HTML traitées directement par Apache, en créant des fichiers HTML dans /var/www
  • Définir des servlets et les intégrer dans Tomcat grâce au Tomcat Manager, accessible depuis le lien symbolique "Tomcat Manager" depuis la page d'accueil de Tomcat (http://localhost:8080/ ou http://localhost:8180/ selon votre configuration). Pour cela, il faut utiliser le login et le mot de passe "admin" définis dans /etc/tomcatxxx/tomcat-users.xml.



@ Retour à la rubrique Réseau et sécurité

Copyright

© 2008 Utilisateur:Nulix31

Creative Commons License
Creative Commons Attribution iconCreative Commons Share Alike icon
Ce document est publié sous licence Creative Commons
Attribution, Partage à l'identique 4.0 :
https://creativecommons.org/licenses/by-sa/4.0/