Apache Tomcat ist ein Open-Source-Webserver und Webcontainer, der die Spezifikation für Java Servlets und JavaServer Pages (JSP) implementiert und es damit erlaubt, in Java geschriebene Web-Anwendungen auf Servlet- beziehungsweise JSP-Basis auszuführen.
Das Tutorial zeigt wie man Tomcat in der Version 8 unter CentOS 7 installiert.
Benutzer tomcat erstellen
Sicherheitstechnisch sinnvoll ist es, den Tomcat nicht als root sondern als unpriviligierten User auszuführen. Dazu erstellen wir uns einen User tomcat und die dazugehörige Gruppe.
Zuerst erstellen wir die Gruppe tomcat.
# groupadd tomcat
Dann erstellen wir den User tomcat.
# useradd -M -s /bin/nologin -g tomcat -d /opt/tomcat tomcat
Dieser User kann sich nicht am System anmelden und sein Homeverzeichnis liegt unterhalb von /opt/tomcat. Dorthin legen wir dann auch die nötigen Tomcat-Daten. Ausserdem fügen wir den User gleich der passenden Gruppe tomcat hinzu.
Installation von Java
Tomcat setzt eine Installation von Java voraus. Das von der Distribution bereitgestellt OpenJDK sollte für unsere Zwecke reichen. Die Installation erfolgt mit yum.
# yum install java-1.7.0-openjdk-devel
Das JAVA_HOME Verzeichnis liegt unter /usr/lib/jvm/jre. Diesen Pfad benötigen wir später noch für unser System Unit File.
Nach der Installation sollte uns Java folgende Versionsnummer ausgeben:
# java -version java version "1.7.0_91" OpenJDK Runtime Environment (rhel-2.6.2.1.el7_1-x86_64 u91-b00) OpenJDK 64-Bit Server VM (build 24.91-b01, mixed mode)
Installation von Tomcat 8
Der einfachste Weg zum installieren von Tomcat ist der Download von der Tomcat-Seite und die anschliessende manuelle Konfiguration. Dazu gehen wir wie folgt vor:
Zuerst laden wir uns das gepackte Binary-Paket von Tomcat Server herunter.
# wget http://www.us.apache.org/dist/tomcat/tomcat-8/v8.0.28/bin/apache-tomcat-8.0.28.tar.gz
Anschliessend erstellen wir den Ordner /opt/tomcat und entpacken den Download in das eben erstellte Verzeichnis.
# mkdir /opt/tomcat # tar xvf apache-tomcat-8*tar.gz -C /opt/tomcat --strip-components=1
Anschliessend müssen wir noch die passenden Berechtigungen entsprechend setzten.
# chgrp -R tomcat /opt/tomcat/conf # chmod g+rwx /opt/tomcat/conf # chmod g+r /opt/tomcat/conf/* # chown -R tomcat /opt/tomcat/webapps/ /opt/tomcat/work/ /opt/tomcat/temp/ /opt/tomcat/logs/
Nun sollten alle Berechtigung richtig gesetzt sein und wir können mit den erstellen der Systemd Unit File für Tomcat fortfahren.
Systemd Unit File erstellen
Um tomcat mit dem Kommando systemctl start tomcat starten zu können benötigen wir ein sogeanntes Systemd Unit File. Die erstellen wir unter /etc/systemd/system/
# vi /etc/systemd/system/tomcat.service
und fügen folgenden Inhalt ein.
# Systemd unit file for tomcat [Unit] Description=Apache Tomcat Web Application Container After=syslog.target network.target [Service] Type=forking Environment=JAVA_HOME=/usr/lib/jvm/jre 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=/bin/kill -15 $MAINPID User=tomcat Group=tomcat [Install] WantedBy=multi-user.target
Nach dem Speichern müssen wir noch systemctl neu laden:
# systemctl daemon-reload
Anschliessen können wir Tomcat starten:
# systemctl start tomcat
Dann öffnen wir noch den Port in unserer Firewall falls nötig.
# firewall-cmd --zone=public --add-port=8080/tcp
Nun können wir unter der URL http://Server_IP:8080 testen ob der Tomcat läuft.
Tomcat konfigurieren
Um die mitgelieferten Tools wie Manager App, Server Status und Host Hanager nutzen zu können muss erst ein entsprechender User eingerichtet werden.
Dazu editieren wir die Datei /opt/tomcat/conf/tomcat-users.xml.
# vi /opt/tomcat/conf/tomcat-users.xml
Dort fügen wir die Zeile <user … > hinzu. In dieser Zeile wird auch das Passwort konfiguriert.
<tomcat-users> <user username="admin" password=„geheim“ roles="manager-gui,admin-gui"/> </tomcat-users>
Anschliessend starten wir den tomcat-Server neu.
# systemctl restart tomcat
Nun können wir mit den User und dem passenden Passwort auf die Tools zugreifen.
Weiter Infos zur Konfiguration von Tomcat finde man in der Dokumentation auf der Tomcat-Projekt-Seite.