Tomcat – Variablen CATALINA_BASE und CATALINA_HOME
Lesezeit: 7 Minuten
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
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
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.
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:
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
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
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.
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.
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.
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
kenorb
Das ist der übergeordnete Ordner von bin, der die Datei tomcat.exe enthält:
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