Création d'un serveur Tomcat

Pré-requis

Disposer des droits d'administrationDisposer d'une connexion à Internet configurée et activée.

Installation

Installez les paquets tomcat7,libapache2-mod-php5 ou en ligne de commande :

$ sudo apt install tomcat7 libapache2-mod-php5

Autre possibilité : téléchargez Tomcat sur http://tomcat.apache.org/download-70.cgi Dans Binary Distributions/Core, choisir le lien tar.gz. Le placer, par exemple, dans le dossier /home/$USER/Téléchargements. Pour l'installer sur un Raspberry, le copier via scp vers un répertoire du Raspberry Pi : $ scp ~/Téléchargements/apache-tomcat-[version].tar.gz pi@framboise:/home/pi Allez dans le répertoire de téléchargement et décompressez l’archive téléchargée vers le répertoire /usr/local : $ cd /home/$USER/Téléchargements $ sudo tar -zxvf apache-tomcat-v.x.y.tar.gz Cela y fait apparaître un répertoire apache-tomcat-v.x.y/. Déplacez ce répertoire et créez le lien tomcat : $ sudo mv apache-tomcat-v.x.y/ /usr/local/ $ sudo ln -s /usr/local/apache-tomcat-v.x.y /usr/local/tomcat Créez l'utilisateur tomcat avec le mot de passe tomcat : $ sudo adduser tomcat ... Ajout de l'utilisateur « tomcat » ... Ajout du nouveau groupe « tomcat » (1001) ... Ajout du nouvel utilisateur « tomcat » (1001) avec le groupe « tomcat » ... Le répertoire personnel « /home/tomcat » existe déjà. Rien n'est copié depuis « /etc/skel ». ... Entrez le nouveau mot de passe UNIX : Retapez le nouveau mot de passe UNIX : passwd : le mot de passe a été mis à jour avec succès Modification des informations relatives à l'utilisateur tomcat Entrez la nouvelle valeur ou « Entrée » pour conserver la valeur proposée Nom complet []: N° de bureau []: Téléphone professionnel []: Téléphone personnel []: Autre []: Ces informations sont-elles correctes ? [O/n] $ Et rendez-le propriétaire des répertoires de tomcat : $ cd /usr/local/tomcat $ sudo chown -R tomcat:tomcat . $ sudo chmod -R 6770 . Pour pouvoir intervenir sans être root, rendre l'utilisateur $USER membre du groupe tomcat : $ sudo usermod -aG tomcat $USER Attention à mettre le -a : sinon, $USER changera de groupe au lieu d'ajouter tomcat

Configuration

Sauvegarde du site

$ sudo mkdir /usr/local/tomcat/oldwebapps
$ sudo mv /usr/local/tomcat/webapps/* /usr/local/tomcat/oldwebapps/

Utilisateurs et mots de passe

L'installation a créé un utilisateur tomcat7 sans droit.

Pour gérer tomcat, nous allons créer un utilisateur tomcat.

Pour cela, éditez avec les droits d'administration le fichier /etc/tomcat7/tomcat-users.xml pour ajouter entre les balises tomcat-users les lignes suivantes :

... <tomcat-users> # ... <role rolename="tomcat"/> <role rolename="admin-gui"/> <role rolename="manager-gui"/> <user username="tomcat" password="XXXXXX" roles="tomcat,admin-gui,manager-gui"/> </tomcat-users> ...

-> L'utilisateur tomcat a pour mot de passe XXXXXX, ses rôles sont tomcat, admin-gui et manager-gui.

Fichiers

<VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot /var/www <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> Alias /phppgadmin /usr/share/phppgadmin ErrorLog ${APACHE_LOG_DIR}/error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>

...
127.0.0.1	localhost.localdomain	localhost	framboise	framboise.local

Fichier de démarrage du serveur Catalina pour Tomcat :

#!/bin/sh # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You under the Apache License, Version 2.0 # (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ----------------------------------------------------------------------------- # Start Script for the CATALINA Server # ----------------------------------------------------------------------------- # Better OS/400 detection: see Bugzilla 31132 os400=false case "`uname`" in OS400*) os400=true;; esac # resolve links - $0 may be a softlink PRG="$0" while [ -h "$PRG" ] ; do ls=`ls -ld "$PRG"` link=`expr "$ls" : '.*-> \(.*\)$'` if expr "$link" : '/.*' > /dev/null; then PRG="$link" else PRG=`dirname "$PRG"`/"$link" fi done PRGDIR=`dirname "$PRG"` EXECUTABLE=catalina.sh # Check that target executable exists if $os400; then # -x will Only work on the os400 if the files are: # 1. owned by the user # 2. owned by the PRIMARY group of the user # this will not work if the user belongs in secondary groups eval else if [ ! -x "$PRGDIR"/"$EXECUTABLE" ]; then echo "Cannot find $PRGDIR/$EXECUTABLE" echo "The file is absent or does not have execute permission" echo "This file is needed to run this program" exit 1 fi fi exec "$PRGDIR"/"$EXECUTABLE" start "$@"

Script de démarrage pour OpenClinica :

#!/bin/bash # # tomcat # # chkconfig: 2345 90 15 # description: Tomcat start script for OpenClinica. # # # # Change the variables below if they do not mee your environment. RETVAL=$? export INIT_NAME="tomcat" export CATALINA_HOME="/usr/local/tomcat" export JAVA_HOME="/usr/local/java" #please note that -#XX:ParallelGCThreads need to be equivalent of number of cores export JAVA_OPTS="$JAVA_OPTS -Xmx1280m -XX:+UseParallelGC -XX:ParallelGCThreads=1 -XX:MaxPermSize=180m -XX:+CMSClassUnloadingEnabled" case "$1" in start) ps ax | grep "$CATALINA_HOME" | grep "$JAVA_HOME" |grep -v grep | awk '{printf $1 " "}' | wc | awk '{print $2}' > /tmp/$INIT_NAME_process_count.txt read line < /tmp/$INIT_NAME_process_count.txt if [ $line -gt 0 ]; then echo "Tomcat is already running with a PID of `ps ax | grep "$CATALINA_HOME" | grep "$JAVA_HOME" | awk '{printf $1 " "}'`" else if [ -f $CATALINA_HOME/bin/startup.sh ]; then echo $"Starting Tomcat" /bin/su tomcat $CATALINA_HOME/bin/startup.sh fi /etc/init.d/$INIT_NAME status fi ;; stop) ps ax | grep "$CATALINA_HOME" | grep "$JAVA_HOME" |grep -v grep | awk '{printf $1 " "}' | wc | awk '{print $2}' > /tmp/$INIT_NAME_process_count.txt read line < /tmp/$INIT_NAME_process_count.txt if [ $line -gt 0 ]; then if [ -f $CATALINA_HOME/bin/shutdown.sh ]; then echo $"Stopping Tomcat" /bin/su tomcat $CATALINA_HOME/bin/shutdown.sh fi sleep 10 /etc/init.d/$INIT_NAME status else echo echo "Tomcat was not running" echo fi ;; restart) /etc/init.d/$INIT_NAME stop /etc/init.d/$INIT_NAME start ;; status) ps ax | grep "$CATALINA_HOME" | grep "$JAVA_HOME" |grep -v grep | awk '{printf $1 " "}' | wc | awk '{print $2}' > /tmp/$INIT_NAME_process_count.txt read line < /tmp/$INIT_NAME_process_count.txt if [ $line -gt 0 ]; then echo echo -n "Tomcat is running with a PID of "` ps ax | grep "$CATALINA_HOME" | grep "$JAVA_HOME" | awk '{printf $1 " "}'` echo -n "" echo else echo echo "Tomcat is not running" echo fi ;; kill) PID=`ps aux | grep "$CATALINA_HOME" | grep "$JAVA_HOME" | awk '{printf $2 " "}'` echo echo "Killing Tomcat process running on PID $PID" echo kill $PID sleep 10 echo "Confirming tomcat is killed" /etc/init.d/$INIT_NAME status ;; forcekill) PID=`ps ax | grep "$CATALINA_HOME" | grep "$JAVA_HOME" |awk '{printf $1 " "}'` echo echo "Killing Tomcat process running on PID $PID" echo kill -9 $PID sleep 10 echo "Confirming tomcat is killed" /etc/init.d/$INIT_NAME status ;; *) echo $"Usage: $0 {start|stop|restart|status|kill|forcekill}" exit 1 ;; esac exit $RETVAL

Derniers réglages

Numéro de port

Pour changer le numéro de port, ouvrez avec les droits d'administration le fichier /usr/local/tomcat/conf/server.xml pour le modifier comme ceci : localisez la balise Connector et changez l'attribut port.

Test

Démarrez le serveur Tomcat:

$ sudo /usr/local/tomcat/bin/startup.sh

Ouvrir dans un navigateur l'adresse

en local : http://localhost:8080sur internet : http://<adresse_du_site>:8080La page de tomcat doit s'afficher :

Démarrage et arrêt

Au lancement de la machine

Cf. la page Faire un Demon (ou service) sous Linux

Pour que tomcat se lance automatiquement à chaque démarrage, éditez avec les droits d'administration le fichier /etc/init.d/tomcat pour y écrire ceci :

#!/bin/sh start() { /usr/local/tomcat/bin/startup.sh echo "start" } stop() { /usr/local/tomcat/bin/shutdown.sh echo "stop" } restart() { stop; sleep 1; start; } status() { ps ax | grep "$CATALINA_HOME" | grep "$JAVA_HOME" |grep -v grep | awk '{printf $1 " "}' | wc | awk '{print $2}' > /tmp/$INIT_NAME_process_count.txt read line < /tmp/$INIT_NAME_process_count.txt if [ $line -gt 0 ]; then echo echo -n "Tomcat tourne avec un PID = "`ps ax | grep "$CATALINA_HOME" | grep "$JAVA_HOME" | awk '{printf $1 " "}'` echo -n "" echo else echo echo "Tomcat ne tourne pas" echo fi } case $1 in start) start;; stop) stop;; restart) restart;; status) status;; *) start;; esac

Éditez avec les droits d'administration le fichier /usr/local/tomcat/bin/setenv.sh avec le contenu suivant :

INIT_NAME=tomcat JAVA_HOME=/usr/local/java JRE_HOME=/usr/local/java/jre

Voici celui fourni avec openclinica :

#!/bin/bash # # tomcat # # chkconfig: 2345 90 15 # description: Tomcat start script for OpenClinica. # # # # Change the variables below if they do not mee your environment. RETVAL=$? export INIT_NAME="tomcat" export CATALINA_HOME="/usr/local/tomcat" export JAVA_HOME="/usr/local/java" #please note that -#XX:ParallelGCThreads need to be equivalent of number of cores export JAVA_OPTS="$JAVA_OPTS -Xmx1280m -XX:+UseParallelGC -XX:ParallelGCThreads=1 -XX:MaxPermSize=180m -XX:+CMSClassUnloadingEnabled" case "$1" in start) ps ax | grep "$CATALINA_HOME" | grep "$JAVA_HOME" |grep -v grep | awk '{printf $1 " "}' | wc | awk '{print $2}' > /tmp/$INIT_NAME_process_count.txt read line < /tmp/$INIT_NAME_process_count.txt if [ $line -gt 0 ]; then echo "Tomcat is already running with a PID of `ps ax | grep "$CATALINA_HOME" | grep "$JAVA_HOME" | awk '{printf $1 " "}'`" else if [ -f $CATALINA_HOME/bin/startup.sh ]; then echo $"Starting Tomcat" /bin/su tomcat $CATALINA_HOME/bin/startup.sh fi /etc/init.d/$INIT_NAME status fi ;; stop) ps ax | grep "$CATALINA_HOME" | grep "$JAVA_HOME" |grep -v grep | awk '{printf $1 " "}' | wc | awk '{print $2}' > /tmp/$INIT_NAME_process_count.txt read line < /tmp/$INIT_NAME_process_count.txt if [ $line -gt 0 ]; then if [ -f $CATALINA_HOME/bin/shutdown.sh ]; then echo $"Stopping Tomcat" /bin/su tomcat $CATALINA_HOME/bin/shutdown.sh fi sleep 10 /etc/init.d/$INIT_NAME status else echo echo "Tomcat was not running" echo fi ;; restart) /etc/init.d/$INIT_NAME stop /etc/init.d/$INIT_NAME start ;; status) ps ax | grep "$CATALINA_HOME" | grep "$JAVA_HOME" |grep -v grep | awk '{printf $1 " "}' | wc | awk '{print $2}' > /tmp/$INIT_NAME_process_count.txt read line < /tmp/$INIT_NAME_process_count.txt if [ $line -gt 0 ]; then echo echo -n "Tomcat is running with a PID of "` ps ax | grep "$CATALINA_HOME" | grep "$JAVA_HOME" | awk '{printf $1 " "}'` echo -n "" echo else echo echo "Tomcat is not running" echo fi ;; kill) PID=`ps aux | grep "$CATALINA_HOME" | grep "$JAVA_HOME" | awk '{printf $2 " "}'` echo echo "Killing Tomcat process running on PID $PID" echo kill $PID sleep 10 echo "Confirming tomcat is killed" /etc/init.d/$INIT_NAME status ;; forcekill) PID=`ps ax | grep "$CATALINA_HOME" | grep "$JAVA_HOME" |awk '{printf $1 " "}'` echo echo "Killing Tomcat process running on PID $PID" echo kill -9 $PID sleep 10 echo "Confirming tomcat is killed" /etc/init.d/$INIT_NAME status ;; *) echo $"Usage: $0 {start|stop|restart|status|kill|forcekill}" exit 1 ;; esac exit $RETVAL

copiez le fichier /usr/local/tomcat/bin/startup.sh dans /etc/init.d, rendez-le exécutable et ajoutez-le à la liste des programmes au démarrage par les commandes :

$ sudo cp /usr/local/tomcat/bin/startup.sh /etc/init.d/tomcat
$ sudo chmod a+x /etc/init.d/startup.sh
$ sudo update-rc.d tomcat defaults

Manuellement

Pour démarrer le serveur Tomcat, de tapez la commande :

$ sudo /usr/local/tomcat/bin/startup.sh

Pour l'arrêter, tapez la commande :

$ sudo /usr/local/tomcat/bin/shutdown.sh

Utilisation

Lancez l'application via le tableau de bord ou via le terminal

Désinstallation

Pour supprimer cette application, il suffit de supprimer son paquet.

Voir aussi

(fr) http://

Contributeurs principaux : Jamaique.

Basé sur « Titre original de l'article » par Auteur Original.