tomcat-CATALINA base et CATALINA accueil variables
J'ai plusieurs instances de tomcat 6 fonctionnant sur le même serveur (Linux) et cela fonctionne comme prévu. J'essaie de savoir quelle est la pratique standard en ce qui concerne la définition des variables CATALINA_HOME
et CATALINA_BASE
.
Dans mon installation tomcat, j'ai configuré CATALINA_HOME
pour pointer vers un dossier "commun" (disons /tomcat6
) et la variable CATALINA_BASE
varie en fonction du nom de l'instance (disons /tomcat_instance1
, /tomcat_instance2
)
Ma question est la suivante:
- ai-je vraiment besoin de deux variables?
- ou Puis-je en avoir un
CATALINA_HOME
et en finir avecCATALINA_BASE
(ou vice-versa) ?
6 réponses
Si vous exécutez plusieurs instances de Tomcat sur un seul hôte, vous devez définir CATALINA_BASE
comme étant égal au répertoire .../tomcat_instance1
ou .../tomcat_instance2
approprié pour chaque instance et à la variable d'environnement CATALINA_HOME
de L'installation commune de Tomcat dont les fichiers seront partagés entre les deux instances.
L'environnement CATALINA_BASE
est facultatif si vous exécutez une seule instance Tomcat sur l'hôte et sera par défaut CATALINA_HOME
dans ce cas. Si vous exécutez plusieurs instances comme vous, il devrait être fourni.
Il y a une assez bonne description de cette configuration dans le fichier RUNNING.txt
à la racine de la distribution Apache Tomcat sous la rubrique Advanced Configuration - multiple Tomcat Instances
CATALINA_HOME
vs CATALINA_BASE
Si vous exécutez plusieurs instances, vous avez besoin des deux variables, sinon seulement CATALINA_HOME
.
En d'autres termes: CATALINA_HOME
est nécessaire et CATALINA_BASE
est facultatif.
CATALINA_HOME
représente la racine de votre installation Tomcat.
En Option, Tomcat peut être configuré pour plusieurs instances en définissant
$CATALINA_BASE
pour chaque instance. Si plusieurs instances ne sont pas configurées,$CATALINA_BASE
est identique à$CATALINA_HOME
.
Voir: Apache Tomcat 7-Introduction
L'exécution avec CATALINA_HOME
et CATALINA_BASE
séparés est documentée dans L'exécution.txt qui disent:
Les variables d'environnement
CATALINA_HOME
etCATALINA_BASE
sont utilisées pour spécifiez L'emplacement D'Apache Tomcat et l'emplacement de son actif configuration, respectivement.Vous ne pouvez pas configurer les variables
CATALINA_HOME
etCATALINA_BASE
dans lesetenv
script, car ils sont utilisés pour trouver ce fichier.
Par exemple:
(4.1) de Tomcat peut être démarré en exécutant l'une des opérations suivantes commandes:
%CATALINA_HOME%\bin\startup.bat (Windows) $CATALINA_HOME/bin/startup.sh (Unix)
Ou
%CATALINA_HOME%\bin\catalina.bat start (Windows) $CATALINA_HOME/bin/catalina.sh start (Unix)
Plusieurs Instances Tomcat
Dans de nombreuses circonstances, il est souhaitable d'avoir une seule copie d'un Tomcat distribution binaire partagée entre plusieurs utilisateurs sur le même serveur. Pour rendre cela possible, vous pouvez définir le
CATALINA_BASE
variable d'environnement dans le répertoire qui contient les fichiers "personnel" instance Tomcat.Lors de l'exécution avec un séparez
CATALINA_HOME
etCATALINA_BASE
, Le les fichiers et répertoires sont divisés comme suit:Dans
CATALINA_BASE
:
bin
- seulement: setenv.sh (*nix) ou setenv.chauve-souris (Windows), tomcat-juli.jarconf
- fichiers de configuration du serveur (y compris le serveur.xml)lib
- bibliothèques et classes, comme expliqué ci-dessouslogs
- journaux et fichiers de Sortiewebapps
- applications web chargées automatiquementwork
- Travail Temporaire répertoires pour applications webtemp
- répertoire utilisé par la JVM pour les fichiers temporaires >Dans
CATALINA_HOME
:
bin
- scripts de démarrage et d'arrêtlib
- bibliothèques et classes, comme expliqué ci-dessousendorsed
- bibliothèques qui remplacent la norme "normes approuvées". Par défaut, il est absent.
Comment vérifier
La façon la plus simple de vérifier ce qui est votre CATALINA_BASE
et {[4] } est en exécutant startup.sh
, par exemple:
$ /usr/share/tomcat7/bin/startup.sh
Using CATALINA_BASE: /usr/share/tomcat7
Using CATALINA_HOME: /usr/share/tomcat7
Vous pouvez également vérifier où les fichiers Tomcat sont installés, par l'outil dpkg
comme ci-dessous (Debian / Ubuntu):
dpkg -L tomcat7-common
Je ne peux pas dire que je connais les meilleures pratiques, mais voici mon point de vue.
Est-ce que Vous utilisez ces variables pour n'importe quoi?
Personnellement, je n'ai pas eu besoin de changer non plus, sous Linux ou Windows, dans des environnements variant du développement à la production. Sauf si vous faites quelque chose de particulier qui repose sur eux, les chances sont que vous pourriez les laisser seuls.
catalina.sh
définit les variables dont Tomcat a besoin pour fonctionner hors de la boîte. Il dit aussi que CATALINA_BASE
est facultatif:
# CATALINA_HOME May point at your Catalina "build" directory.
#
# CATALINA_BASE (Optional) Base directory for resolving dynamic portions
# of a Catalina installation. If not present, resolves to
# the same directory that CATALINA_HOME points to.
Je suis sûr que vous saurez si votre configuration fonctionne ou non lorsque vous démarrez votre serveur.
Pointer CATALINA_BASE
Vers un répertoire différent de CATALINA_HOME
vous permet de séparer le répertoire de configuration du répertoire binaires.
Par défaut, CATALINA_BASE
(configurations) et CATALINA_HOME
(binaires) pointent vers le même dossier, mais séparer les configurations des binaires peut vous aider à exécuter plusieurs instances de Tomcat côte à côte sans dupliquer les binaires.
Il est également utile lorsque vous souhaitez mettre à jour les binaires, sans les modifier ou avoir besoin de sauvegarder / restaurer vos fichiers de configuration pour Tomcat.
Mise à jour 2018
Il existe un moyen plus simple de définir CATALINA_BASE maintenant avec l'utilitaire makebase
. J'ai posté un tutoriel qui couvre ce sujet à http://blog.rasia.io/blog/how-to-easily-setup-lucee-in-tomcat.html avec un tutoriel vidéo à
https://youtu.be/nuugoG5c-7M
Réponse originale suite ci-dessous
Pour profiter de cette fonctionnalité, créez simplement le répertoire de configuration et pointez-le avec la variable d'environnement CATALINA_BASE
. Vous devrez mettre des fichiers dans ce répertoire:
- Copiez le répertoire
conf
à partir du répertoire D'installation Tomcat d'origine, y compris son contenu, et assurez-vous que Tomcat dispose d'autorisations de lecture. Modifier les fichiers de configuration en fonction de vos besoins. - créez un répertoire
logs
Siconf/logging.properties
pointe vers${catalina.base}/logs
et assurez-vous que Tomcat dispose d'autorisations de lecture/écriture. - créez un répertoire
temp
si vous ne remplacez pas la valeur par défaut de {[11] } qui pointe vers${CATALINA_BASE}/temp
, et s'assure que Tomcat dispose d'autorisations d'écriture. - créez un répertoire
work
qui vaut par défaut${CATALINA_BASE}/work
et assurez-vous que Tomcat dispose d'autorisations d'écriture.
CATALINA_BASE est facultatif.
Cependant, dans les scénarios suivants, il est utile de configurer CATALINA_BASE qui est séparé de CATALINA_HOME.
-
Lorsque plus de 1 instances de tomcat sont en cours d'exécution sur le même hôte
- Cela permet d'avoir seulement 1 runtime d'installation de tomcat, avec plusieurs configurations de serveur CATALINA_BASE exécutées sur des ports séparés.
- si un correctif, ou une mise à niveau de version doit être, seulement 1 modifications d'installation requises, ou doivent être testé / vérifié / approuvé.
-
Séparation des préoccupations (responsabilité Unique)
- Tomcat runtime est standard et ne change pas à chaque processus de publication. c'est à dire les binaires Tomcat
- Le processus de publication peut ajouter plus de choses comme webapplication (dossier webapps), configuration de l'environnement (répertoire conf), logs/temp/répertoire de travail
C'est le dossier parent de bin qui contient tomcat.fichier exe:
CATALINA_HOME='C:\Program Files\Apache Software Foundation\Tomcat 6.0'
CATALINA_BASE
est le même que CATALINA_HOME
.