{{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.//