Kickstart

Um zu prüfen, ob die Konfiguration funktioniert, wirft man den Webserver per

sudo hiawatha

an. Sollte er sich dabei gleich wieder mit der Fehlermeldung

Error binding IP-Adresse

verabschieden, hat Hiawatha entweder keine ausreichenden Rechte (for Ports unter 1024) oder es lauscht bereits ein konkurrierender Webserver am gleichen Port. Letzteres passiert leicht, wenn die Distribution einen eigenen Webserver wie Apache mitbringt. In einem solchen Fall wechselt man entweder den Port oder beendet den Konkurrenten, unter Ubuntu beispielsweise per »sudo /etc/init.d/apache2 stop« .

Falls jetzt noch die Fehlermeldung

Warning: can't write PID file /usr/local/var/run/hiawatha.pid

erscheint, fehlen Hiawatha die Zugriffsrechte auf das Verzeichnis »/usr/local/var/run« – was auf den Testsystemen in der Regel daran lag, dass das Verzeichnis schlichtweg nicht existierte. Sie können es einfach per Hand anlegen oder aber mit der Fehlermeldung leben: In der angegebenen »PID« -Datei speichert der Webserver lediglich seine Prozess-Identifikationsnummer. Alternativ können Sie in der »httpd.conf« auch noch per

PIDFile=<dateiname>

diese Datei an eine beliebige andere Stelle verlegen.

Ob Hiawatha ordnungsgemäß läuft, verrät ein Browser, mit dem man die Adresse »localhost« ansteuert. Es sollte dann die Testseite aus Abbildung 1 erscheinen.

Abbildung 1: Hiawatha läuft, sobald diese Testseite erscheint, die der Hiawatha-Homepage verblüffend ähnlich sieht.

Ein KILL-Signal, beispielsweise per »sudo killall hiawatha« beendet Hiawatha wieder. Diese Methode ist allerdings ziemlich rabiat und ungelenk, erst recht, wenn man den Webserver in den Bootprozess der Distribution einbinden möchte. Abhilfe verspricht das Skript »hiawatha« , das dem Quellcodearchiv im Unterverzeichnis »extras« beiliegt. Es soll Hiawatha etwas eleganter starten und stoppen, besitzt aber leider ein paar Schönheitsfehler. Zunächst einmal setzt es voraus, dass der Webserver die PID-Datei anlegen konnte. Zudem ist das Skript für Debian zurechtgeschnitten. Um es auch auf anderen Distributionen einsetzen zu können, muss man die Pfade in seinen ersten vier Zeilen an die eigenen Gegebenheiten anpassen.

Gassi gehen

Wie es sich für einen modernen Webserver in Zeiten des Web 2.0 geziemt, unterstützt Hiawatha die Ausführung von CGI-Programmen. Diese Fähigkeit muss der Admin allerdings erst explizit einschalten:

ExecuteCGI = yes

und anschließend noch festlegen, welche Dateiendung die CGI-Programme besitzen:

CGIextension = cgi

Im Fall von Skripten, beispielsweise bei PHP- oder Python-Anwendungen, benötigt Hiawatha noch Name und Speicherort des zuständigen Interpreters:

CGIhandler = /usr/bin/php5-cgi:php,php5

Bekommt Hiawatha später im Betrieb eine Datei mit der Endung ».php« oder ».php5« in die Finger, startet er den Interpreter »php5-cgi« aus dem Ordner »/usr/bin« und übergibt diesem das Skript. Das funktioniert analog mit anderen Skriptsprachen:

CGIhandler = /usr/bin/perl:pl
CGIhandler = /usr/bin/python:py

Damit fehlerhafte oder bösartige CGI-Programme oder -Skripte nicht gleich den gesamten Computer kapern, sollte man ihre Lebenszeit vorsichtshalber noch begrenzen. 5 Sekunden sollten für den Anfang genügen:

TimeForCGI = 5

Ähnliche Artikel

comments powered by Disqus

Artikel der Woche

Eigene Registry für Docker-Images

Wer selber Docker-Images herstellt, braucht auch eine eigene Registry. Diese gibt es ebenfalls als Docker-Image, aber nur mit eingeschränkter Funktionalität. Mit einem Auth-Server wird daraus ein brauchbares Repository für Images. (mehr)
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Google+

Ausgabe /2019