Comment installer Apache Tomcat 9 sur Ubuntu 18.04

introduction

Apache Tomcat est un serveur Web et un conteneur de servlets utilisés pour desservir les applications Java. Tomcat est une implémentation open source des technologies Java Servlet et JavaServer Pages, publiée par Apache Software Foundation. Ce tutoriel couvre l’installation de base et une partie de la configuration de la dernière version de Tomcat 9 sur votre serveur Ubuntu 18.04.

Conditions préalables

Avant de commencer avec ce guide, vous devez avoir un utilisateur non root avec les privilègessudo configuré sur votre serveur. Vous pouvez apprendre comment faire cela en complétant nosUbuntu 16.04 initial server setup guide.

[[step-1 —- install-java]] == Étape 1 — Installer Java

Tomcat nécessite que Java soit installé sur le serveur pour que tout code d'application Web Java puisse être exécuté. Nous pouvons satisfaire cette exigence en installant OpenJDK avec apt.

Commencez par mettre à jour votre index de paquet apt:

sudo apt update

Puis installez le paquet Java Development Kit avec apt:

sudo apt install default-jdk

Maintenant que Java est installé, nous pouvons créer un utilisateurtomcat, qui sera utilisé pour exécuter le service Tomcat.

[[step-2 —- create-tomcat-user]] == Étape 2 — Créer un utilisateur Tomcat

Pour des raisons de sécurité, Tomcat doit être exécuté en tant qu’utilisateur non privilégié (c.-à-d. pas root). Nous allons créer un nouvel utilisateur et un nouveau groupe qui exécutera le service Tomcat.

Tout d'abord, créez un nouveau groupetomcat:

sudo groupadd tomcat

Ensuite, créez un nouvel utilisateurtomcat. Nous ferons de cet utilisateur un membre du groupetomcat, avec un répertoire personnel de/opt/tomcat (où nous installerons Tomcat), et avec un shell de/bin/false (pour que personne ne puisse se connecter dans le compte):

sudo useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat

Maintenant que notre utilisateurtomcat est configuré, téléchargeons et installons Tomcat.

[[step-3 —- install-tomcat]] == Étape 3 — Installer Tomcat

Le meilleur moyen d'installer Tomcat 9 est de télécharger la dernière version binaire, puis de la configurer manuellement.

Trouvez la dernière version de Tomcat 9 sur le siteTomcat 9 Downloads page. Au moment de la rédaction de cet article, la dernière version est9.0.10, mais vous devriez utiliser une version stable ultérieure si elle est disponible. Sous la sectionBinary Distributions, puis sous la listeCore, copiez le lien vers le «tar.gz».

Ensuite, accédez au répertoire/tmp sur votre serveur. C’est un bon répertoire pour télécharger des éléments éphémères, comme l’archive Tomcat, dont nous n’aurons plus besoin après avoir extrait le contenu de Tomcat:

cd /tmp

Utilisezcurl pour télécharger le lien que vous avez copié depuis le site Web de Tomcat:

curl -O http://mirror.cc.columbia.edu/pub/software/apache/tomcat/tomcat-9/v9.0.10/bin/apache-tomcat-9.0.10.tar.gz

Nous installerons Tomcat dans le répertoire/opt/tomcat. Créez le répertoire, puis extrayez l'archive avec les commandes suivantes:

sudo mkdir /opt/tomcat
sudo tar xzvf apache-tomcat-9*tar.gz -C /opt/tomcat --strip-components=1

Ensuite, nous pouvons configurer les autorisations utilisateur appropriées pour notre installation.

[[step-4 —- update-permissions]] == Étape 4 - Mettre à jour les permissions

L'utilisateurtomcat que nous avons configuré doit avoir accès à l'installation de Tomcat. Nous allons le configurer maintenant.

Accédez au répertoire dans lequel nous avons décompressé l’installation de Tomcat:

cd /opt/tomcat

Donnez la propriété du groupetomcat sur tout le répertoire d'installation:

sudo chgrp -R tomcat /opt/tomcat

Ensuite, donnez au groupetomcat l'accès en lecture au répertoireconf et à tout son contenu, et l'accès deexecuteau répertoire lui-même:

sudo chmod -R g+r conf
sudo chmod g+x conf

Faites de l'utilisateurtomcat le propriétaire des répertoireswebapps,work,temp etlogs:

sudo chown -R tomcat webapps/ work/ temp/ logs/

Maintenant que les autorisations appropriées sont configurées, nous pouvons créer un fichier de service systemd pour gérer le processus Tomcat.

[[step-5 — create-a-systemd-service-file]] == Étape 5 — Créer un fichier de service systemd

Nous voulons pouvoir exécuter Tomcat en tant que service. Nous allons donc configurer le fichier de service systemd.

Tomcat a besoin de savoir où Java est installé. Ce chemin est communément appelé «JAVA_HOME». Le moyen le plus simple de rechercher cet emplacement consiste à exécuter cette commande:

sudo update-java-alternatives -l
Outputjava-1.11.0-openjdk-amd64       1081       /usr/lib/jvm/java-1.11.0-openjdk-amd64

VotreJAVA_HOME est la sortie de la dernière colonne (surlignée en rouge). Compte tenu de l'exemple ci-dessus, lesJAVA_HOME corrects pour ce serveur seraient:

JAVA_HOME/usr/lib/jvm/java-1.11.0-openjdk-amd64

VosJAVA_HOME peuvent être différents.

Avec cette information, nous pouvons créer le fichier de service systemd. Ouvrez un fichier appelétomcat.service dans le répertoire/etc/systemd/system en tapant:

sudo nano /etc/systemd/system/tomcat.service

Collez le contenu suivant dans votre fichier de service. Modifiez la valeur deJAVA_HOME si nécessaire pour qu'elle corresponde à la valeur que vous avez trouvée sur votre système. Vous pouvez également modifier les paramètres d'allocation de mémoire spécifiés dansCATALINA_OPTS:

/etc/systemd/system/tomcat.service

[Unit]
Description=Apache Tomcat Web Application Container
After=network.target

[Service]
Type=forking

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

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

User=tomcat
Group=tomcat
UMask=0007
RestartSec=10
Restart=always

[Install]
WantedBy=multi-user.target

Lorsque vous avez terminé, enregistrez et fermez le fichier.

Ensuite, rechargez le démon systemd afin qu’il connaisse notre fichier de service:

sudo systemctl daemon-reload

Démarrez le service Tomcat en tapant:

sudo systemctl start tomcat

Vérifiez que tout a commencé sans erreur en tapant:

sudo systemctl status tomcat

[[step-6 — Adjust-the-firewall-and-test-the-tomcat-server]] == Étape 6 — Ajuster le pare-feu et tester le serveur Tomcat

Maintenant que le service Tomcat est démarré, nous pouvons tester pour nous assurer que la page par défaut est disponible.

Avant de faire cela, nous devons ajuster le pare-feu pour permettre à nos demandes d’accéder au service. Si vous avez respecté les conditions préalables, vous aurez un pare-feuufw activé actuellement.

Tomcat utilise le port8080 pour accepter les requêtes conventionnelles. Autorisez le trafic sur ce port en tapant:

sudo ufw allow 8080

Une fois le pare-feu modifié, vous pouvez accéder à la page d'accueil par défaut en accédant à votre domaine ou à votre adresse IP suivi de:8080 dans un navigateur Web:

Open in web browserhttp://server_domain_or_IP:8080

Vous verrez la page d'accueil Tomcat par défaut, en plus d'autres informations. Toutefois, si vous cliquez sur les liens de l'application Manager, par exemple, l'accès vous sera refusé. Nous pouvons configurer cet accès ensuite.

Si vous avez réussi à accéder à Tomcat, le moment est venu d'activer le fichier de service afin que Tomcat démarre automatiquement au démarrage:

sudo systemctl enable tomcat

[[step-7 —- configure-tomcat-web-management-interface]] == Étape 7 — Configurer l'interface de gestion Web Tomcat

Pour utiliser l'application Web de gestion fournie avec Tomcat, nous devons ajouter une connexion à notre serveur Tomcat. Nous allons le faire en éditant le fichiertomcat-users.xml:

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

Vous voudrez ajouter un utilisateur qui peut accéder auxmanager-gui etadmin-gui (applications Web fournies avec Tomcat). Vous pouvez le faire en définissant un utilisateur, similaire à l'exemple ci-dessous, entre les balisestomcat-users. Assurez-vous de changer le nom d'utilisateur et le mot de passe pour quelque chose de sécurisé:

tomcat-users.xml — Admin User


    

Enregistrez et fermez le fichier lorsque vous avez terminé.

Par défaut, les versions les plus récentes de Tomcat limitent l'accès aux applications Manager et Host Manager aux connexions provenant du serveur lui-même. Puisque nous installons sur une machine distante, vous voudrez probablement supprimer ou modifier cette restriction. Pour modifier les restrictions d'adresse IP sur ces derniers, ouvrez les fichierscontext.xml appropriés.

Pour l'application Manager, tapez:

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

Pour l'application Host Manager, tapez:

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

À l'intérieur, commentez la restriction d'adresse IP pour autoriser les connexions de n'importe où. Si vous souhaitez uniquement autoriser l'accès aux connexions provenant de votre propre adresse IP, vous pouvez ajouter votre adresse IP publique à la liste:

context.xml files for Tomcat webapps


  

Enregistrez et fermez les fichiers lorsque vous avez terminé.

Pour appliquer nos modifications, redémarrez le service Tomcat:

sudo systemctl restart tomcat

[[step-8 — access-the-web-interface]] == Étape 8 — Accéder à l'interface Web

Maintenant que nous avons créé un utilisateur, nous pouvons à nouveau accéder à l'interface de gestion Web dans un navigateur Web. Une fois encore, vous pouvez accéder à la bonne interface en entrant le nom de domaine ou l’adresse IP de votre serveur, suivi sur le port 8080 de votre navigateur:

Open in web browserhttp://server_domain_or_IP:8080

La page que vous voyez devrait être la même que celle qui vous avait été fournie lors des tests précédents:

Tomcat root

Jetons un coup d'œil à l'application Manager, accessible via le lien ouhttp://server_domain_or_IP:8080/manager/html. Vous devrez entrer les informations d'identification du compte que vous avez ajoutées au fichiertomcat-users.xml. Ensuite, vous devriez voir une page qui ressemble à ceci:

Tomcat Web Application Manager

Web Application Manager est utilisé pour gérer vos applications Java. Vous pouvez démarrer, arrêter, recharger, déployer et annuler le déploiement ici. Vous pouvez également exécuter des diagnostics sur vos applications (c'est-à-dire trouver des fuites de mémoire). Enfin, des informations sur votre serveur sont disponibles tout en bas de cette page.

Jetons maintenant un œil au Host Manager, accessible via le lien ouhttp://server_domain_or_IP:8080/host-manager/html/:

Tomcat Virtual Host Manager

À partir de la page Virtual Host Manager, vous pouvez ajouter des hôtes virtuels pour servir vos applications.

Conclusion

Votre installation de Tomcat est terminée! Vous êtes maintenant libre de déployer vos propres applications Web Java!

Actuellement, votre installation de Tomcat est fonctionnelle, mais entièrement non chiffrée. Cela signifie que toutes les données, y compris les éléments sensibles tels que les mots de passe, sont envoyées en texte brut qui peut être intercepté et lu par d'autres parties sur Internet. Afin d'éviter cela, il est fortement recommandé de chiffrer vos connexions avec SSL. Vous pouvez découvrir comment crypter vos connexions à Tomcat en suivantthis guide (note: this guide covers Tomcat 8 encryption on Ubuntu 16.04).