Crmgo Blog

http.conf-Direktiven

http.conf-Direktiven

ServerRoot Pfad zu den ausführbaren Dateien des Apache HTTP-Servers. Listen Legt den Port und die IP-Adresse fest, die Apache „abhört“. Standardmäßig versuchen alle Browser, eine HTTP-Verbindung zum Apache-Server über Port 80 herzustellen. Wenn Sie einen anderen Port, z. B. 9031, einstellen, müssen Sie zur Anzeige der Seite in…

http.conf-Direktiven

ServerRoot Pfad zu den ausführbaren Dateien des Apache-HTTP-Servers. Listen Legt den Port und die IP-Adresse fest, die von Apache „abgehört“ werden. Standardmäßig versuchen alle Browser, eine HTTP-Verbindung zum Apache-Server über Port 80 herzustellen. Wenn ein anderer Port, beispielsweise 9031, eingestellt wird, muss zur Anzeige der Seite im Browser nach der Adresse zusätzlich der Port durch einen Doppelpunkt angegeben werden, z. B.: http://localhost:9031. In dieser Direktive kann auch eine einzelne IP-Adresse angegeben werden, die von Apache verarbeitet werden soll (z. B. Listen 192.168.0.10:80), wenn der Computer über zwei oder mehr IP-Adressen verfügt. DocumentRoot Diese Direktive in der httpd.conf bestimmt das Verzeichnis, in dem sich die HTML-Dateien und andere Dateien einer Website befinden. Falls die Unterstützung von zwei oder mehr Websites durch einen einzelnen Apache-Server erforderlich ist, sollte die Container-Direktive <VirtualHost></VirtualHost> verwendet werden. Bei der Verwendung virtueller Hosts darf bei der Konfiguration der Zugriffsrechte für das in der Zeile „DocumentRoot“ angegebene Verzeichnis nicht vergessen werden, da die Seiten dieses Verzeichnisses Benutzern angezeigt werden, die eine Domain eingegeben haben, die nicht in VirtualHost definiert ist. <Directory>
...
</Directory>

Direktiven, die innerhalb des Directory-Containers angegeben sind, wirken sich auf alle Dateien und Ordner des angegebenen Verzeichnisses aus. Der Pfad zum Verzeichnis wird unmittelbar nach dem Wort Directory angegeben, z. B.: Codeblock
<Directory "C:/apache2.2.19/htdocs"> ... Direktiven ... </Directory>

konfiguriert das Verhalten des angegebenen Verzeichnisses. Anstelle des Verzeichnisnamens können auch reguläre Ausdrücke verwendet werden. Options Die Direktive Options bestimmt, welche Serverfunktionen in einem bestimmten Verzeichnis verfügbar sind.

  • All - Alle Optionen sind erlaubt, außer MultiViews (wird standardmäßig festgelegt).
  • None - Alle Optionen sind verboten.
  • ExecCGI - Die Ausführung von CGI-Skripten ist erlaubt.
  • FollowSymLinks - Der Server folgt symbolischen Links in diesem Verzeichnis.
  • Includes - SSI (Server-Side Includes) ist erlaubt.
  • IncludesNOEXEC - SSI ist erlaubt, aber die Befehle #exec und #include in CGI-Skripten sind blockiert.
  • Indexes - Wenn die angeforderte URL einem Verzeichnis entspricht und in diesem Verzeichnis nichts dem DirectoryIndex entspricht (z. B. Index.htm), gibt der Server eine Liste aller Dateien und Unterverzeichnisse zurück.
  • MultiViews - Content-Negotiation mit MultiViews ist erlaubt.
  • SymLinksIfOwnerMatch - Der Server folgt nur den symbolischen Links, bei denen die Ziel-Datei oder das Ziel-Verzeichnis denselben Benutzer-Identifikator (UID) haben wie der Link selbst.
Wenn mehrere Optionen der Direktive Options auf ein Verzeichnis angewendet werden und anschließend andere Optionen auf sein Unterverzeichnis, gelten die Optionen des übergeordneten Verzeichnisses nicht für das Unterverzeichnis.
Beispiel Nr. 1 - Vererbung von Optionen:
<Directory "c:/www"> Options Indexes FollowSymLinks </Directory>

<Directory "c:/www/otherdir">
Options Includes
</Directory>

In diesem Beispiel werden dem Verzeichnis c:/www und allen seinen Unterverzeichnissen außer c:/www/otherdir die Optionen „Indexes“ und „FollowSymLinks“ zugewiesen. Das Unterverzeichnis c:/www/otherdir und alle seine Unterverzeichnisse erhalten jedoch nur die Option „Includes“.

Mit den Symbolen "+" und "-" können Sie beliebige Optionen für ein Unterverzeichnis hinzufügen oder entfernen.
Beispiel Nr. 2 – Vererbung von Optionen:
<Directory "c:/www"> Options Indexes FollowSymLinks </Directory>

<Directory "c:/www/otherdir">
Options +Includes -Indexes
</Directory>

In diesem Fall verfügt das Verzeichnis c:/www/otherdir über die Option „FollowSymLinks“ (für das übergeordnete Verzeichnis hinzugefügt) und „Includes“ (hinzugefügt durch das Zeichen "+"). Die Option „Indexes“ wurde aus dem Verzeichnis c:/www/otherdir mit dem Zeichen "-" entfernt. AllowOverrideDie Option AllowOverride weist Apache an, welche Direktiven in der Datei .htaccess zulässig sind (der Dateiname ".htaccess" oder ein anderer Name wird durch die Direktive AccessFileName festgelegt).

  • All – Alle Direktiven sind verfügbar (Standardwert).
  • None – .htaccess wird nicht verarbeitet.
  • AuthConfig – Zulassung der Verwendung von Zugriffsdirektiven (AuthDBMGroupFile, AuthDBMUserFile, AuthGroupFile, AuthName, AuthType, AuthUserFile, require usw.).
  • FileInfo – Zulassung der Verwendung von Direktiven zur Steuerung von Dokumenttypen (AddEncoding, AddLanguage, AddType, DefaultType, ErrorDocument, LanguagePriority usw.).
  • Indexes – Zulassung der Verwendung von Direktiven zur Steuerung der Verzeichnisindizierung (AddDescription, AddIcon, AddIconByEncoding, AddIconByType, DefaultIcon, DirectoryIndex, FancyIndexing, HeaderName, IndexIgnore, IndexOptions, ReadmeName usw.).
  • Limit – Zulassung der Verwendung grundlegender Zugriffskontroll-Direktiven (allow, deny und order).
  • Options[=Option,...] – Zulassung der Verwendung von Direktiven zur Steuerung spezifischer Verzeichnismerkmale (Options und XBitHack).
Aus Leistungs- und Sicherheitsgründen sollte für das Hauptverzeichnis des HTTP-Servers Apache "/", das im Container <Directory /> angegeben ist, der Wert AllowOverride auf None festgelegt werden: AllowOverride None.

Order Die Direktive Order steuert den Standardzustand des Zugriffs sowie die Reihenfolge, in der Zugriff gewährt oder verweigert wird. Order kann drei Werte annehmen:

  • Allow,Deny – Zugriff ist standardmäßig verboten, außer für Hosts, die in der Zeile nach „Allow from“ angegeben sind.
  • Deny,Allow – Zugriff ist standardmäßig erlaubt, außer für Hosts, die in der Zeile nach „Deny from“ angegeben sind.
  • Mutual-failure – Zugriff wird nur für Hosts gewährt, die in Allow vorhanden und in Deny nicht vorhanden sind.
Am häufigsten werden die Werte Allow, Deny und Deny,Allow verwendet. Der Standardwert wird durch das letzte Wort (Allow oder Deny) festgelegt. Zwischen den Wörtern Allow und Deny in der Order-Direktive darf sich nur ein Komma befinden, ohne Leerzeichen.
In den Beispielen 1-3 wurden aus Platzgründen die öffnenden und schließenden Container <Directory ...></Directory> weggelassen; bei der Konfiguration von Apache sind sie zwingend erforderlich.
Beispiel 1 legt in der ersten Zeile „Order Deny,Allow“ die Reihenfolge der Auswertung der Zugriffsrechte fest: Zuerst werden alle verweigernden Rechte (Deny from...) gelesen, danach die erlaubenden Rechte (Allow from). Standardmäßig wird Allow festgelegt. Die zweite Zeile „Deny from all“ untersagt allen Hosts den Zugriff auf alle Domänen. Die dritte Zeile „Allow from apache.org“ erlaubt den Zugriff auf die Domäne apache.org.
Beispiel 1: Zuweisung von Zugriffsrechten
Order Deny,Allow Deny from all Allow from apache.org
Das folgende Beispiel 2 erlaubt den Zugriff nur auf die Domäne apache.org, mit Ausnahme des Subdomains foo.apache.org (Deny from foo.apache.org). Alle anderen Domänen sind nicht zugänglich.
Beispiel 2: Zuweisung von Zugriffsrechten
Order Allow,Deny Allow from apache.org Deny from foo.apache.org
Beispiel 3 unterscheidet sich von Beispiel 2 nur durch den Wert der Order-Direktive: „Deny,Allow“ statt „Allow,Deny“. Die Logik der Rechtevergabe durch Apache ändert sich auf den ersten Blick jedoch unerwartet. Der Zugriff wird auf alle Domänen geöffnet, sogar auf das Subdomain foo.apache.org, das explizit durch die Zeile „Deny from foo.apache.org“ verboten ist. Dies geschieht, weil die Reihenfolge der Zeilen „Allow from ...“ und „Deny from ...“ keine Rolle spielt. Die Reihenfolge der Regelbewertung wird durch die Order-Direktive festgelegt. Daher verbietet Apache zunächst den Zugriff auf foo.apache.org und überschreibt diese Regel anschließend aufgrund der Direktive „Allow from apache.org“.
Beispiel 3: Zuweisung von Zugriffsrechten
Order Deny,Allow Allow from apache.org Deny from foo.apache.org
Beispiel 4 untersagt den Zugriff auf das Verzeichnis C:/www standardmäßig, selbst ohne Verwendung der Zeile „Deny from ...“.
Beispiel 4: Zuweisung von Zugriffsrechten
<Directory "C:/www"> Order Allow,Deny </Directory>

Zusätzliche Informationen zu den Direktiven Allow, Deny und Order finden Sie in der offiziellen Apache2.2-Dokumentation (engl.). <VirtualHost>
...
</VirtualHost>

Der Container <VirtualHost>...</VirtualHost> wird verwendet, um verschiedene Websites von einem einzelnen Apache-Server zu verarbeiten. Alle Direktiven, die im VirtualHost-Container notiert sind, gelten ausschließlich für eine einzelne Website. Eine Website (eine Gruppe von Dateien und Verzeichnissen) kann über eine oder mehrere Domains oder IP-Adressen erreichbar sein.
Der spezielle Name _default_ kann definiert werden, wenn dieser spezifische virtuelle Host auf jede IP-Adresse zutrifft, die in der Konfiguration eines anderen VirtualHost nicht explizit angegeben ist. Wenn keine _default_-VirtualHost-Deklaration in der Serverkonfiguration vorhanden ist und die Anfrage nicht zu einem der bekannten VirtualHosts passt, wird die Antwort vom Hauptserver bereitgestellt, dessen Verzeichnis durch die Direktive DocumentRoot festgelegt wird.
In jedem VirtualHost-Container können nahezu alle Apache-Direktiven verwendet werden, was die Möglichkeit bietet, jede Website detailliert zu konfigurieren.
Beispiel für die Unterstützung von zwei verschiedenen Websites durch einen einzelnen Apache-Server
<VirtualHost *:80> ServerName first.loc ServerAlias www.first.loc DocumentRoot "c:/www/first.loc/public" ErrorLog "c:/www/first.loc/logs/error.log" </VirtualHost>

<VirtualHost *:80>
ServerName second.loc
ServerAlias www.second.loc
DocumentRoot "c:/www/second.loc/public"
ErrorLog "c:/www/second.loc/public"
</VirtualHost>

Hinweis: Dieser Beitrag kann KI-unterstützt erstellt und anschließend redaktionell geprüft worden sein. Verantwortlich: Dmytro Lomaka, Kaltenkirchen.