Vraag tomcat - CATALINA_BASE en CATALINA_HOME variabelen


Ik heb meerdere instanties van tomcat 6 op dezelfde server (Linux) en het werkt zoals verwacht. Ik probeer erachter te komen wat de standaardpraktijk is met betrekking tot het instellen van de CATALINA_HOME en CATALINA_BASE variabelen.

In mijn tomcat-installatie heb ik setup CATALINA_HOME om naar een "gewone" map te wijzen (zeg /tomcat6) en de CATALINA_BASE variabele varieert afhankelijk van de naam van het exemplaar (bijvoorbeeld /tomcat_instance1, /tomcat_instance2)

Mijn vraag is dit:

  • Heb ik echt twee variabelen nodig?
  • Of kan ik er gewoon een hebben? CATALINA_HOME en doe ermee weg CATALINA_BASE (of vice versa) ?

74
2018-06-22 05:00


oorsprong


antwoorden:


Als u meerdere exemplaren van Tomcat op één host uitvoert, moet u dit instellen CATALINA_BASE om gelijk te zijn aan de .../tomcat_instance1 of .../tomcat_instance2 directory zoals geschikt voor elke instantie en de CATALINA_HOME omgevingsvariabele voor de gemeenschappelijke Tomcat-installatie waarvan de bestanden tussen de twee instanties worden gedeeld.

De CATALINA_BASE omgeving is optioneel als u een enkele Tomcat-instantie op de host uitvoert en standaard inschakelt CATALINA_HOME in dat geval. Als u meerdere instanties uitvoert zoals u bent, moet dit worden verstrekt.

Er is een redelijk goede beschrijving van deze setup in de RUNNING.txt bestand in de hoofdmap van de Apache Tomcat-distributie onder de kop Geavanceerde configuratie - Meerdere Tomcat-instanties


80
2017-12-21 03:25



CATALINA_HOME vs CATALINA_BASE

Als u meerdere exemplaren uitvoert, hebt u beide variabelen nodig, anders alleen CATALINA_HOME.

Met andere woorden: CATALINA_HOME is verplicht en CATALINA_BASE is optioneel.

CATALINA_HOME vertegenwoordigt de root van uw Tomcat-installatie.

Optioneel kan Tomcat worden geconfigureerd voor meerdere instanties door te definiëren $CATALINA_BASE voor elke instantie. Als meerdere exemplaren niet zijn geconfigureerd, $CATALINA_BASE is hetzelfde als $CATALINA_HOME.

Zien: Apache Tomcat 7 - Introductie

Lopen met apart CATALINA_HOME en CATALINA_BASE is gedocumenteerd in RUNNING.txt die zegt:

De CATALINA_HOME en CATALINA_BASE omgevingsvariabelen worden gebruikt om   specificeer de locatie van Apache Tomcat en de locatie van zijn actieve   configuratie.

U kunt niet configureren CATALINA_HOME en CATALINA_BASE variabelen in de    setenv script, omdat ze worden gebruikt om dat bestand te vinden.

Bijvoorbeeld:

(4.1) Tomcat kan worden gestart door een van de volgende handelingen uit te voeren   commando's:

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

  $CATALINA_HOME/bin/startup.sh           (Unix)

of

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

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

Meerdere Tomcat-instanties

In veel omstandigheden is het wenselijk om een ​​enkele kopie van een   Tomcat binaire distributie gedeeld door meerdere gebruikers op hetzelfde   server. Om dit mogelijk te maken, kunt u de CATALINA_BASE   omgevingsvariabele naar de map met de bestanden voor uw   'persoonlijke' Tomcat-instantie.

Bij het werken met een afzonderlijke CATALINA_HOME en CATALINA_BASE, de   bestanden en mappen zijn als volgt verdeeld:

In CATALINA_BASE:

  • bin - Alleen: setenv.sh (* nix) of setenv.bat (Windows), tomcat-juli.jar
  • conf - Serverconfiguratiebestanden (inclusief server.xml)
  • lib  - Bibliotheken en klassen, zoals hieronder uitgelegd
  • logs - Log en output bestanden
  • webapps - Automatisch geladen webapplicaties
  • work- Tijdelijke werkmappen voor webapplicaties
  • temp - Directory gebruikt door de JVM voor tijdelijke bestanden>

In CATALINA_HOME:

  • bin  - Opstart- en shutdown-scripts
  • lib  - Bibliotheken en klassen, zoals hieronder uitgelegd
  • endorsed - Bibliotheken die standaard "Endorsed Standards" overschrijven. Standaard is het afwezig.

Hoe te controleren

De eenvoudigste manier om te controleren wat jij bent CATALINA_BASE en CATALINA_HOME is door te rennen startup.sh, bijvoorbeeld:

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

Je kunt ook controleren waar de Tomcat-bestanden zijn geïnstalleerd dpkg gereedschap zoals hieronder (Debian / Ubuntu):

dpkg -L tomcat7-common

58
2018-04-01 19:00



Ik kan niet zeggen dat ik de beste werkwijze ken, maar hier is mijn perspectief.

Zijn u deze variabelen voor iets gebruiken?

Persoonlijk hoefde ik noch op Linux, noch op Windows te veranderen in omgevingen variërend van ontwikkeling tot productie. Tenzij u iets speciaals doet dat op hen vertrouwt, is de kans groot dat u hen met rust laat.

catalina.sh stelt de variabelen in die Tomcat nodig heeft om uit de doos te werken. Het zegt ook dat CATALINA_BASE is optioneel:

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

Ik ben er vrij zeker van dat u erachter zult komen of uw installatie werkt wanneer u uw server start.


10
2018-06-22 05:15



wijzend CATALINA_BASE naar een andere map van CATALINA_HOME Hiermee kunt u de configuratiemap van de map binaries scheiden.

Standaard, CATALINA_BASE (configuraties) en CATALINA_HOME (binaries) verwijzen naar dezelfde map, maar als u de configuraties van de binaire bestanden scheidt, kunt u meerdere instanties van Tomcat naast elkaar uitvoeren zonder de binaire bestanden te dupliceren.

Het is ook handig als u de binaire bestanden wilt bijwerken zonder uw configuratiebestanden voor Tomcat te wijzigen of te back-up / herstellen.

Om van deze functie te profiteren, maakt u gewoon de config-map en wijst u ernaar met de CATALINA_BASE omgevingsvariabele. Je zult een aantal bestanden in die map moeten plaatsen:

  • Kopieer de conf map uit de oorspronkelijke Tomcat-installatiemap, inclusief de inhoud ervan, en zorg ervoor dat Tomcat er rechten voor heeft. Bewerk de configuratiebestanden volgens uw behoeften.
  • Maak een logs map als conf/logging.properties wijst naar ${catalina.base}/logs, en zorg ervoor dat Tomcat er lees- en schrijfrechten voor heeft.
  • Maak een temp directory als u de standaardinstelling niet overschrijft $CATALINA_TMPDIR wat wijst naar ${CATALINA_BASE}/tempen zorg ervoor dat Tomcat hiervoor schrijfrechten heeft.
  • Maak een work map die standaard is ingesteld ${CATALINA_BASE}/worken zorg ervoor dat Tomcat hiervoor schrijfrechten heeft.

5
2018-05-22 21:45



CATALINA_BASE is optioneel.

In de volgende scenario's helpt het echter om CATALINA_BASE in te stellen dat los staat van CATALINA_HOME.

  1. Wanneer er meer dan 1 keer een tomcat op dezelfde host wordt uitgevoerd

    • Dit heeft slechts 1 looptijd van de tomcat-installatie, waarbij meerdere CATALINA_BASE-serverconfiguraties op afzonderlijke poorten worden uitgevoerd.
    • Als er een patch- of versie-upgrade nodig is, zijn slechts 1 installatiewijzigingen vereist of moeten deze worden getest / geverifieerd / afgemeld.
  2. Scheiding van zorg (Eén verantwoordelijkheid)

    • Tomcat-runtime is standaard en verandert niet tijdens elk releaseproces. d.w.z. Tomcat binaries
    • Release-proces kan meer dingen toevoegen als webapplicatie (webapps-map), omgevingsconfiguratie (conf-directory), logs / temp / werkmap

0
2017-08-02 15:20



Dat is de bovenliggende map van de bin die het bestand tomcat.exe bevat:

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

CATALINA_BASE is hetzelfde als CATALINA_HOME.


-3
2018-01-05 14:18