Apache HTTP Server Version 2.0
Unter Windows läuft der Apache üblicherweise als Dienst (Windows NT, 2000 und XP) oder als Konsolenanwendung (Windows 9x und ME). Für Einzelheiten lesen Sie bitte Apache als Dienst betreiben und Apache als Konsolenanwendung betreiben.
Unter Unix wird das httpd
-Programm als Daemon
ausgeführt, der im Hintergrund fortlaufend aktiv ist, um
Anfragen zu bearbeiten. Dieses Dokument beschreibt, wie
httpd
aufgerufen wird.
Wenn die in der Konfigurationsdatei angegebene Listen
-Anweisung auf die Voreinstellung
von 80 gesetzt ist (oder einen anderen Port unterhalb von 1024), dann
müssen Sie root-Berechtigung besitzen, um den Apache starten
zu können. Nur dann kann er sich an diesen privilegierten
Port binden. Sobald der Server gestartet ist und einige vorbereitende
Aktionen wie das Öffnen seiner Log-Dateien ausgeführt hat,
startet er mehrere Kind-Prozesse, welche die Arbeit erledigen:
das Lauschen auf und Beantworten von Anfragen von Clients. Der
Haupt-httpd
-Prozess läuft unter dem Benutzer root
weiter, die Kind-Prozesse jedoch werden unter weniger privilegierten
Benutzerkennungen ausgeführt. Dies wird von dem ausgewählten
Multi-Processing-Modul gesteuert.
Die Verwendung des Steuerskripts apachectl
ist die
empfohlene Methode, das httpd
-Programm zu starten.
Dieses Skript setzt verschiedene Umgebungsvariablen, die für die
korrekte Funktion von httpd
unter einigen
Betriebssystemen notwendig sind, und startet dann das
httpd
-Programm. apachectl
reicht alle Kommandozeilenargumente durch, so dass alle
httpd
-Optionen auch mit apachectl
verwendet werden können. Um den korrekten Ablageort des
httpd
-Programms sowie einige Kommandozeilenargumente
anzugeben, die Sie immer verwenden möchten, können
Sie auch das Skript apachectl
direkt editieren und die
Variable HTTPD
am Anfang ändern.
Das Erste was httpd
macht, wenn es startet, ist das
Suchen und Einlesen der Konfigurationsdatei httpd.conf
.
Der Ablageort dieser Datei wird zur Kompilierungszeit festgelegt. Es ist
aber möglich, den Ablageort zur Laufzeit anzugeben, indem die
Kommandozeilenoption -f
wie folgt verwendet wird:
/usr/local/apache2/bin/apachectl -f
/usr/local/apache2/conf/httpd.conf
Wenn während des Starts alles gutgeht, trennt sich der Server
vom Terminal ab und die Eingabeaufforderung erscheint gleich darauf
wieder. Dies zeigt an, dass der Server hochgefahren ist und läuft.
Sie können nun Ihren Browser benutzen, um Verbindung zum Server
aufzunehmen und sich die Testseite im DocumentRoot
-Verzeichnis anzusehen wie auch
die lokale Kopie der Dokumentation, die von dieser Seite aus verlinkt
ist.
Wenn der Apache während des Hochfahrens einen schweren Fehler
feststellt, schreibt er entweder eine Nachricht, die das Problem
näher schildert, auf die Konsole oder ins ErrorLog
, bevor er sich selbst beendet.
Eine der häufigsten Fehlermeldungen ist "Unable
to bind to Port ...
" (Anm.d.Ü.: "Kann nicht an Port ...
binden"). Diese Meldung wird üblicherweise verursacht:
Für weitere Anleitungen zur Fehlerbehebung lesen Sie bitte die Apache-FAQ.
Wenn Sie möchten, dass Ihr Server direkt nach einem
System-Neustart weiterläuft, sollten Sie einen Aufruf von
apachectl
zu den Startdateien Ihres Systems
hinzufügen (üblicherweise rc.local
oder
eine Datei in einem rc.N
-Verzeichnis). Dies startet
den Apache als root. Stellen Sie zuvor jedoch sicher, dass Ihr
Server hinsichtlich Sicherheit und Zugriffsbeschränkungen
richtig konfiguriert ist.
Das apachectl
-Skript ist dafür ausgelegt, wie
ein Standard-SysV-init-Skript zu arbeiten. Es akzeptiert die Argumente
start
, restart
und stop
und übersetzt sie in die entsprechenden Signale für
httpd
. Daher können Sie oftmals
einfach apachectl
in das entsprechende init-Verzeichnis
linken. Überprüfen Sie bitte auf jeden Fall die genauen
Anforderungen Ihres Systems.
Weitere Informationen über Kommandozeilenoptionen von httpd
und apachectl
sowie anderen
Hilfsprogrammen, die dem Server beigefügt sind, sind auf der
Seite Server und Hilfsprogramme
verfügbar. Es existiert außerdem eine Dokumentation
aller in der Apache-Distribution enthaltenen Module und der von ihnen bereitgestellten
Direktiven.