Wyszukiwanie w witrynie

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.