Mam wiele wystąpień tomcat 6 działających na tym samym serwerze (Linux) i działa zgodnie z oczekiwaniami. Próbuję dowiedzieć się, jaka jest standardowa praktyka w zakresie ustawiania zmiennych CATALINA_HOME
i CATALINA_BASE
.
W mojej instalacji tomcat, mam setup CATALINA_HOME
, aby wskazywała „wspólnego” Folder (powiedzmy /tomcat6
) i CATALINA_BASE
zmienna zależy od nazwy instancji (powiedzmy /tomcat_instance1
, /tomcat_instance2
)
Moje pytanie brzmi:
- Czy naprawdę potrzebuję dwóch zmiennych?
- Czy mogę po prostu mieć jeden
CATALINA_HOME
i pozbyć się goCATALINA_BASE
(lub odwrotnie)?
java
tomcat
environment-variables
souser
źródło
źródło
$CATALINA_HOME
) od obsługi konfiguracji i zawartości instancji Tomcat (które są obecne$CATALINA_BASE
).Odpowiedzi:
W przypadku uruchamiania wielu instancji serwera Tomcat na jednym hoście należy ustawić wartość
CATALINA_BASE
równą katalogowi.../tomcat_instance1
lub.../tomcat_instance2
odpowiednio dla każdej instancji iCATALINA_HOME
zmiennej środowiskowej dla wspólnej instalacji Tomcat, której pliki będą współużytkowane między tymi dwoma instancjami.CATALINA_BASE
Środowisko jest obowiązkowe, jeśli uruchomienie pojedynczej instancji Tomcat na hoście i będzie domyślnieCATALINA_HOME
w tej sprawie. Jeśli korzystasz z wielu instancji, tak jak jesteś, należy je podać.Całkiem dobry opis tej konfiguracji znajduje się w
RUNNING.txt
pliku w katalogu głównym dystrybucji Apache Tomcat pod nagłówkiem Advanced Configuration - Multiple Tomcat Instancesźródło
CATALINA_HOME
vsCATALINA_BASE
Jeśli uruchamiasz wiele instancji, potrzebujesz obu zmiennych, w przeciwnym razie tylko
CATALINA_HOME
.Innymi słowy:
CATALINA_HOME
jest wymagane iCATALINA_BASE
opcjonalne.CATALINA_HOME
reprezentuje katalog główny instalacji Tomcat.Zobacz: Apache Tomcat 7 - Wprowadzenie
Działa z osobnym
CATALINA_HOME
iCATALINA_BASE
jest udokumentowane w RUNNING.txt, który mówi:Na przykład:
Wiele instancji Tomcat
Jak sprawdzić
Najłatwiej sprawdzić, co jest Twoje
CATALINA_BASE
iCATALINA_HOME
biegniestartup.sh
np .:Możesz również sprawdzić, gdzie są zainstalowane pliki Tomcat, za pomocą
dpkg
narzędzia jak poniżej (Debian / Ubuntu):źródło
Nie mogę powiedzieć, że znam najlepsze praktyki, ale oto moja perspektywa.
Czy jesteś za pomocą tych zmiennych dla czegokolwiek?
Osobiście nie musiałem zmieniać ani na Linuksie, ani w Windowsie, w różnych środowiskach od programowania do produkcji. Jeśli nie robisz czegoś konkretnego, co na nich polega, prawdopodobnie możesz zostawić ich w spokoju.
catalina.sh
ustawia zmienne, które Tomcat potrzebuje do pracy po wyjęciu z pudełka. Mówi również, żeCATALINA_BASE
jest opcjonalne:# 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.
Jestem prawie pewien, że po uruchomieniu serwera dowiesz się, czy konfiguracja działa, czy nie.
źródło
catalina_home
ścieżkę w\bin\catalina.sh
pliku dla obu instancji tomcat?Wskazanie
CATALINA_BASE
innego katalogu zCATALINA_HOME
umożliwia oddzielenie katalogu konfiguracyjnego od katalogu plików binarnych.Domyślnie
CATALINA_BASE
(konfiguracje) iCATALINA_HOME
(pliki binarne) wskazują ten sam folder, ale oddzielenie konfiguracji od plików binarnych może pomóc w uruchamianiu wielu wystąpień Tomcat obok siebie bez duplikowania plików binarnych.Jest to również przydatne, gdy chcesz zaktualizować pliki binarne bez modyfikowania lub konieczności tworzenia kopii zapasowych / przywracania plików konfiguracyjnych dla Tomcat.
Zaktualizuj 2018
Istnieje teraz łatwiejszy sposób ustawienia CATALINA_BASE za pomocą
makebase
narzędzia. Opublikowałem samouczek na ten temat pod adresem http://blog.rasia.io/blog/how-to-easily-setup-lucee-in-tomcat.html wraz z samouczkiem wideo pod adresem https://youtu.be / nuugoG5c-7MCiąg dalszy oryginalnej odpowiedzi
Aby skorzystać z tej funkcji, po prostu utwórz katalog config i wskaż go za pomocą
CATALINA_BASE
zmiennej środowiskowej. Będziesz musiał umieścić kilka plików w tym katalogu:conf
katalog z oryginalnego katalogu instalacyjnego Tomcat, w tym jego zawartość, i upewnij się, że Tomcat ma do niego uprawnienia do odczytu. Edytuj pliki konfiguracyjne zgodnie ze swoimi potrzebami.logs
katalog, jeśliconf/logging.properties
wskazuje na${catalina.base}/logs
, i upewnij się, że Tomcat ma do niego uprawnienia do odczytu / zapisu.temp
katalog, jeśli nie nadpisujesz wartości domyślnej,$CATALINA_TMPDIR
która wskazuje${CATALINA_BASE}/temp
, i upewnij się, że Tomcat ma do niego uprawnienia do zapisu.work
katalog domyślny${CATALINA_BASE}/work
i upewnij się, że Tomcat ma do niego uprawnienia do zapisu.źródło
CATALINA_BASE jest opcjonalna.
Jednak w następujących scenariuszach pomaga skonfigurować CATALINA_BASE, która jest oddzielna od CATALINA_HOME.
Gdy więcej niż 1 wystąpienie tomcat działa na tym samym hoście
Rozdzielenie obaw (pojedyncza odpowiedzialność)
źródło
To jest folder nadrzędny bin, który zawiera plik tomcat.exe:
CATALINA_HOME='C:\Program Files\Apache Software Foundation\Tomcat 6.0'
CATALINA_BASE
jest taki sam jakCATALINA_HOME
.źródło