{{tag>Precise Quantal BROUILLON}} ====== 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 **[[apt>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]] {{ logiciel:internet:tomcat:tomcat-01.png?400 |}} 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 : ... # ... ... -> L'utilisateur **tomcat** a pour mot de passe **XXXXXX**, ses rôles sont **tomcat**, **admin-gui** et **manager-gui**. ==== Fichiers ==== ServerAdmin webmaster@localhost DocumentRoot /var/www Options FollowSymLinks AllowOverride None Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all 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 ... 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:8080]] * sur internet : [[http://:8080]] La page de tomcat doit s'afficher : {{ logiciel:internet:tomcat:tomcat-02.png?400 |}} ===== Démarrage et arrêt ===== ==== Au lancement de la machine ==== Cf. la page [[tutoriel:linux:demon]] 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 : [[utilisateurs:jamaique]].// //Basé sur [[http://www.document_source.com|« Titre original de l'article »]] par Auteur Original.//