Kako namestiti Apache Tomcat v Ubuntu


Če želite zagnati spletne strani, ki vključujejo kodiranje strani strežnika Java ali strežnike Java, lahko uporabite Apache Tomcat. Gre za odprtokodni spletni strežnik in vsebnik servlet, ki ga je izdala Apache Software Foundation.

Tomcat se lahko uporablja kot samostojen izdelek z lastnim spletnim strežnikom ali pa ga lahko kombinirate z drugimi spletnimi strežniki, kot sta Apache ali IIS. Najnovejša različica Tomcata je 9.0.14 in temelji na Tomcatu 8 in 8.5 ter izvaja Servlet 4.0, JSP 2.2.

V novi različici so bile narejene naslednje izboljšave:

  • Dodana podpora za HTTP/2.
  • Dodana podpora za uporabo OpenSSL za podporo TLS s priključki JSSE.
  • Dodana podpora za navidezne gostitelje TLS (SNI).

V tej vadnici vam bomo pokazali, kako namestiti Apache Tomcat 9 v Ubuntu 18.10 in starejšo različico Ubuntuja.

1. korak: Namestitev Jave

Za zagon spletnih aplikacij Java potrebuje Tomcat namestitev Jave na strežnik. Za izpolnitev te zahteve bomo namestili OpenJDK, kot je prikazano.

$ sudo apt update
$ sudo apt install default-jdk

2. korak: Ustvarjanje uporabnika Tomcat

Zaradi varnostnih razlogov je treba Tomcat zagnati z neprivilegiranim uporabnikom, tj. Brez korenskega. Zato bomo ustvarili uporabnika in skupino tomcat, ki bo izvajala storitev. Začnite z ustvarjanjem skupine tomcat:

$ sudo groupadd tomcat

Nato bomo ustvarili uporabnika tomcat, ki bo član skupine tomcat. Domača lokacija tega uporabnika bo /opt /tomcat, saj bomo tukaj namestili Tomcat. Lupina je nastavljena na /bin /false:

$ sudo useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat

Zdaj smo pripravljeni, da nadaljujemo z naslednjim korakom in naložimo Tomcat.

3. korak: Namestitev Apache Tomcat

Če želite prenesti najnovejši razpoložljivi paket, pojdite na Tomcatovo stran za prenos in vzemite najnovejšo različico.

V času pisanja te vadnice je najnovejša različica Tomcata 9.0.14. Če želite prenesti to različico, spremenite svoj trenutni imenik v nekaj drugega. Uporabite lahko na primer /tmp:

# cd /tmp

Nato z ukazom wget naložite arhiv 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

Če želite preveriti vsoto datoteke sha512, ki jo lahko zaženete:

$ sha512sum apache-tomcat-9.0.14.tar.gz
$ cat apache-tomcat-9.0.14.tar.gz.sha512

Nastala vrednost (razpršitev) za obe datoteki mora biti enaka.

Kot smo že omenili, bomo namestili Tomcat v /opt /tomcat. Ta imenik bomo morali ustvariti:

$ sudo mkdir /opt/tomcat

In zdaj lahko v tem novem imeniku izvlečemo preneseni paket:

$ sudo tar xzvf apache-tomcat-9.0.14.tar.gz -C /opt/tomcat --strip-components=1

Zdaj se pomaknite do /opt /tomcat, od koder bomo posodobili lastništvo mape in dovoljenja:

# cd /opt/tomcat

Lastnika skupine /opt /tomcat nastavite na tomcat:

$ sudo chgrp -R tomcat /opt/tomcat

Nato bomo v imeniku conf posodobili dostop za branje skupine tomcat in v imenik nastavili dovoljenja za izvajanje:

$ sudo chmod -R g+r conf
$ sudo chmod g+x conf

Nato bomo uporabniku tomcat postavili lastnika imenikov webapps, work, temp in logs:

$ sudo chown -R tomcat webapps/ work/ temp/ logs/

Zdaj so določena ustrezna dovoljenja in lastništva in pripravljeni smo ustvariti sistemsko začetno datoteko, ki nam bo pomagala pri upravljanju procesa Tomcat.

4. korak: Ustvarjanje storitvene datoteke SystemD za Tomcat

Ker želimo Tomcat zagnati kot storitev, bomo morali imeti datoteko, ki nam bo olajšala upravljanje procesa. V ta namen bomo ustvarili sistemsko datoteko storitve. Tomcat bo moral vedeti, kje se Java nahaja v vašem sistemu.

Če želite najti to lokacijo, uporabite naslednji ukaz:

$ sudo update-java-alternatives -l

Izhod tega ukaza vam pokaže lokacijo JAVA_HOME.

Zdaj smo z uporabo teh podatkov pripravljeni ustvariti datoteko storitve Tomcat.

$ sudo vim  /etc/systemd/system/tomcat.service

V datoteko prilepite spodnjo kodo:

[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

Ne pozabite nastaviti JAVA_HOME s tistim za vaš sistem. Ko ste pripravljeni, shranite datoteko in jo zaprite. Zdaj s spodnjim ukazom znova naložite demon systemd, da bo našel našo novo datoteko storitve:

$ sudo systemctl daemon-reload

Nato zaženite storitev Tomcat:

$ sudo systemctl start tomcat

Stanje storitve lahko preverite z:

$ sudo systemctl status tomcat

Zdaj lahko v brskalniku preizkusite Tomcat z uporabo naslova IP vašega sistema, ki mu sledijo privzeta vrata storitve 8080.

http://ip-address:8080

Rezultat, ki bi ga morali videti, je podoben tistemu, ki je prikazan na spodnji sliki:

Če zgornjega izhoda ne vidite, boste morda morali v požarnem zidu dovoliti vrata 8080, kot je prikazano.

$ sudo ufw allow 8080

Če želite, da se Tomcat zažene ob zagonu sistema, zaženite:

$ systemctl enable tomcat

5. korak: Konfiguriranje Apache Tomcat

Tomcat ima vnaprej nameščeno aplikacijo za spletno upravljanje. Če ga želimo uporabiti, bomo morali v datoteki tomcat-users.xml nastaviti avtentikacijo. Odprite in uredite to datoteko s svojim najljubšim urejevalnikom besedil:

$ sudo vim /opt/tomcat/conf/tomcat-users.xml

Dodali bomo uporabnika, ki bo imel dostop do vmesnikov upravitelja in skrbnika. Če želite konfigurirati takega uporabnika, med oznakami dodajte naslednjo vrstico:

<user username="Username" password="Password" roles="manager-gui,admin-gui"/>

Ne pozabite spremeniti:

  • Uporabniško ime - z uporabnikom, ki ga želite preveriti.
  • Geslo - z geslom, ki ga želite uporabiti za preverjanje pristnosti.

Ker je privzeto omejen dostop do upravitelja gostiteljev in upravitelja, bomo te omejitve morali odstraniti ali spremeniti. Če želite narediti takšne spremembe, lahko naložite naslednje datoteke:

Za aplikacijo Manager:

$ sudo vim /opt/tomcat/webapps/manager/META-INF/context.xml

Za aplikacijo Host manager:

$ sudo vim /opt/tomcat/webapps/host-manager/META-INF/context.xml

V teh datotekah lahko komentirate omejitev IP ali dovolite svoj javni naslov IP. Za namene te vadnice sem komentiral vrstico:

Če želite, da bodo naše spremembe v živo, znova naložite storitev tomcat z:

$ sudo systemctl restart tomcat 


Zdaj lahko preizkusite aplikacijo upravitelja z dostopom do http:// ipaddress: 8080/manager/. Ko boste pozvani k vnosu uporabniškega imena in gesla, uporabite tiste, ki ste jih konfigurirali prej. Vmesnik, ki bi ga morali videti po tem, izgleda tako:

Za dostop do upravitelja gostiteljev lahko uporabite http:// ip-naslov: 8080/host-manager/.

Z upraviteljem navideznih gostiteljev lahko ustvarite navidezne gostitelje za aplikacije Tomcat.

6. korak: Preizkusite Apache Tomcat z ustvarjanjem preskusne datoteke

Če vse deluje brezhibno, lahko preverite tako, da ustvarite preskusno datoteko v imeniku/opt/tomcat/webapps/ROOT/.

Ustvarimo takšno datoteko:

$ sudo vim /opt/tomcat/webapps/ROOT/tecmint.jsp

Znotraj te datoteke prilepite naslednjo kodo:

<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>

Shranite datoteko in nastavite lastništvo, kot je prikazano.

$ sudo chown tomcat: /opt/tomcat/apache-tomcat-8.5.14/webapps/ROOT/tecmint.jsp

Zdaj naložite to datoteko v brskalnik z uporabo http:// ip-address: 8080/tecmint.jsp.

To je to! Dokončali ste nastavitev strežnika Apache Tomcat in zagnali prvo kodo Java. Upamo, da je bil postopek za vas enostaven in enostaven. Če naletite na kakršne koli težave, jih delite prek spodnjega obrazca za komentar.