Ce didacticiel vous montre comment installer Tomcat 8.5 sur CentOS 7. Tomcat est une implémentation open source des technologies Java Servlet, JavaServer Pages, Java Expression Language et Java WebSocket.
Prérequis #
Avant de commencer ce didacticiel, assurez-vous que vous êtes connecté à votre serveur avec un compte utilisateur avec des privilèges sudo ou avec l'utilisateur root. Il est recommandé d'exécuter les commandes administratives en tant qu'utilisateur sudo au lieu de root. Si vous n'avez pas d'utilisateur sudo sur votre système, créez-en un en suivant ces instructions.
Installer OpenJDK #
Tomcat 8.5 nécessite Java SE 7 ou version ultérieure. Dans ce tutoriel, nous allons installer OpenJDK 8, l'implémentation open-source de la plate-forme Java qui est le développement et l'exécution Java par défaut dans CentOS 7.
L'installation est simple et directe :
sudo yum install java-1.8.0-openjdk-devel
Créer le numéro d'utilisateur du système Tomcat
L'exécution de Tomcat en tant qu'utilisateur root présente un risque de sécurité et n'est pas recommandée. Au lieu de cela, nous allons créer un nouvel utilisateur système et un groupe avec le répertoire personnel /opt/tomcat
qui exécutera le service Tomcat :
sudo useradd -m -U -d /opt/tomcat -s /bin/false tomcat
Télécharger Tomcat #
Nous téléchargerons la dernière version de Tomcat 8.5.x à partir de la page de téléchargement de Tomcat. Au moment de la rédaction, la dernière version est la 8.5.37. Avant de passer à l'étape suivante, vous devez vérifier la page de téléchargement pour toute nouvelle version.
Passez au /tmp
répertoire et utilisez wget pour télécharger le fichier zip :
cd /tmp
wget http://www-us.apache.org/dist/tomcat/tomcat-8/v8.5.37/bin/apache-tomcat-8.5.37.zip
Une fois le téléchargement terminé, extrayez le fichier zip et déplacez-le vers le /opt/tomcat
répertoire :
unzip apache-tomcat-*.zip
sudo mkdir -p /opt/tomcat
sudo mv apache-tomcat-8.5.37 /opt/tomcat/
Tomcat 8.5 est fréquemment mis à jour. Pour avoir plus de contrôle sur les versions et les mises à jour, nous allons créer un lien symbolique latest
qui pointera vers le répertoire d'installation de Tomcat :
sudo ln -s /opt/tomcat/apache-tomcat-8.5.37 /opt/tomcat/latest
L'utilisateur tomcat que nous avons précédemment configuré doit avoir accès au répertoire tomcat. Modifiez la propriété du répertoire en utilisateur et groupe tomcat :
sudo chown -R tomcat: /opt/tomcat
Créez les scripts dans bin
répertoire exécutable en émettant le chmod
suivant commande :
sudo sh -c 'chmod +x /opt/tomcat/latest/bin/*.sh'
Créer un fichier d'unité systemd #
Pour exécuter Tomcat en tant que service, créez un tomcat.service
fichier d'unité dans le /etc/systemd/system/
répertoire avec le contenu suivant :
[Unit]
Description=Tomcat 8.5 servlet container
After=network.target
[Service]
Type=forking
User=tomcat
Group=tomcat
Environment="JAVA_HOME=/usr/lib/jvm/jre"
Environment="JAVA_OPTS=-Djava.security.egd=file:///dev/urandom"
Environment="CATALINA_BASE=/opt/tomcat/latest"
Environment="CATALINA_HOME=/opt/tomcat/latest"
Environment="CATALINA_PID=/opt/tomcat/latest/temp/tomcat.pid"
Environment="CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC"
ExecStart=/opt/tomcat/latest/bin/startup.sh
ExecStop=/opt/tomcat/latest/bin/shutdown.sh
[Install]
WantedBy=multi-user.target
Avertissez systemd que nous avons créé un nouveau fichier d'unité et démarrez le service Tomcat en exécutant :
sudo systemctl daemon-reload
sudo systemctl start tomcat
Vérifiez l'état du service avec la commande suivante :
sudo systemctl status tomcat
tomcat.service - Tomcat 8.5 servlet container
Loaded: loaded (/etc/systemd/system/tomcat.service; disabled; vendor preset: disabled)
Active: active (running) since Sat 2018-03-31 16:30:48 UTC; 3s ago
Process: 23826 ExecStart=/opt/tomcat/latest/bin/startup.sh (code=exited, status=0/SUCCESS)
Main PID: 23833 (java)
CGroup: /system.slice/tomcat.service
└─23833 /usr/lib/jvm/jre/bin/java -Djava.util.logging.config.file=/opt/tomcat/latest/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.security.egd=fi...
S'il n'y a pas d'erreurs, vous pouvez activer le démarrage automatique du service Tomcat au démarrage :
sudo systemctl enable tomcat
Ajuster le pare-feu #
Si votre serveur est protégé par un pare-feu et que vous souhaitez accéder à l'interface tomcat depuis l'extérieur du réseau local, ouvrez le port 8080
.
Utilisez les commandes suivantes pour ouvrir le port nécessaire :
Dans la plupart des cas, lors de l'exécution de Tomcat dans un environnement de production, vous utiliserez un équilibreur de charge ou un proxy inverse. La meilleure pratique pour autoriser l'accès au portsudo firewall-cmd --zone=public --permanent --add-port=8080/tcp
sudo firewall-cmd --reload
8080
uniquement à votre réseau interne. Configurer l'interface de gestion Web Tomcat #
À ce stade, Tomcat est installé et nous pouvons y accéder avec un navigateur Web sur le port 8080
, mais nous ne pouvons pas accéder à l'interface de gestion Web car nous n'avons pas encore créé d'utilisateur.
Les utilisateurs Tomcat et leurs rôles sont définis dans le tomcat-users.xml
fichier.
Si vous ouvrez le fichier, vous remarquerez qu'il est rempli de commentaires et d'exemples décrivant comment configurer le fichier.
sudo nano /opt/tomcat/latest/conf/tomcat-users.xml
Pour ajouter un nouvel utilisateur qui pourra accéder à l'interface Web de tomcat (manager-gui et admin-gui), nous devons définir l'utilisateur dans tomcat-users.xml
fichier comme indiqué ci-dessous. Assurez-vous de changer le nom d'utilisateur et le mot de passe pour quelque chose de plus sûr :
<tomcat-users>
<!--
Comments
-->
<role rolename="admin-gui"/>
<role rolename="manager-gui"/>
<user username="admin" password="admin_password" roles="admin-gui,manager-gui"/>
</tomcat-users>
Par défaut, l'interface de gestion Web de Tomcat est configurée pour autoriser l'accès uniquement à partir de l'hôte local. Si vous souhaitez pouvoir accéder à l'interface Web à partir d'une adresse IP distante ou de n'importe où, ce qui n'est pas recommandé car il s'agit d'un risque de sécurité, vous pouvez ouvrir les fichiers suivants et apporter les modifications suivantes.
Si vous avez besoin d'accéder à l'interface Web de n'importe où, ouvrez les fichiers suivants et commentez ou supprimez les lignes surlignées en jaune :
/opt/tomcat/latest/webapps/manager/META-INF/context.xml<Context antiResourceLocking="false" privileged="true" >
<!--
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
-->
</Context>
/opt/tomcat/latest/webapps/host-manager/META-INF/context.xml<Context antiResourceLocking="false" privileged="true" >
<!--
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
-->
</Context>
Si vous avez besoin d'accéder à l'interface Web uniquement à partir d'une adresse IP spécifique, au lieu de commenter les blocs, ajoutez votre adresse IP publique à la liste. Supposons que votre adresse IP publique soit 41.41.41.41
et vous souhaitez autoriser l'accès uniquement à partir de cette adresse IP :
<Context antiResourceLocking="false" privileged="true" >
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|41.41.41.41" />
</Context>
/opt/tomcat/latest/webapps/host-manager/META-INF/context.xml<Context antiResourceLocking="false" privileged="true" >
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|41.41.41.41" />
</Context>
La liste des adresses IP autorisées est une liste séparée par une barre verticale |
. Vous pouvez ajouter des adresses IP uniques ou utiliser des expressions régulières.
Redémarrez le service Tomcat pour que les modifications prennent effet :
sudo systemctl restart tomcat
Tester l'installation #
Ouvrez votre navigateur et tapez :http://<your_domain_or_IP_address>:8080
Une fois l'installation réussie, un écran semblable à celui-ci apparaît :
Le tableau de bord du gestionnaire d'applications Web Tomcat est disponible sur http://<your_domain_or_IP_address>:8080/manager/html
. À partir de là, vous pouvez déployer, annuler le déploiement, démarrer, arrêter et recharger vos applications.
Le tableau de bord du gestionnaire d'hôte virtuel Tomcat est disponible sur http://<your_domain_or_IP_address>:8080/host-manager/html
. À partir de là, vous pouvez créer, supprimer et gérer des hôtes virtuels Tomcat.