Apache Grundlagen

Konfigurationsdateien

Allgemeines

  • Speicheroert der Konfigdateien wird beim Kompilieren festgelegt, oder wird beim Start mit dem Schalter -f festgelegt
  • Default: [Programmverzeichnis]/conf/httpd.conf
  • Innerhalb der httpd.conf können weiter Konfigurationsdateien über den Befehl Include hinzugefügt werden
  • Änderungen in der httpd.conf werden nur bei einem Neustart verarbeitet

Syntax der Konfigurationsdateien

  • Eine Direktive pro Zeile (Zeilenumbruch mit ** einleiten)
  • Argumente werden durch Leerzeichen getrennt
  • Argumente, die Leerzeichen enthalten müssen in Anführungszeichen gesetzt werden
  • Direktiven sind nicht case-sensitive, die Argumente der Direktiven hingegen oft doch
  • Variablen müssen die Form ${VAR} haben
  • Variablen werden mit Define definiert. Es können aber auch Umgebungsvariablen verwendet werden (auch auf Windows?)
  • Syntaxfehler kann man leicht mit apachectl configtest oder -t finden

Module

  • Ein Basis-Set an Modulen wird direkt beim Kompilieren eingebunden
  • Weitere Module können über die LoadModule Direktive geladen werden
  • Konfigurations-Direktiven können in Abhängikeit von Module eingebunden werden. Dafür nutzt man den <IfModule> Block

Wirkungsbereich der Direktiven

  • Direktiven in der Hauptkonfiguration wirken auf dem ganzen Server
  • Direktiven in den einzelnen Sektionen (z.B. <Directory>, <Files>, Location>) wirken nur dort
  • Auch für einzelne virtuelle Hosts (<VirtualHost> Sektion) können Direktiven gesetzt werden, die nur dort Wirkung zeigen

Abschnitte (Section Containers)

  • Die meisten Container werden bei jedem Request verarbeitet
  • <IfDEfine>, <IfModule>, <IfVersion> werden nur beim Start des Servers verarbeitet
  • In <Directory>, <Files>, <Location> Direktiven können auch Wildcards eingesetzt werden
  • In <DirectoryMatch>, <FilesMatch>, <LocationMatch> Direktiven sind Perl-kompatible Reguläre Ausdrücke einsetzbar
  • Einige Section Typen lassen sich ineinander verschachteln. Dabei ist zu beachten, dass die verschachtelten Sektionen nach den nicht verschachtelten Sektionen des gleichen Typs verarbeitet werden
  • Wie die einzelnen Sektionen abgearbeitet werden ist hier detailliert erklärt

Filesystem Containers

  • Filesystem und Webspace Direktiven enthalten zwar beide Datei-Pfade, nur dass sich die Filesystem Direktiven auf das Dateisystem beziehen, und die Webspace Direktiven auf den Pfad im Webspace
  • Eine <Directory> Direktive wirkt sich auf das benannte Verzeichnis und alle Unterverzeichnisse aus
  • <Directory> und `´ Direktiven können auch kombiniert/verschachtelt werden

  • httpd ermöglicht die dezentrale Konfiguration über spezielle Dateien

  • Normalerweise heisen dies .htaccess. in der AccessFileName Direktive können aber auch andere Namen definiert werden.

  • Die Syntax entspricht der in der Hauptkonfiguration

  • Die Direktiven in diesen Dateien wirken auf das Verzeichnis, in dem sie liegen und allen Unterverzeichnissen

  • Welche Direktiven in diesen Dateien plaziert werden können hängt vom Kontext ab

  • Ausserdem kann der Server-Admin steuern, welche Direktiven dort plaziert werden können. Er nutzt dazu die AllowOverride Direktive in der Hauptkonfiguration

.htaccess Dateien

Virtual Hosts

Mit dem Aufruf apachectl -S kann man die Virtual Host Konfiguration debuggen

  • Virtuelle Hosts können auf Basis des Namens oder auf Basis der IP-Adresse angelegt werden. IP-basierte VHs benötigen eine eigene Adresse je Host
  • Wird dem Host keine explizite IP-Adresse gegeben (also *) sollte die Option ServerName gesetzt werden, weil sonst der in der Basis-Konfiguration hinterlegte Name oder (wenn auch der nicht vorhanden ist)der FQDN des System-Hostnamens verwendet wird
  • Innerhalb des <VirtualHost< Blocks sollte mindestens DocumentRoot und Severname gesetzt werden
  • Soll ein Server untermehreren Namen erreichbar sein, verwendet man die Option SeverAlias (Im DNS müssen diese Namen natürlich vorher richtig konfiguriert sein)
  • Viele andere Direktiven lassen sich auch im Block VirtualHost unterbringen. Sie überschreiben dann die in der Haupt-Konfiguration gesetzten Werte

Konfigurations Direktiven

  • DocumentRoot
  • ServerName
  • ServerAlias

Optionen

Referenz

Links