Wéi installéiere ech Apache Tomcat an Ubuntu


Wann Dir Websäite wëllt lafen déi Java Server Säit Kodéierung oder Java Servlets enthalen, kënnt Dir Apache Tomcat benotzen. Et ass en Open Source Webserver a Servlet Container, verëffentlecht vun der Apache Software Foundation.

Tomcat kann als Standalone Produkt benotzt ginn, mat sengem eegene Webserver oder et ka mat anere Webserver wéi Apache oder IIS kombinéiert ginn. Déi lescht Versioun vum Tomcat ass 9.0.14 an et baut uewen op Tomcat 8 an 8.5 an implementéiert Servlet 4.0, JSP 2.2.

Déi folgend Verbesserunge goufen an der neier Versioun gemaach:

  • Ënnerstëtzung fir HTTP/2 bäigefüügt.
  • Ënnerstëtzung bäigefüügt fir OpenSSL fir TLS Ënnerstëtzung mat de JSSE Connectoren ze benotzen.
  • Addéiert Ënnerstëtzung fir TLS virtuelle Hosten (SNI).

An dësem Tutorial wäerte mir Iech weisen wéi Dir Apache Tomcat 9 an Ubuntu 18.10 a méi al Versioun vun Ubuntu installéiere wëllt.

Schrëtt 1: Java installéieren

Fir Java Webapplikatiounen ze lafen, erfuerdert Tomcat datt Java um Server installéiert ass. Fir dës Ufuerderung z'erreechen, installéiere mir OpenJDK wéi gewisen.

$ sudo apt update
$ sudo apt install default-jdk

Schrëtt 2: Erstellt en Tomcat Benotzer

Aus Sécherheetsgrënn sollt Tomcat mat engem net-privilegiéierte Benotzer lafen, also net root. Dofir wäerte mir Benotzer a Grupp Tomcat erstellen déi de Service lafen. Fänkt un mat der Tomcat Grupp ze kreéieren:

$ sudo groupadd tomcat

Als nächst wäerte mir en Tomcat Benotzer erstellen, dee Member vun der Tomcat Grupp wäert sinn. D'Hausplaz vun dësem Benotzer wäert /opt/tomcat sinn well dëst ass wou mir Tomcat installéieren. D'Shell gëtt op /bin/false gesat:

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

Elo si mir prett fir de nächste Schrëtt weiderzemaachen an den Tomcat erofzelueden.

Schrëtt 3: Apache Tomcat installéieren

Fir de leschten verfügbare Package erofzelueden, gitt op Tomcat seng Download Säit a gräift déi lescht Versioun.

Zu der Zäit vum Schreiwen vun dësem Tutorial ass déi lescht Versioun vum Tomcat 9.0.14. Fir dës Versioun erofzelueden, ännert Ären aktuellen Verzeichnis op eppes anescht. Zum Beispill kënnt Dir /tmp benotzen:

# cd /tmp

An dann benotzt wget Kommando fir den Tomcat Archiv erofzelueden:

$ 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

Wann Dir d'sha512 Zomm vun der Datei verifizéiere wëllt, kënnt Dir lafen:

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

De resultéierende Wäert (Hash) fir béid Dateie sollt d'selwecht sinn.

Wéi virdru scho gesot, wäerte mir Tomcat an /opt/tomcat installéieren. Mir mussen dëse Verzeechnes erstellen:

$ sudo mkdir /opt/tomcat

An elo kënne mir den erofgeluede Package an deem neie Verzeechnes extrahéieren:

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

Elo navigéiert op /opt/tomcat vu wou mir den Dossierbesëtz an d'Permissiounen aktualiséieren:

# cd /opt/tomcat

A set de Gruppbesëtzer vun /opt/tomcat op Tomcat:

$ sudo chgrp -R tomcat /opt/tomcat

Mir wäerten als nächst de Lieszougang vun der Tomcat Grupp iwwer de Conf Verzeechnes aktualiséieren an d'Ausféierungsrechter an de Verzeechnes setzen:

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

Als nächst wäerte mir den Tomcat Benotzer Besëtzer vun de Webapps, Aarbecht, Temp a Logbicher maachen:

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

Elo sinn déi entspriechend Permissiounen a Proprietairë festgeluecht a mir si prett fir eng systemd Startdatei ze kreéieren, déi eis hëlleft den Tomcat Prozess ze managen.

Schrëtt 4: Erstellt eng SystemD Service Datei fir Tomcat

Well mir Tomcat als Service wëllen ausféieren, musse mir eng Datei hunn, déi eis hëlleft de Prozess einfach ze managen. Fir dësen Zweck erstellen mir eng systemd Servicedatei. Tomcat muss wësse wou Java op Ärem System läit.

Fir dës Plaz ze fannen, benotzt de folgende Kommando:

$ sudo update-java-alternatives -l

D'Ausgab vun deem Kommando weist Iech de Standort vum JAVA_HOME.

Elo, mat dëser Informatioun, si mir prett fir eis Tomcat Servicedatei ze kreéieren.

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

Paste de Code hei ënnen an der Datei:

[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

Vergewëssert Iech JAVA_HOME mat deem fir Äre System ze setzen. Wann Dir bereet sidd, späichert d'Datei a maach se zou. Elo, andeems Dir de Kommando hei drënner benotzt, lued den systemd Daemon nei sou datt et eis nei Servicedatei fanne kann:

$ sudo systemctl daemon-reload

Da start den Tomcat Service:

$ sudo systemctl start tomcat

Dir kënnt de Servicestatus verifizéieren mat:

$ sudo systemctl status tomcat

Dir kënnt elo Tomcat an Ärem Browser testen andeems Dir Är System IP Adress benotzt, gefollegt vum Service Standardport 8080.

http://ip-address:8080

D'Resultat dat Dir sollt gesinn ähnlech wéi dat am Bild hei ënnen gewisen:

Am Fall wou Dir déi uewe genannte Ausgab net gesitt, musst Dir vläicht den Hafen 8080 an Ärer Firewall erlaben wéi gewisen.

$ sudo ufw allow 8080

Wann Dir Tomcat wëllt um Systemboot starten, lafen:

$ systemctl enable tomcat

Schrëtt 5: Apache Tomcat konfiguréieren

Tomcat huet eng Webmanager App déi virinstalléiert ass. Fir et ze benotzen, musse mir d'Authentifikatioun an eiser tomcat-users.xml Datei opsetzen. Öffnen an änneren dës Datei mat Ärem Liiblingstexteditor:

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

Mir addéieren e Benotzer deen Zougang zu de Manager- an Admin-Interfaces kritt. Fir esou Benotzer ze konfiguréieren, tëscht den Tags, füügt déi folgend Linn derbäi:

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

Vergewëssert Iech ze änneren:

  • Benotzernumm - mam Benotzer deen Dir authentifizéiere wëllt.
  • Passwuert - mam Passwuert dat Dir fir d'Authentifikatioun benotze wëllt.

Well de Standard Zougang zum Host Manager a Manager limitéiert ass, wëlle mir dës Restriktiounen entweder ewechhuelen oder änneren. Fir esou Ännerungen ze maachen, kënnt Dir déi folgend Dateien lueden:

Fir Manager App:

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

Fir Host Manager App:

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

Bannen an dëse Fichier kënnt Dir entweder d'IP Restriktioun kommentéieren oder Är ëffentlech IP Adress do dran erlaben. Fir den Zweck vun dësem Tutorial hunn ech d'Linn kommentéiert:

Fir eis Ännerungen live ze maachen, lued den Tomcat Service nei mat:

$ sudo systemctl restart tomcat 


Dir kënnt elo d'Manager App testen andeems Dir op http://ipaddress:8080/manager/ zougitt. Wann Dir fir Benotzernumm a Passwuert gefrot gëtt, benotzt déi, déi Dir virdru konfiguréiert hutt. Den Interface, deen Dir duerno sollt gesinn, gesäit esou aus:

Fir Zougang zum Host Manager ze kréien, kënnt Dir http://ip-address:8080/host-manager/ benotzen.

Mat dem virtuelle Hostmanager kënnt Dir virtuell Hosten fir Är Tomcat Uwendungen erstellen.

Schrëtt 6: Testen Apache Tomcat Andeems Dir eng Testdatei erstellt

Dir kënnt kontrolléieren ob alles glat funktionnéiert, andeems Dir eng Testdatei bannent /opt/tomcat/webapps/ROOT/ Verzeichnis erstellt.

Loosst eis esou Datei erstellen:

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

Bannen an deem Fichier paste de folgende Code:

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

Späichert d'Datei a setzt d'Besëtzer wéi gewisen.

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

Lued elo dës Datei an Ärem Browser andeems Dir http://ip-address:8080/tecmint.jsp benotzt.

Dat ass et! Dir hutt de Setup vun Ärem Apache Tomcat Server ofgeschloss an Ären éischte Java Code ausgefouert. Mir hoffen de Prozess war einfach an einfach fir Iech. Wann Dir Probleemer hutt, deelt Är Probleemer iwwer de Kommentarform hei ënnen.