Wie man Apache Tomcat 10 auf Debian 10 installiert
Apache Tomcat ist ein Open-Source und der beliebteste Webapplikationsserver, um Java-basierte Anwendungen zu hosten. Er kommt mit Java Servlet, JavaServer Pages (JSP), Java EL und bietet eine Umgebung, um Java Codes auszuführen. Tomcat bietet ein reichhaltiges Set an Features, wie z.B. leichtgewichtig, hochflexibel, gut dokumentiert, bietet ein zusätzliches Maß an Sicherheit, ausgereift und mehr.
In diesem Tutorial werden wir erklären, wie man Apache Tomcat 10 auf einem Debian 10 Server installiert.
Voraussetzungen
- Ein Server, auf dem Debian 10 läuft.
- Ein gültiger Domainname, der auf die IP deines Servers zeigt.
- Ein root-Passwort ist auf dem Server konfiguriert.
Erste Schritte
Bevor du beginnst, aktualisiere deine Systempakete auf die neueste Version mit dem folgenden Befehl:
apt-get update -y
Sobald alle Pakete aktualisiert sind, kannst du mit dem nächsten Schritt fortfahren.
Java installieren
Apache Tomcat ist eine Java-basierte Anwendung. Daher musst du Java auf deinem Server installieren. Du kannst Java mit dem folgenden Befehl installieren:
apt-get install default-jdk -y
Nach der Installation überprüfst du die Java-Version mit dem folgenden Befehl:
java --version
Die folgende Ausgabe zeigt dir die Java-Version, die auf deinem Server installiert ist.
openjdk 11.0.11 2021-04-20 OpenJDK Runtime Environment (build 11.0.11+9-post-Debian-1deb10u1) OpenJDK 64-Bit Server VM (build 11.0.11+9-post-Debian-1deb10u1, mixed mode, sharing)
Sobald du damit fertig bist, kannst du mit dem nächsten Schritt fortfahren.
Apache Tomcat installieren
Zum Zeitpunkt der Erstellung dieses Tutorials ist die letzte verfügbare Version von Apache Tomcat 10.0.7.
Als erstes fügst du mit dem folgenden Befehl den Benutzer hinzu, der Apache Tomcat ausführen soll:
useradd -m -d /opt/tomcat -U -s /bin/false tomcat
Als nächstes lade den Apache Tomcat 10 mit dem folgenden Befehl herunter:
wget https://mirrors.estointernet.in/apache/tomcat/tomcat-10/v10.0.7/bin/apache-tomcat-10.0.7.tar.gz
Sobald der Download abgeschlossen ist, extrahiere die heruntergeladene Datei in das Verzeichnis /opt/tomcat mit dem folgenden Befehl:
tar -xzvf apache-tomcat-10.0.7.tar.gz -C /opt/tomcat --strip-components=1
Als Nächstes musst du mit folgendem Befehl die Eigentumsrechte für das Verzeichnis /opt/tomcat festlegen:
chown -R tomcat:tomcat /opt/tomcat/
Sobald du damit fertig bist, kannst du mit dem nächsten Schritt fortfahren.
Tomcat Web Admin Benutzer erstellen
Als nächstes musst du einen Admin-Benutzer erstellen, um auf das Tomcat Admin-Interface zugreifen zu können. Du kannst ihn erstellen, indem du die Datei tomcat-users.xml bearbeitest:
nano /opt/tomcat/conf/tomcat-users.xml
Füge die folgenden Zeilen vor der letzten Zeile ein:
<role rolename="manager-gui" /> <user username="manager" password="pasword" roles="manager-gui" /> <role rolename="admin-gui" /> <user username="admin" password="password" roles="manager-gui,admin-gui" />
Speichere und schließe die Datei, nachdem du fertig bist. Du kannst nun mit dem nächsten Schritt fortfahren.
Fernzugriff auf Tomcat zulassen
Standardmäßig ist Tomcat so konfiguriert, dass er nur vom lokalen System aus zugreifen kann. Daher musst du Tomcat so konfigurieren, dass er vom entfernten System aus zugegriffen werden kann.
Als erstes musst du die Datei context.xml bearbeiten, um den Fernzugriff auf die Tomcat Manager Anwendung zu erlauben:
nano /opt/tomcat/webapps/manager/META-INF/context.xml
Entferne oder kommentiere die folgenden Zeilen aus:
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
Speichere und schließe die Datei und bearbeite dann die Datei context.xml, um den Fernzugriff auf die Tomcat-Hostmanager-Anwendung zu erlauben:
nano /opt/tomcat/webapps/host-manager/META-INF/context.xml
Entferne die folgenden Zeilen:
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
Speichere und schließe die Datei, wenn du fertig bist. Du kannst nun mit dem nächsten Schritt fortfahren.
Erstelle eine Systemd Unit Datei für Tomcat
Als nächstes musst du eine systemd unit Datei erstellen, um den Tomcat Dienst zu verwalten. Du kannst sie mit dem folgenden Befehl erstellen:
nano /etc/systemd/system/tomcat.service
Füge die folgenden Zeilen ein:
[Unit] Description=Tomcat After=network.target [Service] Type=forking User=tomcat Group=tomcat Environment="JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-amd64" Environment="JAVA_OPTS=-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
Speichere und schließe die Datei und lade dann den systemd-Daemon neu, um die Änderungen zu übernehmen:
systemctl daemon-reload
Starte als Nächstes den Tomcat-Dienst und aktiviere ihn mit dem folgenden Befehl, damit er beim Neustart des Systems startet:
systemctl start tomcat systemctl enable tomcat
Du kannst nun den Status des Tomcat-Dienstes mit dem folgenden Befehl überprüfen:
systemctl status tomcat
Du solltest die folgende Ausgabe erhalten:
? tomcat.service - Tomcat Loaded: loaded (/etc/systemd/system/tomcat.service; disabled; vendor preset: enabled) Active: active (running) since Thu 2021-07-01 04:58:39 UTC; 15s ago Process: 5706 ExecStart=/opt/tomcat/bin/startup.sh (code=exited, status=0/SUCCESS) Main PID: 5713 (java) Tasks: 29 (limit: 2359) Memory: 154.7M CGroup: /system.slice/tomcat.service ??5713 /usr/lib/jvm/java-1.11.0-openjdk-amd64/bin/java -Djava.util.logging.config.file=/opt/tomcat/conf/logging.properties -Djava.ut Jul 01 04:58:39 tomcat systemd[1]: Starting Tomcat... Jul 01 04:58:39 tomcat startup.sh[5706]: Tomcat started. Jul 01 04:58:39 tomcat systemd[1]: Started Tomcat.
Zu diesem Zeitpunkt ist Tomcat gestartet und lauscht auf Port 8080. Du kannst es mit dem folgenden Befehl überprüfen:
ss -antpl | grep 8080
Du solltest die folgende Ausgabe erhalten:
LISTEN 0 100 *:8080 *:* users:(("java",pid=5713,fd=43))
Sobald du fertig bist, kannst du mit dem nächsten Schritt fortfahren.
Nginx für Tomcat konfigurieren
Als nächstes empfiehlt es sich, Nginx als Reverse Proxy zu verwenden, um auf die Tomcat Anwendung zuzugreifen.
Als erstes installierst du den Nginx Webserver mit dem folgenden Befehl:
apt-get install nginx -y
Sobald Nginx installiert ist, erstelle eine neue Nginx Virtual Host Konfigurationsdatei:
nano /etc/nginx/conf.d/tomcat.conf
Füge die folgenden Zeilen hinzu:
server { listen 80; server_name tomcat.example.com; access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; location / { proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Server $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://127.0.0.1:8080/; } }
Speichere und schließe die Datei, wenn du fertig bist, dann überprüfe den Nginx auf Syntaxfehler mit dem folgenden Befehl:
nginx -t
Du solltest die folgende Ausgabe erhalten:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
Starte als nächstes den Nginx neu, um die Änderungen zu übernehmen:
systemctl restart nginx
Du kannst auch den Status des Nginx-Dienstes mit folgendem Befehl überprüfen:
systemctl status nginx
Wenn alles in Ordnung ist, solltest du die folgende Ausgabe sehen:
? nginx.service - A high performance web server and a reverse proxy server Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2021-07-01 05:00:32 UTC; 6s ago Docs: man:nginx(8) Process: 6322 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS) Process: 6323 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS) Main PID: 6324 (nginx) Tasks: 2 (limit: 2359) Memory: 2.7M CGroup: /system.slice/nginx.service ??6324 nginx: master process /usr/sbin/nginx -g daemon on; master_process on; ??6325 nginx: worker process Jul 01 05:00:32 tomcat systemd[1]: Starting A high performance web server and a reverse proxy server... Jul 01 05:00:32 tomcat systemd[1]: nginx.service: Failed to parse PID from file /run/nginx.pid: Invalid argument Jul 01 05:00:32 tomcat systemd[1]: Started A high performance web server and a reverse proxy server.
Wenn du damit fertig bist, kannst du mit dem nächsten Schritt fortfahren.
Zugriff auf die Tomcat Anwendung
Öffne nun deinen Webbrowser und rufe die Tomcat Anwendung über die URL http://tomcat.example.com auf. Du wirst auf die folgende Seite weitergeleitet:
Klicke auf die Manage App. Du solltest die Anmeldeseite der Manager App sehen:
Gib deinen Admin-Benutzernamen und dein Passwort ein und klicke auf den Sign in Button. Du solltest das Manager App Dashboard auf der folgenden Seite sehen:
Um auf den Host Manager zuzugreifen, klicke auf den Host Manager auf der Tomcat Startseite. Du solltest die Tomcat Host Manager Anmeldeseite sehen:
Gib deinen Admin-Benutzernamen und dein Passwort ein und klicke auf den Sign in Button. Auf der folgenden Seite solltest du das Tomcat Host Manager Dashboard sehen:
Fazit
Herzlichen Glückwunsch! Du hast Apache Tomcat 10 erfolgreich auf einem Debian 10 Server installiert. Du kannst nun eine Java Anwendung erstellen und diese mit dem Apache Tomcat hosten. Fühle dich frei, mich zu fragen, wenn du irgendwelche Fragen hast.