Table des matières
Création d'un serveur Tomcat
Pré-requis
- Disposer des droits d'administration
- Disposer 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 :
- /usr/local/tomcat/conf/tomcat-users.xml
... <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
- /etc/apache2/sites-available/default
<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>
- /etc/hosts
... 127.0.0.1 localhost.localdomain localhost framboise framboise.local
Fichier de démarrage du serveur Catalina pour Tomcat :
- bin/startup.sh
#!/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:8080
- sur internet : http://<adresse_du_site>:8080
La 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 :
- /etc/init.d/tomcat
#!/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 :
- /usr/local/tomcat/bin/setenv.sh
INIT_NAME=tomcat JAVA_HOME=/usr/local/java JRE_HOME=/usr/local/java/jre
Voici celui fourni avec openclinica :
- /etc/init.d/tomcat
#!/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.