Apache Tomcat est un serveur Web gratuit et open source largement utilisé pour héberger des applications Web écrites en langage de programmation Java. Il s'agit d'une implémentation de Jakarta Servlet et Jakarta Expression Language (anciennement Java Servlet et Java Expression Language) et d'autres technologies Java Websocket.
Apache Tomcat n'est pas exactement un serveur Web au sens d'Apache ou de Nginx. Il s'agit d'un serveur d'applications qui fournit un écosystème HTTP Java pur et une logique basée sur Java pour servir le code Java.
Dans ce guide, nous allons apprendre étape par étape comment installer Apache Tomcat sur Debian 11 (Bullseye).
Étape 1) Installer OpenJDK
Étant donné que Tomcat est construit sur Java, la toute première étape consistera à installer Java qui sera fourni par OpenJDK. Nous allons installer OpenJDK 11 qui est la dernière version LTS.
Pour installer OpenJDK 11, mettez à jour les listes de packages.
$ sudo apt update
Exécutez ensuite la commande suivante pour installer OpenJDK 11.
$ sudo apt install openjdk-11-jdk -y
Pour confirmer la version de Java installée, exécutez la commande :
$ java -version
Étape 2) Téléchargez et installez Apache Tomcat
Une fois l'installation de Java terminée, notre prochaine étape consiste à télécharger et à installer Apache Tomcat. Au moment de la rédaction de ce guide, la dernière version d'Apache Tomcat est la v10.0.18.
Visitez la page de téléchargement officielle d'Apache Tomcat et récupérez le dernier binaire ou utilisez la commande wget comme suit.
$ wget https://downloads.apache.org/tomcat/tomcat-10/v10.0.18/bin/apache-tomcat-10.0.18.tar.gz
Ensuite, créez un répertoire dans le répertoire /opt.
$ sudo mkdir /opt/tomcat
Ensuite, extrayez le fichier binaire avec la commande tar dans le chemin /opt/tomcat.
$ sudo tar -xvf apache-tomcat-10*tar.gz -C /opt/tomcat --strip-components=1
Étape 3) Créez un nouvel utilisateur et un groupe pour Tomcat
Ce n'est généralement pas une bonne idée de tester les applications Web à l'aide de l'utilisateur root, car l'utilisateur peut facilement être compromis par un attaquant menant à une violation du système.
Considérant cela, nous allons créer un utilisateur non root qui aura accès au répertoire /opt/tomcat.
Par conséquent, créez un groupe appelé tomcat.
$ sudo groupadd tomcat
Ensuite, créez l'utilisateur tomcat et ajoutez l'utilisateur au groupe tomcat avec /opt/tomcat comme répertoire personnel.
$ sudo useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat
Étape 4) Configurer les autorisations des utilisateurs
Ensuite, nous allons définir la propriété et les autorisations suivantes sur le répertoire /opt/tomcat avec les commandes chown et chomd respectivement.
$ sudo chown -R tomcat: /opt/tomcat $ sudo sh -c 'chmod +x /opt/tomcat/bin/*.sh'
Étape 5) Créer un fichier systemd pour Apache Tomcat
Nous devons faire en sorte qu'Apache Tomcat s'exécute en arrière-plan en tant que service systemd pouvant être démarré, arrêté et activé. Par défaut, Tomcat n'est pas livré avec un fichier d'unité systemd, et par conséquent, nous allons le créer manuellement comme suit.
$ sudo vi /etc/systemd/system/tomcat.service
Collez le bloc de code suivant qui définit le fichier de service systemd.
[Unit] Description=Tomcat webs servlet container After=network.target [Service] Type=forking User=tomcat Group=tomcat RestartSec=10 Restart=always Environment="JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-amd64" Environment="JAVA_OPTS=-Djava.awt.headless=true -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
Enregistrez les modifications et quittez le fichier. Ensuite, relancez le générateur systemd et rechargez tous les fichiers unitaires.
$ sudo systemctl daemon-reload
Pour confirmer le chemin par défaut pour Java, exécutez la commande
$ sudo update-java-alternatives -l
Cela coïncide avec le chemin spécifié dans le fichier de service systemd, ce qui signifie que nous sommes sur la bonne voie.
Étape 6) Activer et démarrer le démon Tomcat
Une fois le fichier systemd de Tomcat en place, démarrez le démon Apache Tomcat et activez-le au démarrage du système.
$ sudo systemctl daemon-reload $ sudo systemctl start tomcat $ sudo systemctl enable tomcat
Vérifiez ensuite qu'Apache Tomcat est en cours d'exécution
$ systemctl status tomcat
À partir de la sortie, nous pouvons voir que le démon Tomcat est en cours d'exécution, ce qui implique que notre configuration est correcte.
Étape 7) Ajouter un utilisateur Tomcat Admin et configurer les rôles
Nous devons configurer un utilisateur administratif pour accéder aux sections « état du serveur », « gestionnaire de l'hôte » et « application du gestionnaire » sur la page Web de Tomcat. Sinon, nous rencontrerons une erreur sur le navigateur.
Pour ce faire, nous allons modifier le fichier de configuration utilisateur de Tomcat.
$ sudo vi /opt/tomcat/conf/tomcat-users.xml
Collez les lignes de code suivantes juste avant la balise . N'hésitez pas à spécifier vos propres valeurs de nom d'utilisateur et de mot de passe.
<role rolename="admin"/> <role rolename="admin-gui"/> <role rolename="manager"/> <role rolename="manager-gui"/> <user username="linuxtechi" password="<enetr-password-here>" roles="admin,admin-gui,manager,manager-gui"/>
Enregistrez les modifications et fermez le fichier de configuration.
Étape 8) Gérer l'accès à distance à Apache Tomcat
Par défaut, vous ne pouvez accéder à l'interface Web de Tomcat qu'à partir du système hôte. Nous devons donc configurer l'accès à distance à Tomcat Manager en modifiant manuellement le fichier de configuration context.xml.
$ sudo vi /opt/tomcat/webapps/manager/META-INF/context.xml
Faites défiler vers le bas et commentez ces lignes en ajoutant simplement à la fin.
<!-- <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" /> -->
Enregistrez le fichier et quittez. Ensuite, nous devons autoriser l'accès à distance à Host Manager. Modifiez donc le fichier context.xml du gestionnaire d'hôtes.
$ sudo vi /opt/tomcat/webapps/host-manager/META-INF/context.xml
Encore une fois, commentez le bloc de texte suivant en ajoutant à la fin.
<!-- <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" /> -->
Enregistrez les modifications et quittez le fichier de configuration. Pour appliquer toutes les modifications apportées, redémarrez Tomcat.
$ sudo systemctl restart tomcat
Étape 9) Accès à Apache Tomcat
Tomcat est maintenant entièrement configuré et accessible à distance. Il reste encore une étape. Si vous utilisez un pare-feu UFW, envisagez d'ouvrir le port 8080 qui est le port par défaut sur lequel Apache Tomcat écoute.
$ sudo ufw allow 8080 $ sudo ufw reload
Enfin, pour accéder à l'interface Web de Tomcat, lancez votre navigateur et rendez-vous à l'adresse suivante.
http://server-ip-addres:8080 or http://youdomain.com:8080
Cela devrait vous amener à la page d'accueil par défaut du serveur Web Tomcat, comme indiqué.
Pour accéder à la page « État du serveur », cliquez sur « État du serveur ». Une fenêtre contextuelle apparaîtra pour demander les informations d'identification de l'utilisateur. Fournissez les identifiants de connexion administrateur spécifiés à l'étape 6 et cliquez sur "Connexion".
De même, vous serez invité à fournir les mêmes informations d'identification lors de l'accès au gestionnaire d'applications Tomcat, accessible en cliquant sur "Manager App" sur l'interface Web par défaut.
En cliquant sur "Gestionnaire d'hôte", vous accéderez à la section Virtual Host Manager, comme indiqué.
Conclusion
Et c'est un enveloppement. Dans ce guide, nous vous avons guidé tout au long de l'installation sur le serveur Web Apache Tomcat sur Debian 11. Bonne chance pour l'hébergement de vos applications Java !