Lässt sich nicht feststellen, wo das Problem liegt, können die Fehlerstufen höher eingestellt werden, um mehr Informationen zu erhalten. Nach einer Änderung des Levels muss der Server beendet und neu gestartet werden.
Im Grunde gibt es zwei Protokolldateien in Apache: error_log, wie in diesem Abschnitt beschrieben, und access_log. Die error_log-Datei ist natürlich für eine Fehlersuche am ergiebigsten. Dennoch sollte auch das Zugriffsprotokoll access_log bei der Suche nach Problemlösungen benutzt werden. Diese Datei listet alle Daten, die von Clients abgerufen wurden, zusammen mit dem HTTP-Fehler- oder Success-Code auf.
Wissen, wo man sucht, heißt auch, dass man wissen muss, was eigentlich auf dem Server läuft. In Verbindung mit dem httpd-Befehl können die -l– und -M-Parameter benutzt werden, um zu sehen, was in der Apache-Konfiguration geladen ist. Der -l-Parameter führt die Module auf, die in den Server kompiliert sind. Er zeigt jedoch nicht dynamisch geladene Module an, die über den LoadModule-Eintrag in httpd.conf mit erfasst werden. Der -M-Parameter liefert dagegen mehr Informationen und listet alle geladenen statischen und gemeinsam genutzten Module.
4. Ein Allow-Override ist keine Katastrophe
Je nachdem, wie die Website betrieben werden soll, kann das Verhalten des Apache-Servers durch die Verwendung von .htaccess-Dateien selektiv verändert werden. Einfach ausgedrückt ist eine .htaccess-Datei eine Datei in einem Verzeichnis, die Konfigurationsänderungen zulässt, die sich nur auf diesen Ordner auswirken. Werden zum Beispiel die „Indexes“ in httpd.conf für alle Verzeichnisse deaktiviert, können Besucher auf keine Verzeichnisliste zugreifen. Soll jedoch der Zugriff auf einen einzelnen Ordner erlaubt sein, gibt es eine .htaccess-Datei mit dem Eintrag „Options Indexes“.
Damit wird allmählich auch klar, warum .htaccess-Dateien problematisch sein können. Zum einen ist es bei sehr großen Websites sehr schwierig, den Überblick über diese Dateien zu behalten. Taucht ein Funktionsproblem auf, ist es müßig, nur in einer Quelle nach eventuellen Konfigurationsproblemen zu suchen. Man muss also über die gesamte Verzeichnisstruktur nach .htaccess-Dateien suchen. Zweitens besteht die Gefahr, dass aufgrund der Erlaubnis, diese Dateien zu benutzen, Besucher, die zu wenig über die Apache-Security wissen, potenziell unsichere Änderungen an der Website vornehmen.
Und schließlich kann es sein, dass die Benutzung von .htaccess mit Performance-Einbußen auf der Website einhergeht. Denn der Webserver muss im aktuellen und in jedem übergeordneten Verzeichnis bis hin zum Dokument-Stammverzeichnis nach einer .htaccess-Datei suchen.
Liegen keine wichtigen Gründe vor, ist die Benutzung von .htaccess-Dateien also zu vermeiden. Stattdessen sollte man eher großzügigen Gebrauch von den „Verzeichnis“-Abschnitten in der httpd.conf-Datei machen, um die Optionen für jedes Verzeichnis einzurichten.
Werden andererseits .htaccess-Dateien benutzt, sie scheinen aber nicht aktiviert zu sein, kann man sich in der httpd.conf-Datei vergewissern, dass der AllowOverride-Eintrag nicht auf „None“ eingestellt ist. Welche Optionen in einer .htaccess-Datei zugelassen sind, kann durch die Veränderung des Eintragstyps von AllowOverride beschränkt werden. Die folgende Apache-Dokumentation listet mögliche AllowOverride-Optionen auf. Nur wirklich benötigte Optionen sollten benutzt werden.
- All: Lässt die Verwendung sämtlicher in dieser Tabelle aufgelisteten Einträge zu. Dies gilt im Allgemeinen als großes Sicherheitsrisiko, da es Benutzern erlaubt, httpd.conf-Einstellungen außer Kraft zu setzen, etwa das Verbot, symbolischen Verknüpfungen zu folgen.
- None: Verbietet die Verwendung von .htaccess-Dateien.
- AuthConfig: Erlaubt die Benutzung der Autorisierungs-Einträge (AuthDBMGroupFile, AuthDBMUserFile, AuthGroupFile, AuthName, AuthType, AuthUserFile, Require und so weiter).
- FileInfo: Lässt die Verwendung der Einträge zu, die die Dokumenttypen kontrollieren (DefaultType, ErrorDocument, ForceType, LanguagePriority, SetHandler, SetInputFilter, SetOutputFilter sowie mod_mime Add*– und Remove*-Einträge).
- Indexes: Erlaubt die Verwendung der Einträge, die die Verzeichnis-Indizierung kontrollieren (AddDescription, AddIcon, AddIconByEncoding, AddIconByType, DefaultIcon, DirectoryIndex, FancyIndexing, HeaderName, IndexIgnore, IndexOptions, ReadmeName und so weiter).
- Limit: Gestattet eine Verwendung der Einträge, die den Host-Zugang kontrollieren (Allow, Deny und Order).
- Options: Lässt die Verwendung der Einträge, die spezifische Verzeichniseigenschaften kontrollieren (Options und XBitHack), zu.
Neueste Kommentare
Noch keine Kommentare zu Zehn Tipps zur Fehlersuche beim Apache-Server
Kommentar hinzufügenVielen Dank für Ihren Kommentar.
Ihr Kommentar wurde gespeichert und wartet auf Moderation.