Jak zainstalować Apache Tomcat w Ubuntu
Jeśli chcesz uruchamiać strony internetowe zawierające kodowanie stron serwera Java lub serwlety Java, możesz użyć Apache Tomcat. Jest to serwer WWW i kontener serwletów o otwartym kodzie źródłowym, wydany przez Apache Software Foundation.
Tomcat może być używany jako samodzielny produkt, z własnym serwerem internetowym lub może być połączony z innymi serwerami internetowymi, takimi jak Apache lub IIS. Najnowsza wersja Tomcat to 9.0.14 i opiera się na Tomcat 8 i 8.5 oraz implementuje Servlet 4.0, JSP 2.2.
Przeczytaj także: Jak zainstalować Apache Tomcat 9 w CentOS/RHEL
W nowej wersji wprowadzono następujące ulepszenia:
- Dodano obsługę protokołu HTTP/2.
- Dodano obsługę korzystania z OpenSSL dla obsługi TLS ze złączami JSSE.
- Dodano obsługę wirtualnych hostów TLS (SNI).
W tym samouczku pokażemy, jak zainstalować Apache Tomcat 9 w Ubuntu 18.10 i starszej wersji Ubuntu.
Krok 1: Instalacja Javy
Aby uruchamiać aplikacje internetowe Java, Tomcat wymaga zainstalowania na serwerze języka Java. Aby spełnić ten wymóg, zainstalujemy OpenJDK, jak pokazano.
sudo apt update
sudo apt install default-jdk
Krok 2: Tworzenie użytkownika Tomcat
Ze względów bezpieczeństwa Tomcat powinien być uruchamiany na nieuprzywilejowanym użytkowniku, tj. innym niż root. Dlatego stworzymy użytkownika i grupę Tomcat, która będzie uruchamiać usługę. Zacznij od utworzenia grupy Tomcat:
sudo groupadd tomcat
Następnie utworzymy użytkownika Tomcat, który będzie członkiem grupy Tomcat. Lokalizacją domową tego użytkownika będzie /opt/tomcat, ponieważ tutaj będziemy instalować Tomcat. Powłoka ustawiona na /bin/false:
sudo useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat
Teraz jesteśmy gotowi, aby przejść do następnego kroku i pobrać Tomcat.
Krok 3: Instalowanie Apache Tomcat
Aby pobrać najnowszy dostępny pakiet, przejdź do strony pobierania Tomcat i pobierz najnowszą wersję.
W chwili pisania tego samouczka najnowsza wersja Tomcat to 9.0.14. Aby pobrać tę wersję, zmień bieżący katalog na inny. Na przykład możesz użyć /tmp:
cd /tmp
A następnie za pomocą polecenia wget, aby pobrać archiwum Tomcat:
wget http://apache.cbox.biz/tomcat/tomcat-9/v9.0.14/bin/apache-tomcat-9.0.14.tar.gz
wget https://www.apache.org/dist/tomcat/tomcat-9/v9.0.14/bin/apache-tomcat-9.0.14.tar.gz.sha512
Jeśli chcesz zweryfikować sumę sha512 pliku, możesz uruchomić:
sha512sum apache-tomcat-9.0.14.tar.gz
cat apache-tomcat-9.0.14.tar.gz.sha512
Wynikowa wartość (hash) dla obu plików powinna być taka sama.
Jak wspomniano wcześniej, zainstalujemy Tomcat w /opt/tomcat. Będziemy musieli utworzyć ten katalog:
sudo mkdir /opt/tomcat
A teraz możemy wyodrębnić pobrany pakiet w tym nowym katalogu:
sudo tar xzvf apache-tomcat-9.0.14.tar.gz -C /opt/tomcat --strip-components=1
Teraz przejdź do /opt/tomcat, skąd zaktualizujemy własność folderu i uprawnienia:
cd /opt/tomcat
I ustaw właściciela grupy /opt/tomcat na tomcat:
sudo chgrp -R tomcat /opt/tomcat
Następnie zaktualizujemy dostęp do odczytu grupy Tomcat w katalogu conf i ustawimy uprawnienia do wykonywania dla katalogu:
sudo chmod -R g+r conf
sudo chmod g+x conf
Następnie uczynimy użytkownika Tomcat właścicielem katalogów webapps, work, temp i logs:
sudo chown -R tomcat webapps/ work/ temp/ logs/
Teraz ustawiono odpowiednie uprawnienia i prawa własności i jesteśmy gotowi do utworzenia systemowego pliku startowego, który pomoże nam zarządzać procesem Tomcat.
Krok 4: Tworzenie pliku usługi SystemD dla Tomcat
Ponieważ chcemy uruchomić Tomcat jako usługę, będziemy potrzebować pliku, który pomoże nam łatwo zarządzać procesem. W tym celu utworzymy plik usługi systemowej. Tomcat będzie musiał wiedzieć, gdzie w systemie znajduje się Java.
Aby znaleźć tę lokalizację, użyj następującego polecenia:
sudo update-java-alternatives -l
Dane wyjściowe tego polecenia pokażą lokalizację JAVA_HOME.
Teraz, korzystając z tych informacji, jesteśmy gotowi utworzyć plik usługi Tomcat.
sudo vim /etc/systemd/system/tomcat.service
Wklej poniższy kod do pliku:
[Unit]
Description=Apache Tomcat Web Application Container
After=network.target
[Service]
Type=forking
Environment=JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-amd64
Environment=CATALINA_PID=/opt/tomcat/temp/tomcat.pid
Environment=CATALINA_HOME=/opt/tomcat
Environment=CATALINA_BASE=/opt/tomcat
Environment='CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC'
Environment='JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom'
ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh
User=tomcat
Group=tomcat
UMask=0007
RestartSec=10
Restart=always
[Install]
WantedBy=multi-user.target
Upewnij się, że ustawiłeś JAVA_HOME na wersję dla swojego systemu. Kiedy będziesz gotowy, zapisz plik i zamknij go. Teraz za pomocą poniższego polecenia załaduj ponownie demona systemd, aby mógł znaleźć nasz nowy plik usługi:
sudo systemctl daemon-reload
Następnie uruchom usługę Tomcat:
sudo systemctl start tomcat
Status usługi możesz sprawdzić za pomocą:
sudo systemctl status tomcat
Możesz teraz przetestować Tomcat w swojej przeglądarce, używając adresu IP systemu, a następnie domyślnego portu usługi 8080.
http://ip-address:8080
Wynik, który powinieneś zobaczyć, będzie podobny do tego pokazanego na obrazku poniżej:
Jeśli nie widzisz powyższych wyników, może być konieczne zezwolenie na port 8080 w zaporze ogniowej, jak pokazano.
sudo ufw allow 8080
Jeśli chcesz, aby Tomcat uruchamiał się podczas uruchamiania systemu, uruchom:
systemctl enable tomcat
Krok 5: Konfiguracja Apache Tomcat
Tomcat ma preinstalowaną aplikację do zarządzania siecią. Aby z niego skorzystać, musimy skonfigurować uwierzytelnianie w naszym pliku tomcat-users.xml. Otwórz i edytuj ten plik za pomocą ulubionego edytora tekstu:
sudo vim /opt/tomcat/conf/tomcat-users.xml
Zamierzamy dodać użytkownika, który będzie miał dostęp do interfejsów menedżer i administrator. Aby skonfigurować takiego użytkownika, pomiędzy tagami
dodaj następujący wiersz:
<user username="Username" password="Password" roles="manager-gui,admin-gui"/>
Pamiętaj o zmianie:
- Nazwa użytkownika – z użytkownikiem, którego chcesz uwierzytelnić.
- Hasło – hasło, którego chcesz używać do uwierzytelniania.
Ponieważ domyślnie dostęp do Menedżera hostów i Menedżera jest ograniczony, będziemy chcieli usunąć lub zmienić te ograniczenia. Aby dokonać takich zmian możesz załadować następujące pliki:
W przypadku aplikacji Menedżer:
sudo vim /opt/tomcat/webapps/manager/META-INF/context.xml
W przypadku aplikacji Menedżer hostów:
sudo vim /opt/tomcat/webapps/host-manager/META-INF/context.xml
Wewnątrz tych plików możesz albo skomentować ograniczenie adresu IP, albo zezwolić na umieszczenie tam swojego publicznego adresu IP. Na potrzeby tego samouczka skomentowałem linię:
Aby wprowadzić zmiany w życie, załaduj ponownie usługę Tomcat za pomocą:
sudo systemctl restart tomcat
Możesz teraz przetestować aplikację menedżera, wchodząc na stronę http://ipaddress:8080/manager/. Gdy pojawi się monit o podanie nazwy użytkownika i hasła, użyj tych, które skonfigurowałeś wcześniej. Interfejs, który powinieneś zobaczyć, wygląda następująco:
Aby uzyskać dostęp do Menedżera hostów, możesz użyć adresu http://ip-address:8080/host-manager/.
Za pomocą menedżera hostów wirtualnych możesz tworzyć hosty wirtualne dla aplikacji Tomcat.
Krok 6: Testowanie Apache Tomcat poprzez utworzenie pliku testowego
Możesz sprawdzić, czy wszystko działa poprawnie, tworząc plik testowy w katalogu /opt/tomcat/webapps/ROOT/.
Stwórzmy taki plik:
sudo vim /opt/tomcat/webapps/ROOT/tecmint.jsp
Wewnątrz tego pliku wklej następujący kod:
<html>
<head>
<title>Tecmint post:TomcatServer</title>
</head>
<body>
<START OF JAVA CODES>
<%
out.println("Hello World! I am running my first JSP Application");
out.println("<BR>Tecmint is an Awesome online Linux Resource.");
%>
<END OF JAVA CODES>
</body>
</html>
Zapisz plik i ustaw własność, jak pokazano.
sudo chown tomcat: /opt/tomcat/apache-tomcat-8.5.14/webapps/ROOT/tecmint.jsp
Teraz załaduj ten plik do przeglądarki, używając adresu http://ip-address:8080/tecmint.jsp.
Otóż to! Zakończyłeś konfigurację serwera Apache Tomcat i uruchomiłeś swój pierwszy kod Java. Mamy nadzieję, że proces ten był dla Ciebie łatwy i prosty. Jeśli napotkasz jakiekolwiek problemy, podziel się nimi za pomocą formularza komentarza poniżej.