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:
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:
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/
:
À 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).