Wdrożenie TOMCAT

Pobranie pakietu

Wchodzimy na witrynę http://www.tomcat.apache.org i pobieramy odpowiadającą nam wersję. Ja pobieram najnowszą na dany moment. Wersje zip i tar.gz to spakowany serwer Tomcat, którego instalacja będzie się sprowadzała w zasadzie tylko do odpakowania go i nadania odpowiednich uprawnień. Ta wersja działa zarówno dla systemu Windows jak i Linux. Foldery instalacyjne zawierają zarówno skrypty .bat jak i .sh. Istnieje też możliwość pobrania wersji instalacyjnej dla systemu Windows. Niestety nie ma gotowych pakietów RPM lub DEB.

Wybrałem wersję ZIP, pobrałem i rozpakowałem w katalogu w którym Tomcat będzie się docelowo znajdował. Po rozpakowaniu powinniśmy zobaczyć podkatalogi bin,conf, lib, logs, temp, webapps i work.

W systemie Linux musimy jeszcze dodać uprawnienia do uruchamiania skryptów z podkatalogu bin – to tutaj znajdują się wszystkie niezbędne do uruchamiania, zatrzymywania i konfiguracji Tomcata skrypty.

 

Zgodność serwera z wersjami JDK i API

 

Pierwsze uruchomienie

Startowanie, zatrzymywanie serwera i podgląd bieżących logów Aby uruchomić serwer Tomcat należy wykonać skrypt startup.sh (lub startup.bat w systemie Windows) znajdujący się w podkatalogi BIN. Z użyciem narzędzia tail możemy podejrzeć logi serwera aby sprawdzić czy serwer uruchomił się poprawnie.

Wystarczy wywołać tail -f logs/catalina.out:

W systemie Windows również możemy zainstalować windowsową adaptację programu Tail dostępną pod adresem http://tailforwin32.sourceforge.net/ . W logach powinniśmy zobaczyć dwa wpisy takie jak zaznaczone na powyższej ilustracji. Pierwszy zaznaczony fragment odnosi się do portu na którym uruchomiony zostaje serwer Tomcat, domyślnie jest to port 8080. Drugi to informacja o poprawnym wystartowaniu serwera.

Gdyby podczas uruchamiania okazało że start serwera nie powiódł się, może to być (i najczęściej jest) spowodowane zajętością któregoś z używanych przez Tomcata portów. Przede wszystkim sprawdź czy dostępny jest port 8080, jeśli tak to sprawdź czy możesz tymczasowo wyłączyć blokującą usługę, a jeśli nie to zmień port nasłuchu Tomcata na inny. Tomcat domyślnie potrzebuje też portu 8005. Możesz tego dokonać edytując plik server.xml znajdujący się w podkatalogu conf. Proces ten szczegółowo został opisany w jednym z kolejnych rozdziałów.

Aby zatrzymać serwer, wystarczy wywołać skrypt shutdown.sh znajdujący się w podkatalogu BIN.

 

Po uruchomieniu serwera warto jeszcze sprawdzić czy faktycznie nasłuchuje na wskazanym porcie. Możemy zrobić to przy użyciu narzędzia NMAP w systemie Linux lub ZenMap w systemie Windows (https://nmap.org/zenmap/).

Jeśli wszystko jest w porządku wprowadź w przeglądarce adres http://localhost:8080/ (lub inna wartość zamiast 8080 w przypadku zmiany portu nasłuchu). Powinieneś zobaczyć stronę startową Tomcata:

 

 

Wykorzystanie skryptu catalina.sh

Zamiast posługiwać się skryptami startup.sh i shutdown.sh możemy uruchamiać i zatrzymywać serwer Tomcat z użyciem skryptu catalina.sh również znajdującego się w podkatalogu bin. Daje nam to dodatkową możliwość kierowania strumienia logów, sprawdzenia wersji Tomcata czy debuggowanie, a także uruchomienia Tomcata z alternatywnym plikiem konfiguracyjnym. Aby skrypt ten działał poprawnie, potrzebujemy mieć zainstalowane JDK (najlepiej w najnowszej wersji) i ustawioną zmienną środowiskową JAVA_HOME. Poniżej podaję sposób instalacji pakietu Oracle JDK w wersji 8.

 

Instalacja najnowszego Oracle JDK

Przechodzimy do podkatalogu w którym ma się znaleźć plik instalacyjny JDK i z użyciem polecenia wget pobieramy odpowiedni pakiet:

Następnie instalujemy pakiet:

rpm -ivh jdk-8u102-linux-x64.rpm

Jeśli mamy zainstalowany inny pakiet Java (np. samo JRE) warto jeszcze przestawić domyślną Javę na tę właśnie zainstalowaną. Wydajemy poniższą komendę i wybieramy javę która nam odpowiada:

alternatives --config java

 

Ustawianie zmiennych środowiskowych JAVA_HOME i PATH

Sprawdźmy na początku czy aby zmiennej JAVA_HOME nie mamy już ustawionej, oraz czy ścieżka do katalogu JDK nie jest już dodana do zmiennej PATH. Aby sprawdzić zmienną JAVA_HOME wystarczy wywołać polecenie:

echo $JAVA_HOME

 

Jeśli zmienna jest pusta, musimy ją ustawić.

Aby sprawdzić zawartość zmiennej PATH wywołujemy analogiczne polecenie:

echo $PATH

 

Ustawiamy obie zmienne w ramach naszej konsoli:

export JAVA_HOME=/usr/java/jdk1.8.0_102/

export PATH=$PATH:/usr/java/jdk1.8.0_102/bin

Upewniamy się czy zmienne faktycznie zostały ustawione:

Ta metoda sprawi jednak że wszystko będzie działało tylko w ramach aktualnej sesji w aktualnej konsoli, warto więc zadbać o to by zmienne te były ustawiane również przy starcie systemu.

Aby zmienne ustawiały się również przy starcie systemu tworzymy plik java.sh w katalogu /etc/profile.d i uzupełniamy następującą treścią:

#!/bin/bash

JAVA_HOME=/usr/java/jdk1.8.0_102/

PATH=$PATH:$JAVA_HOME/bin

export JAVA_HOME

export PATH

Nadajemy skryptowi uprawienia uruchamiania:

chmod +x /etc/profile.d/java.sh

Po uruchomieniu sprawdź czy na pewno zmienne środowiskowe są poprawnie ustawione.

 

Uruchamianie serwera z przekierowaniem logów do pliku dziennika

Wracając do obsługi skryptu catalina, możemy wywołać ten skrypt z przełącznikiem start co spowoduje standardowe uruchomienie serwera Tomcat z przekierowaniem logów do pliku dziennika catalina.out (znajdującego się w podkatalogu LIB). Serwer uruchomi się w dokładnie taki sam sposób jak w przypadku wywołania skryptu startup.sh

./catalina.sh start

 

Zatrzymanie serwera z użyciem skryptu catalina.sh

Do zatrzymania serwera używamy przełącznika stop:

./catalina.sh stop

 

Uruchomienie serwera z przekierowaniem logów na konsolę

Możemy także uruchomić skrypt catalina z przełącznikiem run:

./catalina.sh run

sprawi to że Tomcat zostanie uruchomiony, ale logi serwera zostaną przekierowane na konsolę z której uruchamialiśmy skrypt catalina. Jest to o tyle wygodne że nie musimy dodatkowo uruchamiać kolejnej komendy w celu podglądu logów, jednak jeśli przerwiemy działanie skryptu np. uruchamiając kombinację CTRL+C działanie serwera zostanie przerwane!

 

Sprawdzanie wersji serwera Tomcat oraz wersji używanego przez niego JDK

Aby sprawdzić wersję serwera Tomcat wystarczy wywołać skrypt catalina z przełącznikiem version:

./catalina.sh version

 

Opcje uruchomieniowe dla skrytu CATALINA

 

JAVA_OPTS

Zmienna środowiskowa JAVA_OPTS jest dostępna dla wszystkich procesów JAVA, włącznie z serwerem Tomcat. Można z jej użyciem ustawić np. kodowanie z użyciem którego będą czytane pliki:

export JAVA_OPTS=”-Dfile.encoding=utf-8”

Jeśli po wyeksportowaniu tego ustawienia, z tej samej konsoli uruchomisz Tomcata, możesz być pewien że dla niego te ustawienia będą zastosowane. Możesz także zmodyfikować plik /etc/profile.d/ tak by ustawienia te były stosowane zawsze, w tym dla serwera Tomcat uruchamianego automatycznie razem ze startem systemu. Pamiętaj jednak że to ustawienie dotyczy wszystkich procesów JAVA na danej maszynie.

CATALINA_OPTS

Jeśli chciałbyś ustawić jakieś opcje uruchomieniowe tylko dla serwera Tomcat, możesz posłużyć się zmienną środowiskową CATALINA_OPTS. Ta opcja jest najczęściej wykorzystywana do ustawienia dostępnej dla Tomcata pamięci operacyjnej co ustawia się w ten sposób:

export CATALINA_OPTS = „-Xms256m -Xmx1g -XX:MaxPermSize=265m”

Pamiętaj że jest to ustawienie dla aktualnej konsoli, natomiast ten parametr podobnie jak JAVA_OPTS możesz ustawić w /etc/profile.d/. Taki sam wpis możesz dodać także w pliku catalina.sh – zadziała identycznie.

Aby zmiany zadziałały, musisz zrestartować serwer Tomcat.

Parametry XMS, XMX i XX:MaxPermSize

Parametr XMS określa minimalną ilość pamięci która ma zostać zaalokowana dla wirtualnej maszyny Javy na potrzeby uruchamianych aplikacji – w tym serwera Tomcat. Pamiętaj że jeśli określisz wartość większą niż dostępna, serwer Tomcat nie uruchomi się. Domyślna wartość tego parametru to 64MB.

Parametr XMX określa maksymalną ilość pamięci jaką może zająć wirtualna maszyna Javy na potrzeby uruchamianych aplikacji – w tym serwera Tomcat. Domyślna wartość tego parametru to 64MB.

Parametr XX:MaxPermSize określa maksymalną dostępną pamięć na potrzeby samej Javy. Nie zawiera się w ramach XMS ani XMX – funkcjonuje niejako „obok”.

Jednostki podajemy z użyciem k,m lub g określającym odpowiednio kilobajty, megabajty i gigabajty. Wirtualna maszyna startując zaalokuje przestrzeń określoną parametrem XMS i będzie ją w razie potrzeby zwiększać aż do osiągnięcia wartości określanej przez XMX. Jeśli dysponujesz dużą ilością pamięci operacyjnej, możesz ustawić te dwa parametry na taką samą wartość. Dzięki temu nie będziemy wytracać czasu na alokowanie kolejnych fragmentów pamięci.

CATALINA_OUT

Tym parametrem możemy zmienić domyślne miejsce zrzucania logów. Jeśli tego nie zmienimy, wszystkie logi będą lądowały w logs/catalina.out

CATALINA_TMPDIR

Tym parametrem możemy zmienić lokalizację na tymczasowe pliki tworzone przez serwer Tomcat. Domyślnie jest ustawiony podkatalog temp serwera.

JAVA_HOME

Miejsce instalacji Javy. 

Ten artykuł jest elementem poniższych kursów: