In einer Installation von Apache Webserver war es zunächst unklar,
wie das Serverprogramm httpd
seine Konfigurationsdatei findet. Zwar war über eine Option der Pfad zur Konfiguration angegeben, allerdings mit einem relativen Pfad, der nicht zum Residenzverzeichnis des Programms zu passen schien.
Ein Durchsuchen von Dokumentationen im Internet brachte keinen Aufschluss,
außerdem war es unmöglich, alle Fundstellen zu lesen. Einige Tests brachten Aufschluss; in Folge hier niedergeschrieben.
Was uns httpd
selbst verrät
Wir öffnen ein Kommandozeilenfenster (Eingabeaufforderung, Terminalfenster je nach Betriebssystem) und wechseln in das Installationsverzeichnis von httpd
. Im folgen eine Liste von Kommandos, die den Service selbst nicht starten, aber ihn etwas erzählen lassen.
# Kommandos zur Information über httpd
Testumgebung einrichten
Auf einer Speicherkarte wurde ein Ordner test
eingerichtet und
die nötigsten Dateien einkopiert, vermisst httpd
nur noch seine Konfigurationsdatei.
# minimale Testumgebung
D:\test>httpd
httpd: Could not open configuration file D:/test/conf/httpd.conf:
Das System kann den angegebenen Pfad nicht finden.
Herauszufinden, welche Dateien dazugehören, war relativ einfach. Wird httpd
aufgerufen, zeigt eine Fehlerausschrift, welche Datei vermisst wird.
Ist das Nötigste vorhanden, startet httpd. Mit Strg+C oder anderen Bordmitteln
kann der Prozess beendet werden.
Was genau httpd
sucht
Aus dem obigen Aufruf ist zu erkennen:
-
httpd
sucht eine Datei mit dem Namen httpd.conf
- Die Datei wird in dem Verzeichnis
conf
erwartet
-
conf
muss ein Unterverzeichnis des Installationsverzeichnisses sein, i.Bsp. also test/conf
httpd kennt auch bin
!
In der eingangs erwähnten Installation war jedoch die Konfigurationsdatei
an einer anderen Stelle; httpd
residierte in dem Verzeichnis bin
Um das nachzubilden, wurde ein Verzeichnis bin
unter test
angelegt und die Serverdateien dorthin verschoben.
# Aufruf in test/bin
D:\test\bin>httpd
httpd: Could not open configuration file D:/test/conf/httpd.conf:
Das System kann den angegebenen Pfad nicht finden.
Überraschung: httpd
sucht conf
jetzt nicht mehr im eigenen, sondern im übergeordneten Verzeichnis, i.Bsp. also auch jetzt in test/conf
.
Die Gegenprobe
Ist es wirklich so, dass httpd
seine Konfigurationssuche ändert, abhängig davon, ob er in bin
oder einem Verzeichnis mit anderem Namen residiert? Um das zu überprüfen, wurde bin
in mybin
umbenannt.
# Aufruf im umbenannten Installationsverzeichnis
D:\test\mybin>httpd
httpd: Could not open configuration file D:/test/mybin/conf/httpd.conf:
Das System kann den angegebenen Pfad nicht finden.
Tatsächlich, httpd
erwartet conf
jetzt wieder als Unterverzeichnis.