Mit Apache Tomcat zu deinem Webserver & Webcontainer unter Ubuntu 16.04/18.04

  • Home
  • Unkategorisiert
  • Mit Apache Tomcat zu deinem Webserver & Webcontainer unter Ubuntu 16.04/18.04

Apache Tomcat unter Ubuntu 16.04/18.04

Der Apache HTTP Server sollte dir als einer der meistbenutzten Webserver im Internet etwas sagen. Wir stellen dir in unserem Tutorial Apache2 auf Ubuntu 16.04/18.04 installieren und u.a. auch weiterführend zu dem Thema in unserem Tutorial LAMP-Server mit PHP 7 und Apache 2.4 auf Ubuntu 16.04 installieren, bzw. alternativ hierzu unter LAMP-Stack auf Ubuntu 18.04 LTS mit PHP 7.2 und Apache 2.4 eine Installations- und Konfigurationsanleitung zur Verfügung, um deinen Ubuntu mit dem Apache Webserver auszustatten.

In diesem Tutorial geht es um die Installation und Konfiguration von Apache Tomcat unter deinem Ubuntu 16.04/18.04. Apache Tomcat ist wie Apache ein HTTP-Server, der HTTP bedient und ist zudem ein Servlet-Container. Apache ist ein allgemeiner HTTP-Server, der eine Reihe von erweiterten Optionen unterstützt, die Apache Tomcat nicht supported. Primär fungiert der Apache Tomcat zu Entwicklungszwecken als Servlet und JSP-Server für Java-Technologien. Apache Tomcat kann somit zum Bereitstellen deiner Java Servlets und JSPs verwendet werden. Du kannst also in deinem Java-Projekt deine WAR-Datei (kurz für Web Application Archive) erstellen und sie einfach im Bereitstellungsverzeichnis von Tomcat ablegen. Der Apache Tomcat bietet dir eine Umgebung zur Ausführung von Java-Code auf Webservern und ermöglicht dir somit mit Java serverseitig Inhalte zu erstellen.

… vor der Installation

Stelle vorab sicher, dass du die Installation mit root-Zugang durchführst und sorge zudem dafür, dass dein Server up to date ist.

apt-get update && apt-get upgrade

Installiere OpenJDK

Für Apache Tomcat muss Java auf deinem Server installiert sein. Das unten gezeigte Kommando dient zur Installation des OpenJDK, der Standard-Java-Entwicklung und -Laufzeit unter Ubuntu 16.04/18.04.

apt-get install default-jdk

Passe deine Firewall an

Wenn du auf die Tomcat-Benutzeroberfläche zugreifen möchtest, musst du deiner Firewall Zugriff auf Port 8080 erlauben. Mit dem folgenden Befehl lässt du den Datenaustausch an Port 8080 zu.

ufw allow 8080/tcp

Installiere Apache Tomcat

In diesem Tutorial zeige ich dir u.a., wie du die zu diesem Zeitpunkt neueste Binärversion von Apache Tomcat 9 (derzeit Version 9.0.14) von der Downloadseite herunterlädst und im entsprechenden Installationsverzeichnis entpackst. Solltest du das Tutorial zu einem späteren Zeitpunkt unter einer anderen Version und/oder Binärversion von Apache Tomcat durchführen, solltest du die Versionsnummer in den folgenden Kommandos entsprechend anpassen. Auf der Downloadseite findest du die neueste sowie vorangehende Versionen.

Nutze den mit wget eingeleiteten Befehl, um das Apache Tomcat-Archiv in das Verzeichnis /tmp herunterzuladen.

wget http://apache.mirror.iphh.net/tomcat/tomcat-9/v9.0.16/bin/apache-tomcat-9.0.16.tar.gz -P /tmp

Extrahiere hiernach das Apache Tomcat-Archiv

tar xzf /tmp/apache-tomcat-9.0.16.tar.gz -C /opt/

und verschiebe es in das Verzeichnis /opt/tomcat.

mv /opt/apache-tomcat-9.0.16/ /opt/tomcat

Erstelle einen Tomcat Nutzer

Die Installation selbst führst du – wie zu Beginn erwähnt – als Root durch. Der Sicherheit halber sollte Apache Tomcat jedoch nicht unter dem Root-Benutzer ausgeführt werden. Um dies zu gewährleisten, erstellst du mit dem im Code-Snippet unten eingeblendeten Kommando einen neuen tomcat-Systembenutzer und eine neue Gruppe mit dem Basisverzeichnis /opt/tomcat, das den Tomcat-Dienst nach der Installation ausführen wird.

useradd -r -m -U -d /opt/tomcat -s /bin/false tomcat

Zugriff einrichten

Zugriff muss eingerichtet werden. Der folgende Befehl ändert den Besitz des /opt/tomcat/latest-Verzeichnisses in tomcat-Benutzer- und Gruppen.

chown -RH tomcat: /opt/tomcat/

Schließlich nutzt dir dann noch der unten aufgeführte Befehl, dass die Skripte im bin-Verzeichnis ein ausführbares Flag aufweisen.

chmod o+x /opt/tomcat/bin/

… nach der Installation

Die Installation an sich reicht noch nicht aus, um deinen neuen Webserver nutzen zu können. Es sind zusätzlich noch ein paar Dinge in Sache Konfiguration zu erledigen, auf die ich in den folgenden Unterkapiteln eingehe.

Erstelle eine systemd Unit-Datei

Um Tomcat als Dienst auszuführen, erstellst du eine neue Einheitendatei. Öffne deinen Texteditor und lege eine Datei namens tomcat.service in /etc/systemd/system/ an.

nano /etc/systemd/system/tomcat.service

Füge via Copy&Paste folgenden Inhalt in die zunächst noch leere Datei. Speichere den Inhalt der im nano-Editor geöffneten Datei mit Hilfe der Tastenkombination Strg+O und verlasse den Editor mit Strg+X. Mit dem Kommando oben kannst du die Datei jederzeit erneut im nano-Editor öffnen, wenn Bedarf besteht, Inhalte zu korrigieren.

[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

Sollte z.B. der Pfad zu deiner Java-Installation anders sein, als der oben im Code-Snippet unter Environment=“JAVA_HOME= hinterlegte Pfad, dann ändere diesen in der besagten Datei. Dies kann der Fall sein, falls du Java auf eine andere Weise auf deinem Server installiert hast, als ich dir hier in diesem Tutorial gezeigt habe.

Die Information über den Pfad erhälst du, indem du im Terminal den Befehl unten ausführst

which java

oder alternativ

whereis java

Bei dem hierauf jeweils generierten Output handelt es sich dann aber noch nicht um den finalen Pfad, sondern um eine Art symbolischem Link, der weiterführend Aufschluss zum Standort bzw. zum Pfad von Java auf deinem Server liefern kann. In diesem Zusammenhang müsstest du dann nämlich noch das folgende Kommando nutzen, um den korrekten Pfad zu ermitteln. Hierbei solltest du den Platzhalter JAVASYMLINK mit dem Output austauschen, dass du auf einen der beiden oben aufgeführten Kommandos im Terminal generiert bekommen hast.

readlink -f JAVASYMLINK

Wenn du mit deiner Arbeit an der tomcat.service-Datei abgeschlossen hast, musst du systemd mitteilen, dass du eine neue Unit-Datei erstellt hast.

systemctl daemon-reload

Starte den Service von Apache Tomcat.

systemctl start tomcat

Prüfe den Status des Service von Apache Tomcat.

systemctl status tomcat

Wenn keine Fehler vorhanden sind, kannst du den Tomcat-Dienst beim Booten automatisch starten.

systemctl enable tomcat

Konfiguriere Apache Tomcat

Es geht nun daran, einen Benutzer zu erstellen, der Zugriff auf das Web UI von Apache Tomcat hat. Definiert werden Tomcat-Benutzer und -Rollen in der Datei tomcat-users.xml. Diese Datei ist eine Vorlage mit Kommentaren und Beispielen, die beschreiben, wie du einen Benutzer oder eine Rolle erstellst. Öffne die Datei im Editor deiner Wahl. Mit dem folgenden Kommando tue ich die im nano-Editor.

nano /opt/tomcat/latest/conf/tomcat-users.xml

Dem Screenshot unten entnimmst du, wie der im tomcat-users-Tag enthaltene Inhalt der im Editor geöffneten Datei aussieht. Die Kommentare sind in den aus HTML bekannten Kommentar-Tag gesetzt.

tomcat-users.xml-Datei

Um einen neuen Benutzer mit Zugriff auf das Web UI von Apache Tomcat hinzuzufügen, musst du den Benutzer in der Datei tomcat-users.xml innerhalb des tomcat-users-Tag wie im Code-Snippet unten definieren. Unter dem Benutzernamen admin und dem Passwort admin_password kannst du dich später dann sowohl im Web Application Manager Dashboard als auch im virtuelle Host Manager Dashboard deines Apache Tomcat anmelden. Jede im Code-Snippet unten gezeigte Zeile musst du mit < einleiten und mit /> schließen.

role rolename="admin-gui"
role rolename="manager-gui"
user username="admin" password="admin_password" roles="admin-gui,manager-gui"

Binde den im Code-Snippet oben gezeigten Inhalt via Copy&Paste in den tomcat-users-Tag ein, wie im Screenshot unten in der blau eingerahmten Markierung erkenntlich. Speichere das Update in der Datei mit der Tastenkombination Strg+O und verlasse den nano-Editor mit Strg+X.

tomcat-users.xml-Datei mit erstelltem Benutzer

Per default ist das Web UI von Apache Tomcat so konfiguriert, dass der Zugriff auf die Manager- und Host Manager-Apps nur von localhost aus eingeschränkt wird. Wenn du von der IP deines Servers auf das Web UI zugreifen möchtest, musst du diese Einschränkungen aufheben. Beachte dabei aber, dass dies unterschiedliche Sicherheitsauswirkungen haben kann und und es aus diesem Grund für Produktionssysteme nicht zu empfehlen ist.

Um den Zugriff auf die Weboberfläche via deiner IP doch zu ermöglichen, öffne die context.xml-Datei. Diese liegt einmal im Verzeichnis /opt/tomcat/latest/webapps/manager/META-INF und ein weiteres Mal im Verzeichnis /opt/tomcat/latest/webapps/host-manager/META-INF. Für beide Ablageorte musst du in der Datei dieselben Anpassungen vornehmen.

Öffne für die Manager-App die context.xml-Datei, die unter /opt/tomcat/latest/webapps/manager/META-INF/ liegt. In meinem Beispiel nutze ich erneut den nano-Editor.

nano /opt/tomcat/latest/webapps/manager/META-INF/context.xml

Kommentiere die im unten eingeblendeten Info-Block neongrün markierten Zeilen aus, speichere das Update mit Strg+O und beende deine Arbeit an der Datei mit Strg+X.

Apache Tomcat context.xml-Datei

Eine andere Option ist, den Zugriff auf die Manager- und Host Manager-Apps nur von einer bestimmten IP-Adresse aus zuzulassen. Anstatt die Blöcke auszukommentieren, kannst du einfach die IP-Adresse deines Servers zur Liste hinzufügen.

Wenn die IP deines Servers beispielsweise xx.xx.xx.xx dient als Platzhalter, den du mit der IP deines Servers austauschen müsstest. Du kannst eine Menge von IP-Adressen hinzufügen. Die zulässigen IP-Adressen wären dann, wie im Beispiel unten zu sehen, von einem vertikalen |-Balken getrennt. Alternativ zu einer IP-Adresse kannst du einen regulären Ausdruck verwenden.

Apache Tomcat context.xml-Datei

Öffne für die Host Manager-App dann noch die die context.xml-Datei, die unter /opt/tomcat/latest/webapps/host-manager/META-INF/ liegt. Nimm dort ebenfalls das Update analog zum Update durch, dass du zuvor in der context.xml-Datei durchgeführt hast, die sich unter /opt/tomcat/latest/webapps/manager/META-INF befindet.

nano /opt/tomcat/latest/webapps/host-manager/META-INF/context.xml

Starte den Tomcat-Dienst danach neu, damit die Änderungen wirksam werden. Allgemein ist dieser Schritt jedes Mal notwendig, wenn du die Tomcat-Konfigurationsdateien bearbeitet haben solltest.

systemctl restart tomcat

Getting started mit dem Apache Tomcat Web UI

Öffne deinen Browser und erreiche das Web UI von Apache Tomcat unter der URL nach dem Schema http://localhost:8080, wobei du localhost dann mit der IP deines Servers austauscht. Du solltest daraufhin die Startseite sehen, wie sie im folgenden Screenshot abgebildet ist.

Apache Tomcat Web UI

Das Web Application Manager Dashboard des Apache Tomcat Web UI ist unter URL nach dem Schema http://localhost:8080/manager/html verfügbar. Von hier aus kannst du Anwendungen bereitstellen, die Bereitstellung aufheben, starten, stoppen und erneut laden.

Authentifizierung zum Web Application Manager Dashboard von Apache Tomcat

Nach Eingabe des Benutzernamens admin und des Passworts admin_password wirst du auf die entsprechende Seite weitergeleitet.

Web Application Manager Dashboard von Apache Tomcat

Das Virtuelle Host Manager Dashboard des Apache Tomcat Web UI ist unter der URL nach dem Schema http://localhost:8080/host-manager/html verfügbar. Von hier aus kannst du Apache Tomcat virtuelle Hosts erstellen, löschen und managen.

Authentifizierung zum Virtuelle Host Manager Dashboard von Apache Tomcat

Auch in diesem Fall erreichst du nach Verifizierung deiner Benutzerdaten die entsprechende Seite.

Virtuelle Host Manager Dashboard von Apache Tomcat

Fazit

Super! Du verfügst nun mit Apache Tomcat über deinen eigenen Webserver und Webcontainer. Obwohl Apache Tomcat – neben seiner primären Einsatzmöglichkeit für Entwicklungszwecke – auch einfach als allgemeiner HTTP-Server verwendet werden kann, kannst du Apache und Apache Tomcat auch so einrichten, dass Apache mit statischen Inhalten zusammenarbeitet und die Anforderungen für dynamischen Inhalt an Apache Tomcat weiterleitet. Ich wünsche dir guten Nutzen aus den Möglichkeiten mit dem Apache Tomcat zu ziehen. ?

Zurück zur Tutorial Übersicht Back to Tutorial Overview

© 2002-2023 Phox inc. all rights reserved.

© 2002-2023 Phox inc. all rights reserved.