So installieren Sie Apache Tomcat 9 unter Debian 10

Einführung

Apache Tomcat ist ein Webserver und Servlet-Container, mit dem Java-Anwendungen bereitgestellt werden. Tomcat ist eine Open-Source-Implementierung der von der Apache Software Foundation veröffentlichten Technologien Java Servlet und JavaServer Pages. Dieses Tutorial behandelt die Grundinstallation und einige Konfigurationen der neuesten Version von Tomcat 9 auf Ihrem Debian 10-Server.

Voraussetzungen

Bevor Sie mit diesem Handbuch beginnen, sollten Sie einen Benutzer ohne Rootberechtigung mit den Rechten "+ sudo +" auf Ihrem Server eingerichtet haben. Weitere Informationen hierzu finden Sie in unserem Debian 10-Handbuch zur Ersteinrichtung des Servers.

Schritt 1 - Installieren Sie Java

Tomcat setzt voraus, dass Java auf dem Server installiert ist, damit jeder Java-Webanwendungscode ausgeführt werden kann. Wir können diese Anforderung erfüllen, indem wir OpenJDK mit apt installieren.

Aktualisieren Sie zunächst Ihren apt-Paketindex:

sudo apt update

Dann installieren Sie das Java Development Kit-Paket mit apt:

sudo apt install default-jdk

Nachdem Java installiert ist, können wir einen Benutzer "+ tomcat +" erstellen, mit dem der Tomcat-Dienst ausgeführt wird.

Schritt 2 - Tomcat-Benutzer erstellen

Aus Sicherheitsgründen sollte Tomcat als nicht privilegierter Benutzer ausgeführt werden (d. H. nicht * root *). Wir werden einen neuen Benutzer und eine neue Gruppe erstellen, die den Tomcat-Dienst ausführen.

Erstellen Sie zunächst eine neue * tomcat * -Gruppe:

sudo groupadd tomcat

Erstellen Sie als Nächstes einen neuen * tomcat * -Benutzer. Wir werden diesen Benutzer zu einem Mitglied der * tomcat * -Gruppe machen, mit einem Ausgangsverzeichnis von "+ / opt / tomcat " (in dem Tomcat installiert wird) und mit einer Shell von " / bin / false +" (also nobody) kann sich in das Konto einloggen):

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

Nachdem unser * tomcat * -Benutzer eingerichtet ist, können Sie Tomcat herunterladen und installieren.

Schritt 3 - Installieren Sie Tomcat

Die beste Möglichkeit, Tomcat 9 zu installieren, besteht darin, die neueste Binärversion herunterzuladen und sie dann manuell zu konfigurieren.

Die neueste Version von Tomcat 9 finden Sie unter Tomcat 9-Downloadseite. Zum Zeitpunkt des Schreibens ist die neueste Version * 9.0.27 *, Sie sollten jedoch eine spätere stabile Version verwenden, sofern diese verfügbar ist. Kopieren Sie im Abschnitt * Binary Distributions * und dann in der Liste * Core * den Link zu “tar.gz”.

Kehren Sie anschließend zu Ihrer SSH-Sitzung zurück und wechseln Sie in das Verzeichnis "+ / tmp +" auf Ihrem Server. In diesem Verzeichnis können Sie kurzlebige Elemente wie den Tomcat-Tarball herunterladen, die wir nach dem Extrahieren des Tomcat-Inhalts nicht benötigen:

cd /tmp

Zum Herunterladen des Tarballs verwenden wir das Befehlszeilentool "+ curl ". Installieren Sie ` curl +`:

sudo apt install curl

Verwenden Sie nun "+ curl +", um den von der Tomcat-Website kopierten Link herunterzuladen:

curl -O

Wir werden Tomcat im Verzeichnis + / opt / tomcat + installieren. Erstellen Sie das Verzeichnis und extrahieren Sie das Archiv mit den folgenden Befehlen:

sudo mkdir /opt/tomcat
sudo tar xzvf apache-tomcat-9*tar.gz -C /opt/tomcat --strip-components=1

Als Nächstes richten wir die richtigen Benutzerberechtigungen für unsere Installation ein.

Schritt 4 - Berechtigungen aktualisieren

Der von uns erstellte Benutzer * tomcat * muss Zugriff auf die Tomcat-Installation haben. Wir werden das jetzt einrichten.

Wechseln Sie in das Verzeichnis, in das wir die Tomcat-Installation entpackt haben:

cd /opt/tomcat

Geben Sie der * tomcat * -Gruppe den Besitz über das gesamte Installationsverzeichnis:

sudo chgrp -R tomcat /opt/tomcat

Als nächstes geben Sie der * tomcat * -Gruppe "+ read " Zugriff auf das Verzeichnis " conf " und dessen gesamten Inhalt und " execute +" Zugriff auf das Verzeichnis selbst:

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

Machen Sie den Benutzer * tomcat * zum Eigentümer der Verzeichnisse + webapps,` + work`, + temp und` + log`:

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

Nachdem die richtigen Berechtigungen eingerichtet wurden, erstellen wir eine systemd-Servicedatei, um den Tomcat-Prozess zu verwalten.

Schritt 5 - Erstellen Sie eine systemd-Servicedatei

Wir möchten Tomcat als Dienst ausführen können, daher richten wir die systemd-Dienstdatei ein.

Tomcat muss wissen, wo Java installiert ist. Dieser Pfad wird allgemein als "+ JAVA_HOME +" bezeichnet. Der einfachste Weg, um diesen Ort zu finden, ist der folgende Befehl:

sudo update-java-alternatives -l
Outputjava-1.11.0-openjdk-amd64      1111

Ihr + JAVA_HOME + ist die Ausgabe der letzten Spalte (oben hervorgehoben). In dem obigen Beispiel wäre das richtige "+ JAVA_HOME +" für diesen Server:

JAVA_HOME/usr/lib/jvm/java-1.11.0-openjdk-amd64

Ihr + JAVA_HOME + kann unterschiedlich sein.

Mit diesen Informationen können wir die systemd-Servicedatei erstellen. Öffnen Sie eine Datei mit dem Namen "+ tomcat.service" im Verzeichnis "+ / etc / systemd / system", indem Sie Folgendes eingeben:

sudo nano /etc/systemd/system/tomcat.service

Fügen Sie den folgenden Inhalt in Ihre Servicedatei ein. Ändern Sie gegebenenfalls den Wert von + JAVA_HOME +, um ihn an den Wert anzupassen, den Sie auf Ihrem System gefunden haben. Möglicherweise möchten Sie auch die Einstellungen für die Speicherzuordnung ändern, die in + CATALINA_OPTS + angegeben sind:

/etc/systemd/system/tomcat.service

[Unit]
Description=Apache Tomcat Web Application Container
After=network.target

[Service]
Type=forking

Environment=JAVA_HOME=
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

Wenn Sie fertig sind, speichern und schließen Sie die Datei.

Laden Sie als Nächstes den Daemon systemd neu, damit er über unsere Servicedatei informiert ist:

sudo systemctl daemon-reload

Starten Sie den Tomcat-Dienst, indem Sie Folgendes eingeben:

sudo systemctl start tomcat

Stellen Sie sicher, dass es fehlerfrei gestartet wurde, indem Sie Folgendes eingeben:

sudo systemctl status tomcat

Sie sollten eine Ausgabe ähnlich der folgenden sehen:

Output● tomcat.service - Apache Tomcat Web Application Container
  Loaded: loaded (/etc/systemd/system/tomcat.service; disabled; vendor preset: enabled)
  Active: active (running) since Thu 2019-10-24 17:18:11 UTC; 4s ago
 Process: 5962 ExecStart=/opt/tomcat/bin/startup.sh (code=exited, status=0/SUCCESS)
Main PID: 5970 (java)
   Tasks: 44 (limit: 2377)
  Memory: 184.2M
  CGroup: /system.slice/tomcat.service
          └─5970 /usr/lib/jvm/java-1.11.0-openjdk-amd64/bin/java -Djava.util.logging.config.file=/opt/tomcat/conf/logging.properties -Djava.u

Oct 24 17:18:10 tomcat systemd[1]: Starting Apache Tomcat Web Application Container...
Oct 24 17:18:11 tomcat startup.sh[5962]: Tomcat started.
Oct 24 17:18:11 tomcat systemd[1]: Started Apache Tomcat Web Application Container.

Dies bestätigt, dass Tomcat auf Ihrem Server läuft.

Schritt 6 - Passen Sie die Firewall an und testen Sie den Tomcat-Server

Nachdem der Tomcat-Dienst gestartet wurde, können wir testen, ob die Standardseite verfügbar ist.

Bevor wir das tun, müssen wir die Firewall anpassen, damit unsere Anforderungen an den Dienst gelangen können. Wenn Sie die Voraussetzungen erfüllt haben, ist derzeit eine "+ ufw +" - Firewall aktiviert.

Tomcat verwendet den Port "+ 8080 +", um Anforderungen zu akzeptieren. Ermöglichen Sie den Datenverkehr zu diesem Port, indem Sie Folgendes eingeben:

sudo ufw allow 8080

Wenn die Firewall geändert wurde, können Sie auf die Standard-Begrüßungsseite zugreifen, indem Sie in einem Webbrowser zu Ihrer Domain oder IP-Adresse wechseln, gefolgt von "+: 8080 +":

Open in web browserhttp://:8080

Neben anderen Informationen wird die Standard-Tomcat-Begrüßungsseite angezeigt. Wenn Sie jedoch beispielsweise auf die Links für die Manager-App klicken, wird Ihnen der Zugriff verweigert. Diesen Zugang können wir als nächstes konfigurieren.

Wenn Sie erfolgreich auf Tomcat zugreifen konnten, ist jetzt ein guter Zeitpunkt, um die Servicedatei zu aktivieren, damit Tomcat beim Booten automatisch startet:

sudo systemctl enable tomcat

Schritt 7 - Konfigurieren Sie die Tomcat Web Management-Oberfläche

Um die mit Tomcat gelieferte Manager-Web-App verwenden zu können, müssen wir unserem Tomcat-Server eine Anmeldung hinzufügen. Dazu bearbeiten wir die Datei "+ tomcat-users.xml":

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

Sie möchten einen Benutzer hinzufügen, der auf die Webanwendungen "+ manager-gui " und " admin-gui " (im Lieferumfang von Tomcat enthalten) zugreifen kann. Sie können dies tun, indem Sie einen Benutzer, ähnlich wie im folgenden Beispiel, zwischen den Tags ` tomcat-users +` definieren. Stellen Sie sicher, dass Sie den Benutzernamen und das Passwort in etwas Sicheres ändern:

tomcat-users.xml

<tomcat-users>
. . .
   <user username="" password="" roles="manager-gui,admin-gui"/>
</tomcat-users>

Speichern und schließen Sie die Datei, wenn Sie fertig sind.

Standardmäßig beschränken neuere Versionen von Tomcat den Zugriff auf die Manager- und Host Manager-Apps auf Verbindungen, die vom Server selbst stammen. Da wir auf einem Remotecomputer installieren, möchten Sie diese Einschränkung wahrscheinlich entfernen oder ändern. Um die IP-Adresseinschränkungen für diese zu ändern, öffnen Sie die entsprechenden "+ context.xml +" - Dateien.

Geben Sie für die Manager-App Folgendes ein:

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

Geben Sie für die Host Manager-App Folgendes ein:

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

Kommentieren Sie die Einschränkung der IP-Adresse aus, um Verbindungen von überall zuzulassen. Wenn Sie alternativ den Zugriff nur auf Verbindungen zulassen möchten, die von Ihrer eigenen IP-Adresse stammen, können Sie Ihre öffentliche IP-Adresse zur Liste hinzufügen:

context.xml-Dateien für Tomcat-Webanwendungen

<Context antiResourceLocking="false" privileged="true" >
 <Valve className="org.apache.catalina.valves.RemoteAddrValve"
        allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
</Context>

Speichern und schließen Sie die Dateien, wenn Sie fertig sind.

Starten Sie den Tomcat-Dienst neu, damit die Änderungen wirksam werden:

sudo systemctl restart tomcat

Schritt 8 - Greifen Sie auf das Webinterface zu

Nachdem wir einen Benutzer erstellt haben, können wir in einem Webbrowser erneut auf die Webverwaltungsoberfläche zugreifen. Sie können wieder zur richtigen Benutzeroberfläche gelangen, indem Sie den Domain-Namen oder die IP-Adresse Ihres Servers eingeben, die Sie in Ihrem Browser an Port 8080 eingegeben haben:

Open in web browserhttp://:8080

Die Seite, die Sie sehen, sollte dieselbe sein, die Sie beim vorherigen Testen erhalten haben:

Werfen wir einen Blick auf die Manager-App, auf die Sie über den Link oder "+ http: //: 8080 / manager / html " zugreifen können. Sie müssen die Kontoanmeldeinformationen eingeben, die Sie der Datei " tomcat-users.xml +" hinzugefügt haben. Danach sollten Sie eine Seite sehen, die so aussieht:

Bild: https://assets.digitalocean.com/articles/tomcat9/manager.png [Tomcat Web Application Manager]

Der Web Application Manager dient zur Verwaltung Ihrer Java-Anwendungen. Sie können hier starten, stoppen, neu laden, bereitstellen und die Bereitstellung aufheben. Sie können auch einige Diagnosen für Ihre Apps ausführen (d. H. Speicherlecks finden). Zuletzt finden Sie Informationen zu Ihrem Server ganz unten auf dieser Seite.

Werfen wir nun einen Blick auf den Host-Manager, der über den Link oder "+ http: //: 8080 / host-manager / html / +" erreichbar ist:

Auf der Seite Virtual Host Manager können Sie virtuelle Hosts hinzufügen, über die Ihre Anwendungen bereitgestellt werden.

Fazit

Ihre Installation von Tomcat ist abgeschlossen! Sie können jetzt Ihre eigenen Java-Webanwendungen bereitstellen.

Derzeit ist Ihre Tomcat-Installation funktionsfähig, jedoch völlig unverschlüsselt. Dies bedeutet, dass alle Daten, einschließlich sensibler Elemente wie Kennwörter, im Klartext gesendet werden und von anderen Parteien im Internet abgefangen und gelesen werden können. Um dies zu verhindern, wird dringend empfohlen, dass Sie Ihre Verbindungen mit SSL verschlüsseln. Informationen zum Verschlüsseln Ihrer Verbindungen zu Tomcat finden Sie unter https://www.digitalocean.com/community/tutorials/how-to-encrypt-tomcat-8-connections-with-apache-or-nginx-on-ubuntu -16-04 [diese Anleitung] (note: Diese Anleitung behandelt die Tomcat 8-Verschlüsselung unter Ubuntu 16.04).