Tomcat – Variablen CATALINA_BASE und CATALINA_HOME

Lesezeit: 7 Minuten

Benutzer-Avatar
souser

Ich habe mehrere Instanzen von Tomcat 6, die auf demselben Server (Linux) ausgeführt werden, und es funktioniert wie erwartet. Ich versuche herauszufinden, was die Standardpraxis in Bezug auf die Einstellung ist CATALINA_HOME und CATALINA_BASE Variablen.

In meiner Tomcat-Installation habe ich setup CATALINA_HOME auf einen “gemeinsamen” Ordner zeigen (z /tomcat6) und die CATALINA_BASE Variable variiert je nach Instanzname (z /tomcat_instance1, /tomcat_instance2)

Meine Frage ist folgende:

  • Brauche ich wirklich zwei Variablen?
  • Oder kann ich nur einen haben CATALINA_HOME und abmachen
    CATALINA_BASE (oder umgekehrt) ?

  • Die Frage selbst ist wirklich eine Antwort.

    – Koray Tugay

    29. November 2014 um 22:09 Uhr

  • Der Grund, warum Sie dies tun müssen, ist die separate Wartung der Tomcat-Software (die in $CATALINA_HOME) von der Wartung der Tomcat-Instanzkonfiguration und -Inhalte (die in $CATALINA_BASE).

    – reinierpost

    24. September 2015 um 16:43 Uhr


Benutzer-Avatar
Russ

Wenn Sie mehrere Instanzen von Tomcat auf einem einzelnen Host ausführen, sollten Sie Folgendes festlegen CATALINA_BASE gleich sein .../tomcat_instance1 oder .../tomcat_instance2 Verzeichnis entsprechend für jede Instanz und die CATALINA_HOME Umgebungsvariable für die gemeinsame Tomcat-Installation, deren Dateien von den beiden Instanzen gemeinsam genutzt werden.

Das CATALINA_BASE Die Umgebung ist optional, wenn Sie eine einzelne Tomcat-Instanz auf dem Host ausführen, und wird standardmäßig verwendet CATALINA_HOME In diesem Fall. Wenn Sie mehrere Instanzen ausführen, sollte dies bereitgestellt werden.

Es gibt eine ziemlich gute Beschreibung dieses Setups in der RUNNING.txt Datei im Stammverzeichnis der Apache Tomcat-Distribution unter der Überschrift Erweiterte Konfiguration – Mehrere Tomcat-Instanzen

  • Ihr zweiter Absatz ist falsch, wenn Sie den gepackten Tomcat unter Ubuntu verwenden. Es trennt die Tomcat-Software (in $CATALINA_HOME) ordnungsgemäß von der Tomcat-Instanz (in $CATALINA_BASE).

    – reinierpost

    8. Juli 2016 um 8:52 Uhr


Benutzer-Avatar
kenorb

CATALINA_HOME vs CATALINA_BASE

Wenn Sie mehrere Instanzen ausführen, benötigen Sie beide Variablen, sonst nur CATALINA_HOME.

Mit anderen Worten: CATALINA_HOME erforderlich ist und CATALINA_BASE es ist optional.

CATALINA_HOME stellt das Stammverzeichnis Ihrer Tomcat-Installation dar.

Optional kann Tomcat durch Definition für mehrere Instanzen konfiguriert werden $CATALINA_BASE für jede Instanz. Wenn nicht mehrere Instanzen konfiguriert sind, $CATALINA_BASE ist das gleiche wie $CATALINA_HOME.

Sehen: Apache Tomcat 7 – Einführung

Läuft mit separatem CATALINA_HOME und CATALINA_BASE ist in RUNNING.txt dokumentiert, die sagen:

Das CATALINA_HOME und CATALINA_BASE Umgebungsvariablen werden verwendet, um den Speicherort von Apache Tomcat bzw. den Speicherort seiner aktiven Konfiguration anzugeben.

Sie können nicht konfigurieren CATALINA_HOME und CATALINA_BASE Variablen in der
setenv Skript, weil sie verwendet werden, um diese Datei zu finden.

Zum Beispiel:

(4.1) Tomcat kann durch Ausführen eines der folgenden Befehle gestartet werden:

  %CATALINA_HOME%\bin\startup.bat         (Windows)

  $CATALINA_HOME/bin/startup.sh           (Unix)

oder

  %CATALINA_HOME%\bin\catalina.bat start  (Windows)

  $CATALINA_HOME/bin/catalina.sh start    (Unix)

Mehrere Tomcat-Instanzen

In vielen Fällen ist es wünschenswert, eine einzige Kopie einer Tomcat-Binärdistribution zu haben, die von mehreren Benutzern auf demselben Server gemeinsam genutzt wird. Um dies zu ermöglichen, können Sie die CATALINA_BASE
Umgebungsvariable in das Verzeichnis, das die Dateien für Ihre „persönliche“ Tomcat-Instanz enthält.

Beim Laufen mit einem separaten CATALINA_HOME und CATALINA_BASEwerden die Dateien und Verzeichnisse wie folgt aufgeteilt:

Im CATALINA_BASE:

  • bin – Nur: setenv.sh (*nix) oder setenv.bat (Windows), tomcat-juli.jar
  • conf – Serverkonfigurationsdateien (einschließlich server.xml)
  • lib – Bibliotheken und Klassen, wie unten erklärt
  • logs – Protokoll- und Ausgabedateien
  • webapps – Automatisch geladene Webanwendungen
  • work – Temporäre Arbeitsverzeichnisse für Webanwendungen
  • temp – Von der JVM verwendetes Verzeichnis für temporäre Dateien>

Im CATALINA_HOME:

  • bin – Start- und Shutdown-Skripte
  • lib – Bibliotheken und Klassen, wie unten erklärt
  • endorsed – Bibliotheken, die den Standard “Endorsed Standards” außer Kraft setzen. Standardmäßig fehlt es.

Wie zu überprüfen

Der einfachste Weg, um zu überprüfen, was Ihnen gehört CATALINA_BASE und CATALINA_HOME ist durch Laufen startup.shzum Beispiel:

$ /usr/share/tomcat7/bin/startup.sh
Using CATALINA_BASE:   /usr/share/tomcat7
Using CATALINA_HOME:   /usr/share/tomcat7

Sie können auch überprüfen, wo die Tomcat-Dateien installiert sind dpkg Tool wie folgt (Debian/Ubuntu):

dpkg -L tomcat7-common

  • Dies ist eine viel bessere Antwort als die akzeptierte. Sehr gut erklärt.

    – syncdk

    24. Februar 2016 um 21:33 Uhr

  • Erklären Sie bitte, wie Sie mehrere Tomcat-Instanzen mit unterschiedlichen CATALINA_BASE starten können.

    – Markieren

    12. Juli 2017 um 10:32 Uhr

  • CATALINA_BASE und CATALINA_HOME müssen als Systemvariablen gesetzt werden: Windows: set CATALINA_BASE=path

    – Markieren

    13. Juli 2017 um 17:30 Uhr


Benutzer-Avatar
isapir

Zeigen CATALINA_BASE in ein anderes Verzeichnis von CATALINA_HOME ermöglicht es Ihnen, das Konfigurationsverzeichnis vom Binärverzeichnis zu trennen.

Standardmäßig, CATALINA_BASE (Konfigurationen) und CATALINA_HOME (Binärdateien) verweisen auf denselben Ordner, aber das Trennen der Konfigurationen von den Binärdateien kann Ihnen helfen, mehrere Instanzen von Tomcat nebeneinander auszuführen, ohne die Binärdateien zu duplizieren.

Es ist auch nützlich, wenn Sie die Binärdateien aktualisieren möchten, ohne sie zu ändern, oder Ihre Konfigurationsdateien für Tomcat sichern/wiederherstellen müssen.

Aktualisierung 2018

Es gibt jetzt eine einfachere Möglichkeit, CATALINA_BASE mit dem festzulegen makebase Dienstprogramm. Ich habe ein Tutorial zu diesem Thema unter gepostet http://blog.rasia.io/blog/how-to-easily-setup-lucee-in-tomcat.html zusammen mit einem Video-Tutorial unter
https://youtu.be/nuugoG5c-7M

Die ursprüngliche Antwort wird unten fortgesetzt

Um diese Funktion zu nutzen, erstellen Sie einfach das Verzeichnis config und zeigen Sie mit dem darauf CATALINA_BASE Umgebungsvariable. Sie müssen einige Dateien in diesem Verzeichnis ablegen:

  • Kopiere das conf Verzeichnis aus dem ursprünglichen Tomcat-Installationsverzeichnis, einschließlich seines Inhalts, und stellen Sie sicher, dass Tomcat Leseberechtigungen dafür hat. Bearbeiten Sie die Konfigurationsdateien nach Ihren Bedürfnissen.
  • Ein … kreieren logs Verzeichnis wenn conf/logging.properties verweist auf ${catalina.base}/logsund stellen Sie sicher, dass Tomcat über Lese-/Schreibberechtigungen verfügt.
  • Ein … kreieren temp Verzeichnis, wenn Sie den Standardwert von nicht überschreiben $CATALINA_TMPDIR was darauf hindeutet ${CATALINA_BASE}/tempund stellen Sie sicher, dass Tomcat Schreibberechtigungen dafür hat.
  • Ein … kreieren work Verzeichnis, das standardmäßig lautet ${CATALINA_BASE}/workund stellen Sie sicher, dass Tomcat Schreibberechtigungen dafür hat.

  • gute Antwort! Besonders das Bit zum manuellen Konstruieren/Erstellen einer CATALINA_BASE

    – Marco Schulberg

    15. Mai 2021 um 20:45 Uhr

Ich kann nicht sagen, dass ich die beste Methode kenne, aber hier ist meine Perspektive.

Gibt Sie Verwenden Sie diese Variablen für irgendetwas?

Persönlich musste ich weder unter Linux noch unter Windows in Umgebungen wechseln, die von der Entwicklung bis zur Produktion variieren. Wenn Sie nicht etwas Bestimmtes tun, das auf sie angewiesen ist, können Sie sie wahrscheinlich in Ruhe lassen.

catalina.sh setzt die Variablen, die Tomcat benötigt, um sofort einsatzbereit zu sein. Das sagt es auch CATALINA_BASE es ist optional:

#   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.

Ich bin mir ziemlich sicher, dass Sie herausfinden werden, ob Ihr Setup funktioniert, wenn Sie Ihren Server starten.

CATALINA_BASE ist optional.

In den folgenden Szenarien ist es jedoch hilfreich, CATALINA_BASE getrennt von CATALINA_HOME einzurichten.

  1. Wenn mehr als 1 Instanzen von Tomcat auf demselben Host ausgeführt werden

    • Dies hilft, nur eine Laufzeit der Tomcat-Installation zu haben, wobei mehrere CATALINA_BASE-Serverkonfigurationen auf separaten Ports ausgeführt werden.
    • Wenn Patches oder Versions-Upgrades erforderlich sind, sind nur 1 Installationsänderungen erforderlich oder müssen getestet/verifiziert/abgemeldet werden.
  2. Trennung des Konzerns (Einzelverantwortung)

    • Die Tomcat-Laufzeit ist Standard und ändert sich nicht bei jedem Release-Prozess. dh Tomcat-Binärdateien
    • Der Freigabeprozess kann weitere Dinge wie Webapplikation (Webapps-Ordner), Umgebungskonfiguration (Verzeichnis conf), Verzeichnis logs/temp/work hinzufügen

Benutzer-Avatar
kenorb

Das ist der übergeordnete Ordner von bin, der die Datei tomcat.exe enthält:

CATALINA_HOME='C:\Program Files\Apache Software Foundation\Tomcat 6.0'

CATALINA_BASE ist das gleiche wie CATALINA_HOME.

1325170cookie-checkTomcat – Variablen CATALINA_BASE und CATALINA_HOME

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy