Apache Tomcat est open-source et le serveur d'applications Web 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 des codes Java. Tomcat offre un riche ensemble de fonctionnalités, notamment léger, hautement flexible, bien documenté, offre un niveau de sécurité supplémentaire, mature et plus encore.
Dans ce tutoriel, nous allons vous expliquer comment installer Apache Tomcat 10 sur un serveur Debian 10.
Prérequis
- Un serveur exécutant Debian 10.
- Un nom de domaine valide pointé vers l'adresse IP de votre serveur.
- Un mot de passe root est configuré sur le serveur.
Mise en route
Avant de commencer, mettez à jour vos packages système vers la dernière version avec la commande suivante :
apt-get update -y
Une fois tous les packages mis à jour, vous pouvez passer à l'étape suivante.
Installer Java
Apache Tomcat est une application basée sur Java. Vous devrez donc installer Java sur votre serveur. Vous pouvez installer Java avec la commande suivante :
apt-get install default-jdk -y
Après l'installation, vérifiez la version de Java à l'aide de la commande ci-dessous :
java --version
La sortie suivante vous montrera la version de Java installée sur votre 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 vous avez terminé, vous pouvez passer à l'étape suivante.
Installer Apache Tomcat
Au moment de la rédaction de ce didacticiel, la dernière version disponible d'Apache Tomcat est la 10.0.7.
Tout d'abord, ajoutez 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échargez 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é, extrayez 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éfinissez la propriété appropriée sur le répertoire /opt/tomcat à l'aide de la commande suivante :
chown -R tomcat:tomcat /opt/tomcat/
Une fois que vous avez terminé, vous pouvez passer à l'étape suivante.
Créer un utilisateur administrateur Web Tomcat
Ensuite, vous devrez créer un utilisateur administrateur pour accéder à l'interface d'administration de Tomcat. Vous pouvez le créer en éditant le fichier tomcat-users.xml :
nano /opt/tomcat/conf/tomcat-users.xml
Ajoutez 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" />
Enregistrez et fermez le fichier une fois que vous avez terminé. Vous pouvez maintenant passer à l'étape suivante.
Autoriser l'accès à distance de Tomcat
Par défaut, Tomcat est configuré pour accéder uniquement à partir du système local. Vous devrez donc configurer Tomcat pour qu'il soit accessible depuis le système distant.
Tout d'abord, modifiez le context.xml fichier pour autoriser l'accès à distance à l'application du gestionnaire Tomcat :
nano /opt/tomcat/webapps/manager/META-INF/context.xml
Supprimez ou commentez les lignes suivantes :
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
Enregistrez et fermez le fichier puis modifiez le context.xml fichier pour autoriser l'accès à distance à l'application du gestionnaire d'hôtes Tomcat :
nano /opt/tomcat/webapps/host-manager/META-INF/context.xml
Supprimez les lignes suivantes :
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
Enregistrez et fermez le fichier lorsque vous avez terminé. Vous pouvez maintenant passer à l'étape suivante.
Créer un fichier d'unité Systemd pour Tomcat
Ensuite, vous devrez créer un fichier d'unité systemd pour gérer le service Tomcat. Vous pouvez le créer avec la commande suivante :
nano /etc/systemd/system/tomcat.service
Ajoutez 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
Enregistrez et fermez le fichier puis rechargez le démon systemd pour appliquer les modifications :
systemctl daemon-reload
Ensuite, démarrez le service Tomcat et activez-le au redémarrage du système avec la commande suivante :
systemctl start tomcat
systemctl enable tomcat
Vous pouvez maintenant vérifier l'état du service Tomcat à l'aide de la commande suivante :
systemctl status tomcat
Vous devriez obtenir le résultat suivant :
? 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. Vous pouvez le vérifier avec la commande suivante :
ss -antpl | grep 8080
Vous devriez obtenir le résultat suivant :
LISTEN 0 100 *:8080 *:* users:(("java",pid=5713,fd=43))
Une fois que vous avez terminé, vous pouvez passer à l'étape suivante.
Configurer Nginx pour Tomcat
Ensuite, il est recommandé d'utiliser Nginx comme reverse proxy pour accéder à l'application Tomcat.
Tout d'abord, installez le serveur Web Nginx à l'aide de la commande suivante :
apt-get install nginx -y
Une fois Nginx installé, créez un nouveau fichier de configuration d'hôte virtuel Nginx :
nano /etc/nginx/conf.d/tomcat.conf
Ajoutez 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/; } }
Enregistrez et fermez le fichier lorsque vous avez terminé, puis vérifiez le Nginx pour toute erreur de syntaxe avec la commande suivante :
nginx -t
Vous devriez obtenir le résultat suivant :
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
Ensuite, redémarrez le Nginx pour appliquer les modifications :
systemctl restart nginx
Vous pouvez également vérifier l'état du service Nginx à l'aide de la commande suivante :
systemctl status nginx
Si tout va bien, vous devriez voir le résultat suivant :
? 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 vous avez terminé, vous pouvez passer à l'étape suivante.
Accéder à l'application Tomcat
Maintenant, ouvrez votre navigateur Web et accédez à l'application Tomcat en utilisant l'URL http://tomcat.example.com . Vous serez redirigé vers la page suivante :
Cliquez sur Gérer l'application . Vous devriez voir la page de connexion de l'application Manager :
Indiquez votre nom d'utilisateur et votre mot de passe d'administrateur et cliquez sur Connexion bouton. Vous devriez voir le tableau de bord de l'application Manager sur la page suivante :
Pour accéder au Host Manager, cliquez sur le Host Manager depuis la page d'accueil de Tomcat. Vous devriez voir la page de connexion de Tomcat Host Manager :
Indiquez votre nom d'utilisateur et votre mot de passe d'administrateur et cliquez sur Connexion bouton. Vous devriez voir le tableau de bord Tomcat Host Manager sur la page suivante :
Conclusion
Toutes nos félicitations! vous avez installé avec succès Apache Tomcat 10 sur le serveur Debian 10. Vous pouvez maintenant créer une application Java et l'héberger à l'aide d'Apache Tomcat. N'hésitez pas à me demander si vous avez des questions.