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 avec CATALINA_BASE (ou vice-versa) ?
76
demandé sur isapir 2010-06-22 09:00:42

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

82
répondu Russ 2013-02-14 07:24:46

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 et CATALINA_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 et CATALINA_BASE dans le setenv 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 et CATALINA_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.jar
  • conf - fichiers de configuration du serveur (y compris le serveur.xml)
  • lib - bibliothèques et classes, comme expliqué ci-dessous
  • logs - journaux et fichiers de Sortie
  • webapps - applications web chargées automatiquement
  • work - Travail Temporaire répertoires pour applications web
  • temp - répertoire utilisé par la JVM pour les fichiers temporaires >

Dans CATALINA_HOME:

  • bin - scripts de démarrage et d'arrêt
  • lib - bibliothèques et classes, comme expliqué ci-dessous
  • endorsed - 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
61
répondu kenorb 2015-04-01 19:15:56

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.

11
répondu Lauri Lehtinen 2010-06-22 05:15:59

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 Si conf/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.
6
répondu isapir 2018-09-05 06:17:13

CATALINA_BASE est facultatif.

Cependant, dans les scénarios suivants, il est utile de configurer CATALINA_BASE qui est séparé de CATALINA_HOME.

  1. 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é.
  2. 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
1
répondu Amit Kaneria 2016-08-02 15:20:48

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.

-4
répondu Guru 2015-04-01 18:38:06