Apache Tomcat ist ein kostenloser Open-Source-Webserver, der häufig zum Hosten von Webanwendungen verwendet wird, die in der Programmiersprache Java geschrieben sind. Es ist eine Implementierung von Jakarta Servlet und Jakarta Expression Language (ehemals Java Servlet und Java Expression Language) und anderen Java-Websocket-Technologien.
Apache Tomcat ist nicht gerade ein Webserver im Sinne von Apache oder Nginx. Es ist ein Anwendungsserver, der ein reines Java-HTTP-Ökosystem und Java-basierte Logik zur Bereitstellung von Java-Code bereitstellt.
In dieser Anleitung lernen wir Schritt für Schritt, wie man Apache Tomcat auf Debian 11 (Bullseye) installiert.
Schritt 1) OpenJDK installieren
Da Tomcat auf Java basiert, besteht der allererste Schritt darin, Java zu installieren, das von OpenJDK bereitgestellt wird. Wir werden OpenJDK 11 installieren, die neueste LTS-Version.
Aktualisieren Sie die Paketlisten, um OpenJDK 11 zu installieren.
$ sudo apt update
Führen Sie dann den folgenden Befehl aus, um OpenJDK 11 zu installieren.
$ sudo apt install openjdk-11-jdk -y
Führen Sie den folgenden Befehl aus, um die installierte Java-Version zu bestätigen:
$ java -version
Schritt 2) Laden Sie Apache Tomcat herunter und installieren Sie es
Nachdem die Installation von Java abgeschlossen ist, besteht unser nächster Schritt darin, Apache Tomcat herunterzuladen und zu installieren. Zum Zeitpunkt der Erstellung dieses Handbuchs war die neueste Version von Apache Tomcat v10.0.18.
Besuchen Sie die offizielle Download-Seite von Apache Tomcat und holen Sie sich die neueste Binärdatei oder verwenden Sie den wget-Befehl wie folgt.
$ wget https://downloads.apache.org/tomcat/tomcat-10/v10.0.18/bin/apache-tomcat-10.0.18.tar.gz
Erstellen Sie als Nächstes ein Verzeichnis im /opt-Verzeichnis.
$ sudo mkdir /opt/tomcat
Extrahieren Sie als Nächstes die Binärdatei mit dem Befehl tar im Pfad /opt/tomcat.
$ sudo tar -xvf apache-tomcat-10*tar.gz -C /opt/tomcat --strip-components=1
Schritt 3) Erstellen Sie einen neuen Benutzer und eine neue Gruppe für Tomcat
Es ist im Allgemeinen keine gute Idee, Webanwendungen mit dem Root-Benutzer zu testen, da der Benutzer leicht von einem Angreifer kompromittiert werden kann, was zu einer Systemverletzung führt.
In Anbetracht dessen werden wir einen Nicht-Root-Benutzer erstellen, der Zugriff auf das /opt/tomcat-Verzeichnis hat.
Erstellen Sie daher eine Gruppe namens Tomcat.
$ sudo groupadd tomcat
Erstellen Sie als Nächstes den Tomcat-Benutzer und fügen Sie ihn der Tomcat-Gruppe mit /opt/tomcat als Home-Verzeichnis hinzu.
$ sudo useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat
Schritt 4) Benutzerberechtigungen konfigurieren
Als nächstes werden wir die folgenden Eigentumsrechte und Berechtigungen für das /opt/tomcat-Verzeichnis mit den Befehlen chown bzw. chomd festlegen.
$ sudo chown -R tomcat: /opt/tomcat $ sudo sh -c 'chmod +x /opt/tomcat/bin/*.sh'
Schritt 5) Erstellen Sie eine systemd-Datei für Apache Tomcat
Wir müssen Apache Tomcat im Hintergrund als systemd-Dienst ausführen lassen, der gestartet, gestoppt und aktiviert werden kann. Standardmäßig wird Tomcat nicht mit einer systemd-Unit-Datei geliefert, und deshalb werden wir sie wie folgt manuell erstellen.
$ sudo vi /etc/systemd/system/tomcat.service
Fügen Sie den folgenden Codeblock ein, der die systemd-Dienstdatei definiert.
[Unit] Description=Tomcat webs servlet container After=network.target [Service] Type=forking User=tomcat Group=tomcat RestartSec=10 Restart=always Environment="JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-amd64" Environment="JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom" Environment="CATALINA_BASE=/opt/tomcat" Environment="CATALINA_HOME=/opt/tomcat" Environment="CATALINA_PID=/opt/tomcat/temp/tomcat.pid" Environment="CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC" ExecStart=/opt/tomcat/bin/startup.sh ExecStop=/opt/tomcat/bin/shutdown.sh [Install] WantedBy=multi-user.target
Speichern Sie die Änderungen und beenden Sie die Datei. Führen Sie dann den systemd-Generator erneut aus und laden Sie alle Unit-Dateien neu.
$ sudo systemctl daemon-reload
Um den Standardpfad für Java zu bestätigen, führen Sie den Befehl
aus$ sudo update-java-alternatives -l
Dies stimmt mit dem in der systemd-Dienstdatei angegebenen Pfad überein, was bedeutet, dass wir auf dem richtigen Weg sind.
Schritt 6) Tomcat-Daemon aktivieren und starten
Starten Sie mit der systemd-Datei von Tomcat den Apache Tomcat-Daemon und ermöglichen Sie ihm, beim Systemstart zu starten.
$ sudo systemctl daemon-reload $ sudo systemctl start tomcat $ sudo systemctl enable tomcat
Überprüfen Sie dann, ob Apache Tomcat ausgeführt wird
$ systemctl status tomcat
Aus der Ausgabe können wir sehen, dass der Tomcat-Daemon läuft, was bedeutet, dass unsere Konfiguration in Ordnung ist.
Schritt 7) Tomcat-Admin-Benutzer hinzufügen und Rollen konfigurieren
Wir müssen einen administrativen Benutzer konfigurieren, um auf die Abschnitte „Serverstatus“, „Host-Manager“ und „Manager-App“ auf der Tomcat-Webseite zuzugreifen. Andernfalls werden wir im Browser auf einen Fehler stoßen.
Dazu bearbeiten wir die Tomcat-Benutzerkonfigurationsdatei.
$ sudo vi /opt/tomcat/conf/tomcat-users.xml
Fügen Sie die folgenden Codezeilen direkt vor dem Tag ein. Sie können gerne Ihren eigenen Benutzernamen und Ihr eigenes Passwort angeben.
<role rolename="admin"/> <role rolename="admin-gui"/> <role rolename="manager"/> <role rolename="manager-gui"/> <user username="linuxtechi" password="<enetr-password-here>" roles="admin,admin-gui,manager,manager-gui"/>
Speichern Sie die Änderungen und schließen Sie die Konfigurationsdatei.
Schritt 8) Fernzugriff auf Apache Tomcat verwalten
Standardmäßig können Sie nur vom Hostsystem aus auf die Weboberfläche von Tomcat zugreifen. Wir müssen daher den Fernzugriff auf Tomcat Manager konfigurieren, indem wir die Konfigurationsdatei context.xml manuell bearbeiten.
$ sudo vi /opt/tomcat/webapps/manager/META-INF/context.xml
Scrollen Sie nach unten und kommentieren Sie diese Zeilen, indem Sie einfach am Ende hinzufügen.
<!-- <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" /> -->
Speichern Sie die Datei und beenden Sie sie. Als nächstes müssen wir den Fernzugriff auf den Host-Manager zulassen. Bearbeiten Sie also die Datei context.xml des Host-Managers.
$ sudo vi /opt/tomcat/webapps/host-manager/META-INF/context.xml
Kommentieren Sie den folgenden Textblock erneut aus, indem Sie am Ende hinzufügen.
<!-- <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" /> -->
Speichern Sie die Änderungen und beenden Sie die Konfigurationsdatei. Um alle vorgenommenen Änderungen zu übernehmen, starten Sie Tomcat neu.
$ sudo systemctl restart tomcat
Schritt 9) Zugriff auf Apache Tomcat
Tomcat ist jetzt vollständig konfiguriert und kann remote aufgerufen werden. Es bleibt noch ein Schritt übrig. Wenn Sie eine UFW-Firewall ausführen, ziehen Sie in Betracht, Port 8080 zu öffnen, der der Standardport ist, auf dem Apache Tomcat lauscht.
$ sudo ufw allow 8080 $ sudo ufw reload
Um schließlich auf die Weboberfläche von Tomcat zuzugreifen, starten Sie Ihren Browser und gehen Sie zur folgenden Adresse.
http://server-ip-addres:8080 or http://youdomain.com:8080
Dies sollte Sie wie gezeigt zur Standard-Startseite für den Tomcat-Webserver führen.
Um auf die Seite „Serverstatus“ zuzugreifen, klicken Sie auf „Serverstatus“. Ein Popup-Fenster wird angezeigt, in dem Sie zur Eingabe von Benutzeranmeldeinformationen aufgefordert werden. Geben Sie die in Schritt 6 angegebenen Admin-Anmeldeinformationen ein und klicken Sie auf „Anmelden“.
Ebenso werden Sie beim Zugriff auf den Tomcat-Anwendungsmanager zur Eingabe derselben Anmeldeinformationen aufgefordert, auf den Sie zugreifen können, indem Sie auf der Standard-Weboberfläche auf „Manager-App“ klicken.
Wenn Sie auf „Host Manager“ klicken, gelangen Sie wie abgebildet zum Abschnitt Virtual Host Manager.
Schlussfolgerung
Und es ist eine Hülle. In dieser Anleitung haben wir Sie durch die Installation auf dem Apache Tomcat-Webserver unter Debian 11 geführt. Alles Gute beim Hosten Ihrer Java-Anwendungen!