Comment installer Apache Tomcat 10 sur Debian 10

Apache Tomcat est un serveur d’applications Web open-source et le plus populaire utilisé pour héberger des applications basées sur Java. Il est livré avec Java Servlet, JavaServer Pages (JSP), Java EL, et fournit un environnement pour exécuter les codes Java. Tomcat offre un riche ensemble de fonctionnalités, notamment : léger, très flexible, bien documenté, offrant un niveau de sécurité supplémentaire, mature et plus encore.

Dans ce tutoriel, nous allons expliquer comment installer Apache Tomcat 10 sur un serveur Debian 10.

Conditions préalables

  • Un serveur fonctionnant sous Debian 10.
  • Un nom de domaine valide pointé avec l’IP de ton serveur.
  • Un mot de passe root est configuré sur le serveur.

Démarrage

Avant de commencer, mets à jour tes paquets système à la dernière version avec la commande suivante :

apt-get update -y

Une fois que tous les paquets sont mis à jour, tu peux passer à l’étape suivante.

Installer Java

Apache Tomcat est une application basée sur Java. Tu devras donc installer Java sur ton serveur. Tu peux installer Java avec la commande suivante :

apt-get install default-jdk -y

Après l’installation, vérifie la version de Java à l’aide de la commande ci-dessous :

java --version

La sortie suivante te montrera la version de Java installée sur ton serveur.

openjdk 11.0.11 2021-04-20
OpenJDK Runtime Environment (build 11.0.11+9-post-Debian-1deb10u1)
OpenJDK 64-Bit Server VM (build 11.0.11+9-post-Debian-1deb10u1, mixed mode, sharing)

Une fois que tu as terminé, tu peux passer à l’étape suivante.

Installer Apache Tomcat

Au moment de la rédaction de ce tutoriel, la dernière version disponible d’Apache Tomcat est 10.0.7.

Tout d’abord, ajoute l’utilisateur pour exécuter Apache Tomcat à l’aide de la commande suivante :

useradd -m -d /opt/tomcat -U -s /bin/false tomcat

Ensuite, télécharge l’Apache Tomcat 10 à l’aide de la commande suivante :

wget https://mirrors.estointernet.in/apache/tomcat/tomcat-10/v10.0.7/bin/apache-tomcat-10.0.7.tar.gz

Une fois le téléchargement terminé, extrais le fichier téléchargé dans le répertoire /opt/tomcat à l’aide de la commande suivante :

tar -xzvf apache-tomcat-10.0.7.tar.gz -C /opt/tomcat --strip-components=1

Ensuite, définis la propriété appropriée au répertoire /opt/tomcat à l’aide de la commande suivante :

chown -R tomcat:tomcat /opt/tomcat/

Une fois que tu as terminé, tu peux passer à l’étape suivante.

Créer un utilisateur Tomcat Web Admin

Ensuite, tu devras créer un utilisateur admin pour accéder à l’interface d’administration de Tomcat. Tu peux le créer en modifiant le fichier tomcat-users.xml :

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

Ajoute les lignes suivantes avant la dernière ligne :

<role rolename="manager-gui" />
<user username="manager" password="pasword" roles="manager-gui" />

<role rolename="admin-gui" />
<user username="admin" password="password" roles="manager-gui,admin-gui" />

Sauvegarde et ferme le fichier après avoir terminé. Tu peux maintenant passer à l’étape suivante.

Autoriser l’accès à distance de Tomcat

Par défaut, Tomcat est configuré pour n’être accessible que depuis le système local. Tu devras donc configurer Tomcat pour qu’il soit accessible depuis le système distant.

Tout d’abord, modifie le fichier context.xml pour autoriser l’accès à distance à l’application Tomcat manager :

nano /opt/tomcat/webapps/manager/META-INF/context.xml

Supprime ou commente les lignes suivantes :

  <Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />

Enregistre et ferme le fichier puis édite le fichier context.xml pour autoriser l’accès à distance à l’application Tomcat host manager :

nano /opt/tomcat/webapps/host-manager/META-INF/context.xml

Supprime les lignes suivantes :

  <Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />

Sauvegarde et ferme le fichier lorsque tu as terminé. Tu peux maintenant passer à l’étape suivante.

Crée un fichier d’unité Systemd pour Tomcat

Ensuite, tu devras créer un fichier d’unité systemd pour gérer le service Tomcat. Tu peux le créer avec la commande suivante :

nano /etc/systemd/system/tomcat.service

Ajoute les lignes suivantes :

[Unit]
Description=Tomcat
After=network.target

[Service]
Type=forking

User=tomcat
Group=tomcat

Environment="JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-amd64"
Environment="JAVA_OPTS=-Djava.security.egd=file:///dev/urandom"
Environment="CATALINA_BASE=/opt/tomcat"
Environment="CATALINA_HOME=/opt/tomcat"
Environment="CATALINA_PID=/opt/tomcat/temp/tomcat.pid"
Environment="CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC"

ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh

[Install]
WantedBy=multi-user.target

Enregistre et ferme le fichier puis recharge le démon systemd pour appliquer les modifications :

systemctl daemon-reload

Ensuite, démarre le service Tomcat et active-le pour qu’il démarre au redémarrage du système avec la commande suivante :

systemctl start tomcat
systemctl enable tomcat

Tu peux maintenant vérifier l’état du service Tomcat à l’aide de la commande suivante :

systemctl status tomcat

Tu devrais obtenir la sortie suivante :

? tomcat.service - Tomcat
   Loaded: loaded (/etc/systemd/system/tomcat.service; disabled; vendor preset: enabled)
   Active: active (running) since Thu 2021-07-01 04:58:39 UTC; 15s ago
  Process: 5706 ExecStart=/opt/tomcat/bin/startup.sh (code=exited, status=0/SUCCESS)
 Main PID: 5713 (java)
    Tasks: 29 (limit: 2359)
   Memory: 154.7M
   CGroup: /system.slice/tomcat.service
           ??5713 /usr/lib/jvm/java-1.11.0-openjdk-amd64/bin/java -Djava.util.logging.config.file=/opt/tomcat/conf/logging.properties -Djava.ut

Jul 01 04:58:39 tomcat systemd[1]: Starting Tomcat...
Jul 01 04:58:39 tomcat startup.sh[5706]: Tomcat started.
Jul 01 04:58:39 tomcat systemd[1]: Started Tomcat.

À ce stade, Tomcat est démarré et écoute sur le port 8080. Tu peux le vérifier à l’aide de la commande suivante :

ss -antpl | grep 8080

Tu devrais obtenir le résultat suivant :

LISTEN   0        100                          *:8080                  *:*       users:(("java",pid=5713,fd=43))

Une fois que tu as terminé, tu peux passer à l’étape suivante.

Configurer Nginx pour Tomcat

Ensuite, il est recommandé d’utiliser Nginx comme proxy inverse pour accéder à l’application Tomcat.

Tout d’abord, installe le serveur web Nginx à l’aide de la commande suivante :

apt-get install nginx -y

Une fois que Nginx est installé, crée un nouveau fichier de configuration d’hôte virtuel Nginx :

nano /etc/nginx/conf.d/tomcat.conf

Ajoute les lignes suivantes :

server {
  listen 80;

  server_name    tomcat.example.com;
  access_log /var/log/nginx/access.log;
  error_log /var/log/nginx/error.log;

  location / {
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://127.0.0.1:8080/;
  }
}

Enregistre et ferme le fichier lorsque tu as terminé puis vérifie que Nginx n’a pas d’erreur de syntaxe avec la commande suivante :

nginx -t

Tu devrais obtenir la sortie suivante :

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Ensuite, redémarre le Nginx pour appliquer les modifications :

systemctl restart nginx

Tu peux aussi vérifier l’état du service Nginx à l’aide de la commande suivante :

systemctl status nginx

Si tout va bien, tu devrais voir la sortie suivante :

? nginx.service - A high performance web server and a reverse proxy server
   Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2021-07-01 05:00:32 UTC; 6s ago
     Docs: man:nginx(8)
  Process: 6322 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
  Process: 6323 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
 Main PID: 6324 (nginx)
    Tasks: 2 (limit: 2359)
   Memory: 2.7M
   CGroup: /system.slice/nginx.service
           ??6324 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
           ??6325 nginx: worker process

Jul 01 05:00:32 tomcat systemd[1]: Starting A high performance web server and a reverse proxy server...
Jul 01 05:00:32 tomcat systemd[1]: nginx.service: Failed to parse PID from file /run/nginx.pid: Invalid argument
Jul 01 05:00:32 tomcat systemd[1]: Started A high performance web server and a reverse proxy server.

Une fois que tu as terminé, tu peux passer à l’étape suivante.

Accède à l’application Tomcat

Maintenant, ouvre ton navigateur Web et accède à l’application Tomcat en utilisant l’URL http://tomcat.example.com. Tu seras redirigé vers la page suivante :

Apache Tomcat

Clique sur l’application Manager App. Tu devrais voir la page de connexion de l’application Manager App :

Connexion à Tomcat

Indique ton nom d’utilisateur admin, ton mot de passe et clique sur le bouton Connexion. Tu devrais voir le tableau de bord de l’application Manager App sur la page suivante :

Gestionnaire d'applications Web Tomcat

Pour accéder au Gestionnaire d’hôtes, clique sur le Gestionnaire d’hôtes depuis la page d’accueil de Tomcat. Tu devrais voir la page de connexion du Gestionnaire d’hôtes Tomcat :

Connexion au gestionnaire d'hôte Tomcat

Indique ton nom d’utilisateur admin, ton mot de passe et clique sur le bouton Se connecter. Tu devrais voir le tableau de bord du Gestionnaire d’hôtes Tomcat sur la page suivante :

Gestionnaire d'hôtes virtuels Tomcat

Conclusion

Félicitations ! Tu as réussi à installer Apache Tomcat 10 sur le serveur Debian 10. Tu peux maintenant créer une application Java et l’héberger à l’aide d’Apache Tomcat. N’hésite pas à me demander si tu as des questions.

Vous aimerez aussi...