CATALINA_HOME vs. CATALINA_BASE

11

Nie mogę znaleźć ostatecznej odpowiedzi na pytanie, dlaczego Ubuntu ustawia CATALINA_BASEzmienną środowiskową, odróżniając ją od tego CATALINA_HOME. Znalazłem ten dokument, który sugeruje, że brak ustawienia CATALINA_BASEbędzie równoznaczny z CATALINA_HOME. Dokument ten sugeruje również, że należy wprowadzić ustawienia CATALINA_BASE, aby udostępnić wiele instancji.

Wydaje mi się jednak, że nie jestem w stanie znaleźć niczego, co by to wyjaśniało. Prawdopodobnie praca z jednym CATALINA_HOMEbyła dobra od dawna, ale Ubuntu się zmieniło.

Znalazłem to pytanie z krytym świetlnej odpowiedź na AskUbuntu ale nie ma wiele specjalnie na CATALINA_HOMEwersetach CATALINA_BASE. To pytanie odnosi się do parametru „appBase”, który jest udokumentowany w dokumentacji Tomcat6 dla kontenera Host w pliku konfiguracyjnym.

Oto pytania: Dlaczego te dwie zmienne są rozdzielone? Kiedy należy je rozdzielić? Co to pozwala administratorowi? Co następnie umieszczasz w każdym katalogu? Kiedy te dwie zmienne powinny być takie same? Co ASF zaleca dla standardowej praktyki?

Mei
źródło
Podobne: askubuntu.com/q/43226/256002
Basil Bourque,

Odpowiedzi:

12

Dlaczego te dwie zmienne są rozdzielone?

catalina.home wskazuje na lokalizację wspólnych informacji.
catalina.base wskazuje katalog, w którym przechowywane są wszystkie informacje specyficzne dla instancji .

Masz więc 1 dom i możesz mieć więcej niż 1 bazę.

Kiedy należy je rozdzielić? Kiedy te dwie zmienne powinny być takie same?

Jeśli masz 1 kocura, możesz ustawić go na tę samą wartość, ale dobra praktyka sugeruje, abyś planował z wyprzedzeniem i trzymał je oddzielnie: nigdy nie wiesz, czy potrzebujesz więcej niż jednego kocura. Ubuntu zaczął postępować zgodnie z tym sposobem myślenia, ponieważ jest bardziej logiczny: ułatwia uruchamianie 2+ kocurów, ale nie wyłącza uruchamiania 1 tomkatów, gdzie ustawienie ich obu na tę samą wartość wymagałoby od wszystkich edycji wartości podstawowej. Bardziej sensowne jest odróżnienie ich.

Co to pozwala administratorowi?

Pozwól, aby więcej niż 1 tomcat działało w tym samym czasie, gdy każda instancja tomcat może mieć własne aplikacje.

Co następnie umieszczasz w każdym katalogu?

Dom zawiera binairy.
Baza zawiera conf, logi, aplikacje internetowe, pracę i temp. 1 na każdą instancję tomcat.

Rinzwind
źródło
4

CATALINA_HOME vs CATALINA_BASE

Jeśli korzystasz z wielu instancji, potrzebujesz obu zmiennych, w przeciwnym razie tylko CATALINA_HOME.

Innymi słowy: CATALINA_HOMEjest wymagany i CATALINA_BASEjest opcjonalny.

CATALINA_HOME reprezentuje katalog główny instalacji Tomcat.

Opcjonalnie Tomcat można skonfigurować dla wielu instancji, definiując $CATALINA_BASEdla każdej instancji. Jeśli wiele instancji nie jest skonfigurowanych, $CATALINA_BASEoznacza to samo co $CATALINA_HOME.

Zobacz: Apache Tomcat 7 - Wprowadzenie

Działa z osobnym CATALINA_HOMEi CATALINA_BASEjest udokumentowany w RUNNING.txt, który mówi:

Te CATALINA_HOMEi CATALINA_BASEzmienne środowiskowe są wykorzystywane do określania położenia Apache Tomcat i lokalizację swojej aktywnej konfiguracji, odpowiednio.

Nie można skonfigurować CATALINA_HOMEi CATALINA_BASEzmiennych w setenvskrypcie, ponieważ służą one do znalezienia tego pliku.

Na przykład:

(4.1) Tomcat można uruchomić, wykonując jedno z następujących poleceń:

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

  $CATALINA_HOME/bin/startup.sh           (Unix)

lub

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

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

Wiele instancji Tomcat

W wielu okolicznościach pożądane jest, aby jedna kopia dystrybucji binarnej Tomcat była współużytkowana przez wielu użytkowników na tym samym serwerze. Aby to umożliwić, można ustawić CATALINA_BASE zmienną środowiskową na katalog zawierający pliki dla „osobistej” instancji Tomcat.

Podczas pracy z oddzielnym CATALINA_HOMEi CATALINA_BASEpliki i katalogi są dzielone w następujący sposób:

W CATALINA_BASE:

  • bin - Tylko: setenv.sh (* nix) lub setenv.bat (Windows), tomcat-juli.jar
  • conf - Pliki konfiguracyjne serwera (w tym server.xml)
  • lib - Biblioteki i klasy, jak wyjaśniono poniżej
  • logs - Pliki dziennika i wyjściowe
  • webapps - Automatycznie ładowane aplikacje internetowe
  • work - Tymczasowe katalogi robocze dla aplikacji internetowych
  • temp - Katalog używany przez JVM dla plików tymczasowych>

W CATALINA_HOME:

  • bin - Skrypty uruchamiania i zamykania
  • lib - Biblioteki i klasy, jak wyjaśniono poniżej
  • endorsed- Biblioteki, które zastępują standardowe „Zatwierdzone standardy”. Domyślnie jest nieobecny.

Jak sprawdzić

Najprostszym sposobem sprawdzenia, jaka jest twoja CATALINA_BASEi CATALINA_HOMEjest uruchomiony startup.sh, na przykład:

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

Możesz również sprawdzić, gdzie są zainstalowane pliki Tomcat, za pomocą dpkgnarzędzia jak poniżej (Debian / Ubuntu):

dpkg -L tomcat7-common
kenorb
źródło
3

Oprócz tego, że jest najlepszym sposobem na uruchomienie dwóch instancji tomcat, ułatwia aktualizację.

Korzystam z tej konfiguracji.

<!-- language: bash -->

/opt/apache-tomcat-7.0-32
/opt/apache-tomcat-7.0.39
/opt/apache-tomcat-7       (simbolic link to apache-tomcat-7.0.32)

CATALINA_HOME = / opt / apache-tomcat-7

/srv/user_deploys/tomcat_product_a
/srv/user_deploys/tomcat_product_b

CATALINA_BASE wskazuje na jeden lub drugi katalog wdrażania.

Podstawowe dane binarne i biblioteki są na /opt/po prostu skopiować server.xml, web.xml(i niektórych innych plików, czytać dokumenty, proszę) i tworzyć katalogi bin, dzienniki, webapps, temp, pracy (RTLM, L jak Prześliczne, proszę)

Możesz zaktualizować pliki binarne tomcat, modyfikując CATALINA_HOMEplik $ CATALINA_BASE / bin / setenv.sh dla każdej instancji lub możesz po prostu zmodyfikować dowiązanie symboliczne, aktualizując pliki binarne „globalnie”

Łatwiej jest zaktualizować, nawet jeśli masz tylko jedną instancję.

Dario nudny
źródło