Hvordan installere Apache Tomcat i Ubuntu


Hvis du vil kjøre nettsider som inkluderer Java-serversidekoding eller Java-servlets, kan du bruke Apache Tomcat. Det er en åpen kildekode-nettserver og servletbeholder, utgitt av Apache Software Foundation.

Tomcat kan brukes som et frittstående produkt, med egen webserver eller den kan kombineres med andre webservere som Apache eller IIS. Den siste versjonen av Tomcat er 9.0.14 og den bygger på toppen av Tomcat 8 og 8.5 og implementerer Servlet 4.0, JSP 2.2.

Følgende forbedringer er gjort i den nye versjonen:

  • Lagt til støtte for HTTP/2.
  • Lagt til støtte for bruk av OpenSSL for TLS-støtte med JSSE-koblingene.
  • Lagt til støtte for virtuelle TLS-verter (SNI).

I denne opplæringen skal vi vise deg hvordan du installerer Apache Tomcat 9 i Ubuntu 18.10 og eldre versjon av Ubuntu.

Trinn 1: Installere Java

For å kjøre Java-webapplikasjoner krever Tomcat at Java er installert på serveren. For å oppfylle dette kravet vil vi installere OpenJDK som vist.

$ sudo apt update
$ sudo apt install default-jdk

Trinn 2: Opprette en Tomcat-bruker

Av sikkerhetsgrunner bør Tomcat kjøres med en ikke-privilegert bruker, dvs. ikke-rot. Derfor vil vi opprette bruker- og gruppetomcat som skal kjøre tjenesten. Start med å lage tomcat-gruppen:

$ sudo groupadd tomcat

Deretter vil vi opprette en tomcat-bruker, som vil være medlem av tomcat-gruppen. Hjemmeposisjonen til denne brukeren vil være /opt/tomcat, da det er her vi skal installere Tomcat. Skallet settes til /bin/false:

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

Nå er vi klare til å fortsette neste trinn og laste ned Tomcat.

Trinn 3: Installere Apache Tomcat

For å laste ned den siste tilgjengelige pakken, gå til Tomcats nedlastingsside og hente den nyeste versjonen.

På tidspunktet for skriving av denne opplæringen er den nyeste versjonen av Tomcat 9.0.14. For å laste ned den versjonen, endre din nåværende katalog til noe annet. For eksempel kan du bruke /tmp:

# cd /tmp

Og bruk deretter wget-kommandoen for å laste ned 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 verifisere sha512 summen av filen kan du kjøre:

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

Den resulterende verdien (hash) for begge filene skal være den samme.

Som tidligere nevnt, skal vi installere Tomcat i /opt/tomcat. Vi må lage den katalogen:

$ sudo mkdir /opt/tomcat

Og nå kan vi trekke ut den nedlastede pakken i den nye katalogen:

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

Naviger nå til /opt/tomcat hvorfra vi vil oppdatere mappeeierskap og tillatelser:

# cd /opt/tomcat

Og sett gruppeeier av /opt/tomcat til tomcat:

$ sudo chgrp -R tomcat /opt/tomcat

Vi vil deretter oppdatere lesetilgangen til tomcat-gruppen over conf-katalogen og sette utføringstillatelser til katalogen:

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

Deretter vil vi gjøre tomcat til eier av webapps, arbeid, temp og loggkataloger:

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

Nå er de riktige tillatelsene og eierskapene satt, og vi er klare til å lage en systemd startfil, som vil hjelpe oss med å administrere Tomcat-prosessen.

Trinn 4: Opprette en SystemD-tjenestefil for Tomcat

Fordi vi ønsker å kjøre Tomcat som en tjeneste, må vi ha en fil som vil hjelpe oss med å enkelt administrere prosessen. For det formålet vil vi lage en systemd servicefil. Tomcat må vite hvor Java er plassert på systemet ditt.

For å finne den plasseringen, bruk følgende kommando:

$ sudo update-java-alternatives -l

Utdataene fra den kommandoen vil vise deg plasseringen til JAVA_HOME.

Ved å bruke denne informasjonen er vi klare til å lage vår Tomcat-tjenestefil.

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

Lim inn 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 å sette JAVA_HOME med den for systemet ditt. Når du er klar, lagre filen og lukk den. Nå, bruk kommandoen nedenfor, last systemd-demonen på nytt slik at den kan finne vår nye tjenestefil:

$ sudo systemctl daemon-reload

Start deretter Tomcat-tjenesten:

$ sudo systemctl start tomcat

Du kan bekrefte tjenestestatusen med:

$ sudo systemctl status tomcat

Du kan nå teste Tomcat i nettleseren din ved å bruke systemets IP-adresse etterfulgt av tjenestens standardport 8080.

http://ip-address:8080

Resultatet du bør se ligner på det som vises på bildet nedenfor:

I tilfelle du ikke ser utdataene ovenfor, må du kanskje tillate port 8080 i brannmuren som vist.

$ sudo ufw allow 8080

Hvis du vil at Tomcat skal starte ved systemoppstart, kjør:

$ systemctl enable tomcat

Trinn 5: Konfigurere Apache Tomcat

Tomcat har en webbehandlingsapp som kommer forhåndsinstallert. For å bruke den, må vi sette opp autentisering i filen tomcat-users.xml. Åpne og rediger den filen med din favoritt tekstredigerer:

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

Vi skal legge til en bruker som vil få tilgang til manager- og admingrensesnittene. For å konfigurere en slik bruker, legg til følgende linje mellom -taggene:

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

Sørg for å endre:

  • Brukernavn – med brukeren du ønsker å autentisere.
  • Passord – med passordet du ønsker å bruke for autentisering.

Siden tilgang til Host Manager og Manager som standard er begrenset, vil vi enten fjerne eller endre disse begrensningene. For å gjøre slike endringer kan du laste inn følgende filer:

For Manager-appen:

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

For Host Manager-appen:

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

Inne i disse filene kan du enten kommentere IP-begrensningen eller tillate din offentlige IP-adresse der. For formålet med denne opplæringen har jeg kommentert linjen:

For å gjøre endringene våre live, last inn tomcat-tjenesten på nytt med:

$ sudo systemctl restart tomcat 


Du kan nå teste managerappen ved å gå til http://ipadress:8080/manager/. Når du blir bedt om brukernavn og passord, bruk de du har konfigurert tidligere. Grensesnittet du bør se etter det ser slik ut:

For å få tilgang til Host Manager, kan du bruke http://ip-address:8080/host-manager/.

Ved å bruke den virtuelle vertsbehandlingen kan du opprette virtuelle verter for Tomcat-applikasjonene dine.

Trinn 6: Teste Apache Tomcat ved å lage en testfil

Du kan sjekke om alt fungerer problemfritt ved å lage en testfil i /opt/tomcat/webapps/ROOT/-katalogen.

La oss lage en slik fil:

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

Inne i filen limer du inn 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>

Lagre filen og angi eierskap som vist.

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

Last nå filen i nettleseren din ved å bruke http://ip-adresse:8080/tecmint.jsp.

Det er det! Du har fullført oppsettet av Apache Tomcat-serveren og kjørt din første Java-kode. Vi håper prosessen var enkel og grei for deg. Hvis du møter noen problemer, del problemene dine via kommentarskjemaet nedenfor.