Sådan installeres Apache Tomcat i Ubuntu


Hvis du vil køre websider, der indeholder Java-server-sidekodning eller Java-servlets, kan du bruge Apache Tomcat. Det er en open source-webserver og servletcontainer, udgivet af Apache Software Foundation.

Tomcat kan bruges som et enkeltstående produkt med sin egen webserver, eller det kan kombineres med andre webservere som Apache eller IIS. Den seneste version af Tomcat er 9.0.14, og den bygger oven på Tomcat 8 og 8.5 og implementerer Servlet 4.0, JSP 2.2.

Følgende forbedringer er blevet foretaget i den nye version:

  • Tilføjet understøttelse af HTTP/2.
  • Tilføjet understøttelse til brug af OpenSSL til TLS-understøttelse med JSSE-stik.
  • Tilføjet understøttelse af TLS virtuelle værter (SNI).

I denne vejledning skal vi vise dig, hvordan du installerer Apache Tomcat 9 i Ubuntu 18.10 og ældre version af Ubuntu.

Trin 1: Installation af Java

For at køre Java-webapplikationer kræver Tomcat, at Java er installeret på serveren. For at imødekomme dette krav installerer vi OpenJDK som vist.

$ sudo apt update
$ sudo apt install default-jdk

Trin 2: Oprettelse af en Tomcat-bruger

Af sikkerhedsmæssige årsager skal Tomcat køres med en ikke-privilegeret bruger, dvs. ikke root. Derfor opretter vi bruger- og gruppetomcat, der kører tjenesten. Start med at oprette tomcat-gruppen:

$ sudo groupadd tomcat

Dernæst opretter vi en tomcat-bruger, der vil være medlem af tomcat-gruppen. Denne brugers hjemmeplacering vil være/opt/tomcat, da det er her, vi skal installere Tomcat. Skallen indstilles til/bin/false:

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

Nu er vi klar til at fortsætte næste trin og downloade Tomcat.

Trin 3: Installation af Apache Tomcat

For at downloade den senest tilgængelige pakke, gå til Tomcats download-side og få fat i den nyeste version.

På tidspunktet for skrivningen af denne vejledning er den nyeste version af Tomcat 9.0.14. For at downloade denne version skal du ændre din nuværende mappe til noget andet. For eksempel kan du bruge/tmp:

# cd /tmp

Og derefter bruge wget-kommandoen til at downloade Tomcat-arkivet:

$ 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

Hvis du vil bekræfte sha512-summen af filen, kan du køre:

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

Den resulterende værdi (hash) for begge filer skal være den samme.

Som tidligere nævnt skal vi installere Tomcat i/opt/tomcat. Vi bliver nødt til at oprette denne mappe:

$ sudo mkdir /opt/tomcat

Og nu kan vi udtrække den downloadede pakke i den nye mappe:

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

Naviger nu til/opt/tomcat, hvorfra vi opdaterer mappejerskabet og tilladelserne:

# cd /opt/tomcat

Og sæt gruppeejer af/opt/tomcat til tomcat:

$ sudo chgrp -R tomcat /opt/tomcat

Vi opdaterer derefter læseadgang for tomcat-gruppen over conf-biblioteket og indstiller eksekveringstilladelser til biblioteket:

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

Dernæst vil vi gøre tomcat brugerejer af webapps, work, temp og logs-mapper:

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

Nu er de korrekte tilladelser og ejerskaber blevet indstillet, og vi er klar til at oprette en systemd startfil, som hjælper os med at styre Tomcat-processen.

Trin 4: Oprettelse af en SystemD-servicefil til Tomcat

Fordi vi vil køre Tomcat som en tjeneste, bliver vi nødt til at have en fil, der hjælper os med let at styre processen. Til dette formål opretter vi en systemd-servicefil. Tomcat bliver nødt til at vide, hvor Java er placeret på dit system.

For at finde den placering skal du bruge følgende kommando:

$ sudo update-java-alternatives -l

Outputtet fra denne kommando viser dig placeringen af JAVA_HOME.

Nu ved hjælp af disse oplysninger er vi klar til at oprette vores Tomcat-servicefil.

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

Indsæt koden nedenfor i filen:

[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

Sørg for at indstille JAVA_HOME med den til dit system. Når du er klar, skal du gemme filen og lukke den. Brug nu kommandoen nedenfor til at genindlæse systemd-dæmonen, så den kan finde vores nye servicefil:

$ sudo systemctl daemon-reload

Start derefter Tomcat-tjenesten:

$ sudo systemctl start tomcat

Du kan bekræfte servicestatus med:

$ sudo systemctl status tomcat

Du kan nu teste Tomcat i din browser ved at bruge dit systems IP-adresse efterfulgt af tjenestens standardport 8080.

http://ip-address:8080

Resultatet, du skal se, svarer til det, der vises på billedet nedenfor:

Hvis du ikke ser ovenstående output, skal du muligvis tillade port 8080 i din firewall som vist.

$ sudo ufw allow 8080

Hvis du vil have Tomcat til at starte ved systemstart, skal du køre:

$ systemctl enable tomcat

Trin 5: Konfiguration af Apache Tomcat

Tomcat har en webmanager-app, der er forudinstalleret. For at bruge det skal vi konfigurere godkendelse inden for vores tomcat-users.xml-fil. Åbn og rediger den fil med din yndlings teksteditor:

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

Vi vil tilføje en bruger, der kan få adgang til manager- og admin-grænsefladerne. For at konfigurere en sådan bruger skal du tilføje følgende linje mellem tags :

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

Sørg for at ændre:

  • Brugernavn - med den bruger, du vil godkende.
  • Adgangskode - med den adgangskode, du vil bruge til godkendelse.

Da adgang til Host Manager og Manager som standard er begrænset, vil vi enten fjerne eller ændre disse begrænsninger. For at foretage sådanne ændringer kan du indlæse følgende filer:

For Manager-app:

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

Til vært manager app:

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

Inde i disse filer kan du enten kommentere IP-begrænsningen eller tillade din offentlige IP-adresse derinde. Med henblik på denne vejledning har jeg kommenteret linjen:

For at gøre vores ændringer live, genindlæs tomcat-tjenesten med:

$ sudo systemctl restart tomcat 


Du kan nu teste managerappen ved at åbne http:/ipaddress: 8080/manager /. Når du bliver bedt om brugernavn og adgangskode, skal du bruge dem, du har konfigureret tidligere. Den grænseflade, du skal se efter, ser sådan ud:

For at få adgang til værtsadministratoren kan du bruge http:/ip-adresse: 8080/værtsadministrator /.

Ved hjælp af den virtuelle værtsadministrator kan du oprette virtuelle værter til dine Tomcat-applikationer.

Trin 6: Test af Apache Tomcat ved at oprette en testfil

Du kan kontrollere, om alt fungerer problemfrit ved at oprette en testfil inde i/opt/tomcat/webapps/ROOT/bibliotek.

Lad os oprette en sådan fil:

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

Inde i den fil skal du indsætte følgende kode:

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

Gem filen, og indstil ejerskabet som vist.

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

Indlæs nu filen i din browser ved hjælp af http:/ip-adresse: 8080/tecmint.jsp.

Det er det! Du har afsluttet opsætningen af din Apache Tomcat-server og kørt din første Java-kode. Vi håber, at processen var let og ligetil for dig. Hvis du står over for problemer, skal du dele dine problemer via kommentarformularen nedenfor.