Manuelle Tomcat Installation unter Linux

veröffentlicht am 17. März 2013

Zahlreiche Distributionen erlauben bereits die komfortable Installation eines Tomcat Servers über die entsprechende Paketverwaltung. Da ich jedoch schon einmal massive Probleme mit den vorgefertigten Paketen hatte, installiere ich Tomcat inzwischen immer manuell. Die Installation des Tomcat wird hier unter Ubuntu 12.04 durchgeführt, sollte jedoch mit kleinen Abweichungen auch auf andere Distribution übertragbar sein.

Die Installation erfolgt in folgenden Schritten:

  • Java Development Kit installieren
  • Tomcat herunterladen und entpacken
  • Dedizierten Benutzer einrichten
  • Tomcat in den Systemstart einbinden

Java Development Kit installieren

Zunächst muss das Java Development Kit installiert werden. Das geht ganz einfach über die Paketverwaltung:

aptitude install openjdk-7-jdk

Der Java Experte wird erkennen, dass ich hier die OpenSource Variante von Java installiere. Die Behandlung anderer Varianten würde den Artikel sprengen. Für die Installation der Oracle Distribution kann ich jedoch die Oracle Java Anleitung bei ubuntuusers.de empfehlen.

Tomcat herunterladen und entpacken

Sobald Java installiert ist, kann auch schon mit der Tomcat Installation begonnen werden. Aktuell ist Tomcat in der Version 7, die von der Tomcat 7 Downloadseite bezogen werden kann. Sollte nichts anderes bekannt sein, wird die Core Variante im .tar.gz Format benötigt. Der Download Link muss zunächst in die Zwischenablage kopiert werden.

Jetzt wird in das Verzeichnis /usr/local gewechselt:

cd /usr/local

Dort wird das Tomcat Archiv heruntergeladen, entpackt, der entpackte Ordner umbenannt und danach die Archivdatei entfernt:

wget <Downloadlink>
tar xzf apache-tomcat-*.tar.gz
mv apache-tomcat-*/ tomcat
rm apache-tomcat-*.tar.gz

Dedizierten Benutzer einrichten

Aus Sicherheitsgrunden sollte der Tomcat Server nicht mit den Rechten eines anderen Benutzers oder gar dem root Benutzer ausgeführt werden. Stattdessen wird zur Ausführung des Tomcat ein eigener Benutzer angelegt:

useradd -s /bin/false -d /usr/local/tomcat tomcat

Danach müssen die erforderlichen Rechte auf das Verzeichnis gesetzt werden:

chown -R tomcat:tomcat /usr/local/tomcat

Tomcat in den Systemstart einbinden

Die grundlegende Einrichtung des Tomcat ist bereits abgeschlossen. Der Server könnte schon gestartet werden, indem die Datei startup.sh im bin Verzeichnis der Tomcat Installation ausgeführt wird. Der Tomcat Server soll jedoch zusammen mit dem Betriebssystem gestartet und beendet werden. Hierfür muss zunächst der als Quellcode mitgelieferte Daemon: Java Service kompiliert werden.

Für das Kompilieren werden ein Paar C Entwicklungswerkzeuge benötigt. Diese werden per

aptitude install -y build-essential

nachgerüstet. Danach muss der Pfad der Java Installation ermittelt werden. Das geht am einfachsten per:

readlink -f /usr/bin/javac | sed "s:/bin/javac::"

Zu der Datei /etc/environment muss nun folgende Zeile hinzugefügt werden:

JAVA_HOME=<Java Pfad>

Dadurch wird die systemweite Umgebungsvariable JAVA_HOME gesetzt, die sowohl zum Kompilieren des Java Service als auch später zum Starten des Tomcat benötigt wird. Damit die Umgebungsvariable sofort verfügbar ist, wird noch folgender Befehl ausgeführt:

export JAVA_HOME=<Java Pfad>

Jetzt kann mit der Installation des Services begonnen werden. Hierzu muss in das Verzeichnis /usr/local/tomcat/bin gewechselt werden:

cd /usr/local/tomcat/bin

Dort wird die Datei commons-daemon-native.tar.gz entpackt:

tar xzf commons-daemon-native.tar.gz

Danach muss in das Verzeichnis unix des entpackten Archivs gewechselt werden:

cd commons-daemon-*-native-src/unix

Zum Kompilieren des Service mussen folgende Befehle ausgeführt werden:

./configure
make

Danach wird der ausführbare Service an den richtigen Ort verschoben:

mv jsvc /usr/local/tomcat/bin

Jetzt fehlt nur noch die Einbindung des Service in den Systemstart. Dazu muss zunächst die Datei /etc/init.d/tomcat mit einem Texteditor geöffnet werden:

nano /etc/init.d/tomcat

In die geöffnete Datei wird nun folgender Inhalt kopiert:

#! /bin/bash

DAEMON=/usr/local/tomcat/bin/daemon.sh

case $1 in
        start)
                $DAEMON start
                ;;
        stop)
                $DAEMON stop
                ;;
        restart)
                $0 stop
                $0 start
                ;;
        *)
                echo "Usage: $0 {start|stop|restart}"
esac

Die Datei muss nur noch ausführbar gemacht und in das System eingebunden werden:

chmod +x /etc/init.d/tomcat
update-rc.d tomcat defaults

Die Installation des Tomcat ist nun abgeschlossen. Der Server kann über folgenden Befehl manuell gestartet werden:

/etc/init.d/tomcat start    # starten
/etc/init.d/tomcat stop     # stoppen
/etc/init.d/tomcat restart  # neustarten

Quellen und weiterführende Links

Kommentare

Thanks, it worked perfectly (I use suns java however)!
But I would add the sudo command to the description as most of the commands only work in admin mode.

Kommentar #1 von Konrad Höffner am 22. Dezember 2010


Hi Patrick!

Danke für den super Artikel! Hat mir sehr geholfen, als ich gestern meinen Ubuntu Server aufgesetzt habe. Nun laufen Tomcat und Jenkins problemlos :) Einzig allein die SSH Konfiguration für github hat mir ein wenig Kopfzerbrechen bereitet.

Viele Grüße,
Alex

Kommentar #2 von Alexander Untch am 10. November 2011


Was ist denn mit Upstart ?

Kommentar #3 von soe am 11. November 2011


Ich habe den Artikel soeben überarbeitet und mich nun an der offiziellen Tomcat Dokumentation orientiert. Unter anderem wird jetzt der native Java Service Daemon zur Ausführung des Tomcat verwendet, mit dem es auch möglich ist, privilegierte Ports (<1024) zu verwenden.

Kommentar #4 von Patrick am 17. März 2013


Sehr schöne Anleitung und großes Lob für die Arbeit.

In unserem Betrieb richten wir die Tomcats auch immer manuell ein. Man könnte noch einen weiteren Vorteil erwähnen, den man dadurch hat: Man ist dadurch in der Lage beliebig viele Tomcat-Instanzen gleichzeitig auf einem Server zu betreiben.
Starten und Stoppen tun wir die Tomcat allerdings mit dem durchaus praktischen Java Service Wrapper. Hier beschrieben: http://wrapper.tanukisoftware.com/doc/english/integrate-start-stop-nix.html

Viele Grüße

Kommentar #5 von Marcel am 24. September 2013


Hinterlasse einen Kommentar