Httpd.conf: Unterschied zwischen den Versionen

Aus Foxwiki
Änderung 99636 von Dirkwagner (Diskussion) rückgängig gemacht.
Markierung: Rückgängigmachung
K Textersetzung - „Kurzbeschreibung“ durch „Beschreibung“
 
(11 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
'''topic''' - Kurzbeschreibung
'''httpd.conf''' - Beschreibung
 
== Beschreibung ==
== Beschreibung ==
'''httpd.conf''' ist der [[Dateiname]] der [[Konfigurationsdatei]] eines [[Apache HTTP Server]]s
* Der Server liest verschiedene Konfigurationseigenschaften aus dieser [[Textdatei]]
* Diese Konfigurationseigenschaften können direkt in der Datei mithilfe von Superbenutzerberechtigungen bearbeitet werden
* Die httpd.conf-Datei kann sich auf jedem [[Unix]]-basierten System befinden
* Der Ablageort der ''httpd.conf'' wird bei der Kompilierung festgelegt, kann mit der Befehlszeilenoption -f überschrieben werden und durch Verwendung der [[Anweisung (Programmierung)|Direktive]] [[Include]] um weitere Konfigurationsdateien (wie ''ports.conf'') ergänzt werden


<noinclude>
Die dezentrale Verwaltung der Konfiguration des Apache erfolgt mittels spezieller Dateien innerhalb des Web-Verzeichnisbaums, die gewöhnlich [[.htaccess]] heißen
== Anhang ==
=== Siehe auch ===
{{Special:PrefixIndex/{{BASEPAGENAME}}}}
==== Links ====
===== Weblinks =====
# [https://httpd.apache.org/docs/current/configuring.html Beschreibung der Hauptkonfigurationsdateien auf der Apache-Project-Homepage]


= TMP =
== Konfigurationsdateien ==
'''httpd.conf''' ist üblicherweise der [[Dateiname]] der [[Konfigurationsdatei]] eines [[Apache HTTP Server]]s. Der Server liest verschiedene Konfigurationseigenschaften aus dieser [[Textdatei]]. Diese Konfigurationseigenschaften können direkt in der Datei mithilfe von Superbenutzerberechtigungen bearbeitet werden. Die httpd.conf-Datei kann sich auf jedem [[Unix]]-basierten System befinden. Der Ablageort der ''httpd.conf'' wird bei der Kompilierung festgelegt, kann mit der Befehlszeilenoption -f überschrieben werden und durch Verwendung der [[Anweisung (Programmierung)|Direktive]] [[Include]] um weitere Konfigurationsdateien (wie ''ports.conf'') ergänzt werden.
{| class="wikitable options"
 
|-
Die dezentrale Verwaltung der Konfiguration des Apache erfolgt mittels spezieller Dateien innerhalb des Web-Verzeichnisbaums, die gewöhnlich [[.htaccess]] heißen.
| [[#Hauptkonfigurationsdateien|Hauptkonfigurationsdateien]]
 
|-
[[Kategorie:World Wide Web]]
| [[#Syntax der Konfigurationsdateien|Syntax der Konfigurationsdateien]]
 
|-
{{DISPLAYTITLE:httpd.conf}}
| [[#Module|Module]]
[[Kategorie:Apache/HTTP/Konfiguration]]
|-
{{DEFAULTSORT:httpd.conf}}
| [[#Geltungsbereich der Richtlinien|Geltungsbereich der Richtlinien]]
|-
| [[#.htaccess-Dateien|.htaccess-Dateien]]
|}


= Konfigurationsdateien =
=== Hauptkonfigurationsdateien ===
Dieses Dokument beschreibt die Dateien, die zur Konfiguration des Apache HTTP Servers verwendet werden.
{| class="wikitable options"
 
* Hauptkonfigurationsdateien
* Syntax der Konfigurationsdateien
* Module
* Geltungsbereich der Richtlinien
* .htaccess-Dateien
 
== Hauptkonfigurationsdateien ==
{| class="wikitable"
!Verwandte Module
!Verwandte Module
!Verwandte Richtlinien
!Verwandte Richtlinien
Zeile 42: Zeile 36:
* <code>TypenKonfig</code>
* <code>TypenKonfig</code>
|}
|}
Der Apache-HTTP-Server wird konfiguriert, indem Direktiven in einfache Textkonfigurationsdateien eingetragen werden. Die Hauptkonfigurationsdatei heißt normalerweise <code>httpd.conf</code>. Der Speicherort dieser Datei wird bei der Kompilierung festgelegt, kann aber mit der Befehlszeilenoption <code>-f</code>überschrieben werden. Darüber hinaus können andere Konfigurationsdateien mit der <code>Include-Direktive</code>hinzugefügt werden, und es können Platzhalter verwendet werden, um viele Konfigurationsdateien einzuschließen. Jede Direktive kann in jede dieser Konfigurationsdateien eingefügt werden. Änderungen an den Hauptkonfigurationsdateien werden von httpd nur erkannt, wenn er gestartet oder neu gestartet wird.
Der Apache-HTTP-Server wird konfiguriert, indem Direktiven in einfache Textkonfigurationsdateien eingetragen werden
* Die Hauptkonfigurationsdatei heißt normalerweise <code>httpd.conf</code>
* Der Speicherort dieser Datei wird bei der Kompilierung festgelegt, kann aber mit der Befehlszeilenoption <code>-f</code>überschrieben werden
* Darüber hinaus können andere Konfigurationsdateien mit der <code>Include-Direktive</code>hinzugefügt werden, und es können Platzhalter verwendet werden, um viele Konfigurationsdateien einzuschließen
* Jede Direktive kann in jede dieser Konfigurationsdateien eingefügt werden. Änderungen an den Hauptkonfigurationsdateien werden von httpd nur erkannt, wenn er gestartet oder neu gestartet wird


Der Server liest auch eine Datei mit Mime-Dokumenttypen; der Dateiname wird durch die <code>TypesConfig-Direktive</code> festgelegt und lautet standardmäßig <code>mime.types</code>.
Der Server liest auch eine Datei mit Mime-Dokumenttypen; der Dateiname wird durch die <code>TypesConfig-Direktive</code> festgelegt und lautet standardmäßig <code>mime.types</code>


== Syntax der Konfigurationsdateien ==
=== Syntax der Konfigurationsdateien ===
httpd-Konfigurationsdateien enthalten eine Direktive pro Zeile. Der Backslash "\" kann als letztes Zeichen in einer Zeile verwendet werden, um anzuzeigen, dass die Direktive in der nächsten Zeile fortgesetzt wird. Zwischen dem Backslash und dem Ende der Zeile dürfen keine anderen Zeichen oder Leerzeichen stehen.
httpd-Konfigurationsdateien enthalten eine Direktive pro Zeile
* Der Backslash "\" kann als letztes Zeichen in einer Zeile verwendet werden, um anzuzeigen, dass die Direktive in der nächsten Zeile fortgesetzt wird
* Zwischen dem Backslash und dem Ende der Zeile dürfen keine anderen Zeichen oder Leerzeichen stehen


Argumente für Direktiven werden durch Leerzeichen getrennt. Wenn ein Argument Leerzeichen enthält, müssen Sie es in Anführungszeichen setzen.
Argumente für Direktiven werden durch Leerzeichen getrennt
* Wenn ein Argument Leerzeichen enthält, müssen Sie es in Anführungszeichen setzen


Bei den Direktiven in den Konfigurationsdateien wird die Groß- und Kleinschreibung nicht beachtet, aber bei den Argumenten für Direktiven wird häufig die Groß- und Kleinschreibung beachtet. Zeilen, die mit dem Hash-Zeichen "#" beginnen, gelten als Kommentare und werden ignoriert. Kommentare dürfen '''nicht''' in der gleichen Zeile wie eine Konfigurationsanweisung enthalten sein.     Leerzeichen, die vor einer Direktive stehen, werden ignoriert, so dass Sie Direktiven zur besseren Übersichtlichkeit einrücken können. Leerzeilen werden ebenfalls ignoriert.
Bei den Direktiven in den Konfigurationsdateien wird die Groß- und Kleinschreibung nicht beachtet, aber bei den Argumenten für Direktiven wird häufig die Groß- und Kleinschreibung beachtet
* Zeilen, die mit dem Hash-Zeichen "#" beginnen, gelten als Kommentare und werden ignoriert
* Kommentare dürfen '''nicht''' in der gleichen Zeile wie eine Konfigurationsanweisung enthalten sein. Leerzeichen, die vor einer Direktive stehen, werden ignoriert, so dass Sie Direktiven zur besseren Übersichtlichkeit einrücken können
* Leerzeilen werden ebenfalls ignoriert


Die Werte von Variablen, die mit <code>Define</code> oder Shell-Umgebungsvariablen definiert wurden, können in Konfigurationsdateizeilen mit der Syntax <code>${VAR}</code> verwendet werden. Wenn "VAR" der Name einer gültigen Variable ist, wird der Wert dieser Variable an dieser Stelle in der Konfigurationsdateizeile ersetzt, und die Verarbeitung wird fortgesetzt, als ob der Text direkt in der Konfigurationsdatei gefunden würde.    Mit <code>Define</code> definierte Variablen haben Vorrang vor Shell-Umgebungsvariablen. Wird die "VAR"-Variable nicht gefunden, bleiben die Zeichen <code>${VAR}</code>unverändert, und es wird eine Warnung protokolliert. Variablennamen dürfen keine Doppelpunkte ":" enthalten, um Konflikte mit der Syntax von <code>RewriteMap</code> zu vermeiden.
Die Werte von Variablen, die mit <code>Define</code> oder Shell-Umgebungsvariablen definiert wurden, können in Konfigurationsdateizeilen mit der Syntax <code>${VAR}</code> verwendet werden
* Wenn "VAR" der Name einer gültigen Variable ist, wird der Wert dieser Variable an dieser Stelle in der Konfigurationsdateizeile ersetzt, und die Verarbeitung wird fortgesetzt, als ob der Text direkt in der Konfigurationsdatei gefunden würde
* Mit <code>Define</code> definierte Variablen haben Vorrang vor Shell-Umgebungsvariablen
* Wird die "VAR"-Variable nicht gefunden, bleiben die Zeichen <code>${VAR}</code>unverändert, und es wird eine Warnung protokolliert
* Variablennamen dürfen keine Doppelpunkte ":" enthalten, um Konflikte mit der Syntax von <code>RewriteMap</code> zu vermeiden


Nur Shell-Umgebungsvariablen, die vor dem Start des Servers definiert wurden, können in Erweiterungen verwendet werden. Umgebungsvariablen, die in der Konfigurationsdatei selbst definiert werden, zum Beispiel mit <code>SetEnv</code>, werden zu spät wirksam, um für Erweiterungen in der Konfigurationsdatei verwendet zu werden.
Nur Shell-Umgebungsvariablen, die vor dem Start des Servers definiert wurden, können in Erweiterungen verwendet werden
* Umgebungsvariablen, die in der Konfigurationsdatei selbst definiert werden, zum Beispiel mit <code>SetEnv</code>, werden zu spät wirksam, um für Erweiterungen in der Konfigurationsdatei verwendet zu werden


Die maximale Länge einer Zeile in normalen Konfigurationsdateien beträgt nach dem Ersetzen von Variablen und dem Verbinden von fortgesetzten Zeilen etwa 16 MiB. In .htaccess-Dateien beträgt die maximale Länge 8190 Zeichen.
Die maximale Länge einer Zeile in normalen Konfigurationsdateien beträgt nach dem Ersetzen von Variablen und dem Verbinden von fortgesetzten Zeilen etwa 16 MiB
* In .htaccess-Dateien beträgt die maximale Länge 8190 Zeichen


Sie können Ihre Konfigurationsdateien auf Syntaxfehler überprüfen, ohne den Server zu starten, indem Sie <code>apachectl configtest</code> oder die Befehlszeilenoption <code>-t</code> verwenden.
Sie können Ihre Konfigurationsdateien auf Syntaxfehler überprüfen, ohne den Server zu starten, indem Sie <code>apachectl configtest</code> oder die Befehlszeilenoption <code>-t</code> verwenden


Sie können <code>mod_info</code>'s <code>-DDUMP_CONFIG</code> verwenden, um die Konfiguration mit allen enthaltenen Dateien und Umgebungsvariablen aufzulösen und alle Kommentare und nicht passenden <code><IfDefine></code> und <code><IfModule></code> Abschnitte zu entfernen. Die Ausgabe spiegelt jedoch nicht die Zusammenführung oder das Überschreiben wider, die bei wiederholten Direktiven auftreten können.
Sie können <code>mod_info</code>'s <code>-DDUMP_CONFIG</code> verwenden, um die Konfiguration mit allen enthaltenen Dateien und Umgebungsvariablen aufzulösen und alle Kommentare und nicht passenden <code><IfDefine></code> und <code><IfModule></code> Abschnitte zu entfernen
* Die Ausgabe spiegelt jedoch nicht die Zusammenführung oder das Überschreiben wider, die bei wiederholten Direktiven auftreten können


== Module ==
=== Module ===
{| class="wikitable"
{| class="wikitable"
!Verwandte Module
!Verwandte Module
Zeile 74: Zeile 85:
* <code>LoadModule</code>
* <code>LoadModule</code>
|}
|}
httpd ist ein modularer Server. Das bedeutet, dass nur die grundlegendsten Funktionen im Kernserver enthalten sind. Erweiterte Funktionen sind über Module verfügbar, die in httpd geladen werden können. Standardmäßig wird ein Basissatz von Modulen zur Kompilierungszeit in den Server aufgenommen. Wenn der Server so kompiliert ist, dass er dynamisch geladeneModule verwendet, können Module separat kompiliert und jederzeit mit der <code>LoadModule-Direktive</code>hinzugefügt werden. Andernfalls muss httpd neu kompiliert werden, um Module hinzuzufügen oder zu entfernen. Konfigurationsdirektiven können abhängig vom Vorhandensein eines bestimmten Moduls aufgenommen werden, indem sie in einen <code><IfModule>-Block</code> eingeschlossen werden. <code><IfModule>-Blöcke</code> sind jedoch nicht erforderlich und können in einigen Fällen die Tatsache verschleiern, dass ein wichtiges Modul fehlt.
httpd ist ein modularer Server
* Das bedeutet, dass nur die grundlegendsten Funktionen im Kernserver enthalten sind
* Erweiterte Funktionen sind über Module verfügbar, die in httpd geladen werden können
* Standardmäßig wird ein Basissatz von Modulen zur Kompilierungszeit in den Server aufgenommen
* Wenn der Server so kompiliert ist, dass er dynamisch geladeneModule verwendet, können Module separat kompiliert und jederzeit mit der <code>LoadModule-Direktive</code>hinzugefügt werden
* Andernfalls muss httpd neu kompiliert werden, um Module hinzuzufügen oder zu entfernen
* Konfigurationsdirektiven können abhängig vom Vorhandensein eines bestimmten Moduls aufgenommen werden, indem sie in einen <code><IfModule>-Block</code> eingeschlossen werden. <code><IfModule>-Blöcke</code> sind jedoch nicht erforderlich und können in einigen Fällen die Tatsache verschleiern, dass ein wichtiges Modul fehlt


Mit der Befehlszeilenoption <code>-l</code> können Sie sehen, welche Module derzeit in den Server kompiliert sind. Sie können auch mit der Befehlszeilenoption <code>-M</code>sehen, welche Module dynamisch geladen werden.
Mit der Befehlszeilenoption <code>-l</code> können Sie sehen, welche Module derzeit in den Server kompiliert sind
* Sie können auch mit der Befehlszeilenoption <code>-M</code>sehen, welche Module dynamisch geladen werden


== Geltungsbereich der Richtlinien ==
=== Geltungsbereich der Richtlinien ===
{| class="wikitable"
{| class="wikitable"
!Verwandte Module
!Verwandte Module
Zeile 93: Zeile 111:
* <code><VirtualHost></code>
* <code><VirtualHost></code>
|}
|}
Direktiven in den Hauptkonfigurationsdateien gelten für den gesamten Server. Wenn Sie die Konfiguration nur für einen Teil des Servers ändern möchten, können Sie Ihre Direktiven in den Abschnitten <code><Directory>,</code> <code><DirectoryMatch>,</code> <code><Files>,</code> <code><FilesMatch>,</code> <code><Location></code> und <code><LocationMatch></code>unterbringen. Diese Abschnitte beschränken die Anwendung der Direktiven, die sie einschließen, auf bestimmte Dateisystemorte oder URLs. Sie können auch verschachtelt werden, was eine sehr feinkörnige Konfiguration ermöglicht.
Direktiven in den Hauptkonfigurationsdateien gelten für den gesamten Server
* Wenn Sie die Konfiguration nur für einen Teil des Servers ändern möchten, können Sie Ihre Direktiven in den Abschnitten <code><Directory>,</code> <code><DirectoryMatch>,</code> <code><Files>,</code> <code><FilesMatch>,</code> <code><Location></code> und <code><LocationMatch></code>unterbringen
* Diese Abschnitte beschränken die Anwendung der Direktiven, die sie einschließen, auf bestimmte Dateisystemorte oder URLs
* Sie können auch verschachtelt werden, was eine sehr feinkörnige Konfiguration ermöglicht


httpd ist in der Lage, viele verschiedene Websites gleichzeitig zu bedienen. Dies wird als virtuelles Hosting bezeichnet. Richtlinien können auch in <code><VirtualHost>-Abschnitte</code>eingefügt werden, so dass sie nur für Anfragen für eine bestimmte Website gelten.
httpd ist in der Lage, viele verschiedene Websites gleichzeitig zu bedienen
* Dies wird als virtuelles Hosting bezeichnet
* Richtlinien können auch in <code><VirtualHost>-Abschnitte</code>eingefügt werden, so dass sie nur für Anfragen für eine bestimmte Website gelten


Obwohl die meisten Direktiven in jedem dieser Abschnitte platziert werden können, sind einige Direktiven in bestimmten Kontexten nicht sinnvoll. Direktiven, die die Prozesserstellung steuern, können beispielsweise nur im Hauptserverkontext platziert werden. Um herauszufinden, welche Direktiven in welchen Abschnitten platziert werden können, überprüfen Sie den Kontext der jeweiligen Direktive. Weitere Informationen finden Sie unter Wie funktionieren die Abschnitte Verzeichnis, Ort und Dateien?
Obwohl die meisten Direktiven in jedem dieser Abschnitte platziert werden können, sind einige Direktiven in bestimmten Kontexten nicht sinnvoll
* Direktiven, die die Prozesserstellung steuern, können beispielsweise nur im Hauptserverkontext platziert werden
* Um herauszufinden, welche Direktiven in welchen Abschnitten platziert werden können, überprüfen Sie den Kontext der jeweiligen Direktive
* Weitere Informationen finden Sie unter Wie funktionieren die Abschnitte Verzeichnis, Ort und Dateien?


== .htaccess-Dateien ==
=== .htaccess-Dateien ===
{| class="wikitable"
{| class="wikitable"
!Verwandte Module
!Verwandte Module
Zeile 109: Zeile 135:
* <code>AllowOverride</code>
* <code>AllowOverride</code>
|}
|}
httpd ermöglicht eine dezentrale Verwaltung der Konfiguration über spezielle Dateien, die innerhalb des Webbaums platziert werden. Die speziellen Dateien heißen in der Regel <code>.htaccess</code>, aber jeder Name kann in der Direktive <code>AccessFileName</code>angegeben werden. Direktiven in <code>.htaccess-Dateien</code> gelten für das Verzeichnis, in dem Sie die Datei ablegen, sowie für alle Unterverzeichnisse. Die <code>.htaccess-Dateien</code> folgen der gleichen Syntax wie die Hauptkonfigurationsdateien. Da <code>.htaccess-Dateien</code> bei jeder Anfrage gelesen werden, sind Änderungen in diesen Dateien sofort wirksam.
httpd ermöglicht eine dezentrale Verwaltung der Konfiguration über spezielle Dateien, die innerhalb des Webbaums platziert werden
* Die speziellen Dateien heißen in der Regel <code>.htaccess</code>, aber jeder Name kann in der Direktive <code>AccessFileName</code>angegeben werden
* Direktiven in <code>.htaccess-Dateien</code> gelten für das Verzeichnis, in dem Sie die Datei ablegen, sowie für alle Unterverzeichnisse
* Die <code>.htaccess-Dateien</code> folgen der gleichen Syntax wie die Hauptkonfigurationsdateien
* Da <code>.htaccess-Dateien</code> bei jeder Anfrage gelesen werden, sind Änderungen in diesen Dateien sofort wirksam
 
Um herauszufinden, welche Direktiven in <code>.htaccess-Dateien</code> platziert werden können, prüfen Sie den Kontext der Direktive
* Der Serveradministrator steuert weiter, welche Direktiven in <code>.htaccess-Dateien</code> platziert werden können, indem er die <code>AllowOverride-Direktive</code>in den Hauptkonfigurationsdateien konfiguriert
 
Weitere Informationen zu <code>.htaccess-Dateien</code> finden Sie in der Anleitung zu [[.htaccess]]
 
<noinclude>
== Anhang ==
=== Siehe auch ===
{{Special:PrefixIndex/{{BASEPAGENAME}}}}
==== Links ====
===== Weblinks =====
# https://httpd.apache.org/docs/current/en/configuring.html


Um herauszufinden, welche Direktiven in <code>.htaccess-Dateien</code> platziert werden können, prüfen Sie den Kontext der Direktive. Der Serveradministrator steuert weiter, welche Direktiven in <code>.htaccess-Dateien</code> platziert werden können, indem er die <code>AllowOverride-Direktive</code>in den Hauptkonfigurationsdateien konfiguriert.
[[Kategorie:World Wide Web]]
[[Kategorie:Apache/HTTP/Konfiguration]]


Weitere Informationen zu <code>.htaccess-Dateien</code> finden Sie in der  Anleitung zu .htaccess.
{{DISPLAYTITLE:httpd.conf}}
{{DEFAULTSORT:httpd.conf}}
</noinclude>
</noinclude>

Aktuelle Version vom 19. Oktober 2024, 13:46 Uhr

httpd.conf - Beschreibung

Beschreibung

httpd.conf ist der Dateiname der Konfigurationsdatei eines Apache HTTP Servers

  • Der Server liest verschiedene Konfigurationseigenschaften aus dieser Textdatei
  • Diese Konfigurationseigenschaften können direkt in der Datei mithilfe von Superbenutzerberechtigungen bearbeitet werden
  • Die httpd.conf-Datei kann sich auf jedem Unix-basierten System befinden
  • Der Ablageort der httpd.conf wird bei der Kompilierung festgelegt, kann mit der Befehlszeilenoption -f überschrieben werden und durch Verwendung der Direktive Include um weitere Konfigurationsdateien (wie ports.conf) ergänzt werden

Die dezentrale Verwaltung der Konfiguration des Apache erfolgt mittels spezieller Dateien innerhalb des Web-Verzeichnisbaums, die gewöhnlich .htaccess heißen

Konfigurationsdateien

Hauptkonfigurationsdateien
Syntax der Konfigurationsdateien
Module
Geltungsbereich der Richtlinien
.htaccess-Dateien

Hauptkonfigurationsdateien

Verwandte Module Verwandte Richtlinien
  • mod_mime
  • <IfDefine>
  • einbeziehen.
  • TypenKonfig

Der Apache-HTTP-Server wird konfiguriert, indem Direktiven in einfache Textkonfigurationsdateien eingetragen werden

  • Die Hauptkonfigurationsdatei heißt normalerweise httpd.conf
  • Der Speicherort dieser Datei wird bei der Kompilierung festgelegt, kann aber mit der Befehlszeilenoption -füberschrieben werden
  • Darüber hinaus können andere Konfigurationsdateien mit der Include-Direktivehinzugefügt werden, und es können Platzhalter verwendet werden, um viele Konfigurationsdateien einzuschließen
  • Jede Direktive kann in jede dieser Konfigurationsdateien eingefügt werden. Änderungen an den Hauptkonfigurationsdateien werden von httpd nur erkannt, wenn er gestartet oder neu gestartet wird

Der Server liest auch eine Datei mit Mime-Dokumenttypen; der Dateiname wird durch die TypesConfig-Direktive festgelegt und lautet standardmäßig mime.types

Syntax der Konfigurationsdateien

httpd-Konfigurationsdateien enthalten eine Direktive pro Zeile

  • Der Backslash "\" kann als letztes Zeichen in einer Zeile verwendet werden, um anzuzeigen, dass die Direktive in der nächsten Zeile fortgesetzt wird
  • Zwischen dem Backslash und dem Ende der Zeile dürfen keine anderen Zeichen oder Leerzeichen stehen

Argumente für Direktiven werden durch Leerzeichen getrennt

  • Wenn ein Argument Leerzeichen enthält, müssen Sie es in Anführungszeichen setzen

Bei den Direktiven in den Konfigurationsdateien wird die Groß- und Kleinschreibung nicht beachtet, aber bei den Argumenten für Direktiven wird häufig die Groß- und Kleinschreibung beachtet

  • Zeilen, die mit dem Hash-Zeichen "#" beginnen, gelten als Kommentare und werden ignoriert
  • Kommentare dürfen nicht in der gleichen Zeile wie eine Konfigurationsanweisung enthalten sein. Leerzeichen, die vor einer Direktive stehen, werden ignoriert, so dass Sie Direktiven zur besseren Übersichtlichkeit einrücken können
  • Leerzeilen werden ebenfalls ignoriert

Die Werte von Variablen, die mit Define oder Shell-Umgebungsvariablen definiert wurden, können in Konfigurationsdateizeilen mit der Syntax ${VAR} verwendet werden

  • Wenn "VAR" der Name einer gültigen Variable ist, wird der Wert dieser Variable an dieser Stelle in der Konfigurationsdateizeile ersetzt, und die Verarbeitung wird fortgesetzt, als ob der Text direkt in der Konfigurationsdatei gefunden würde
  • Mit Define definierte Variablen haben Vorrang vor Shell-Umgebungsvariablen
  • Wird die "VAR"-Variable nicht gefunden, bleiben die Zeichen ${VAR}unverändert, und es wird eine Warnung protokolliert
  • Variablennamen dürfen keine Doppelpunkte ":" enthalten, um Konflikte mit der Syntax von RewriteMap zu vermeiden

Nur Shell-Umgebungsvariablen, die vor dem Start des Servers definiert wurden, können in Erweiterungen verwendet werden

  • Umgebungsvariablen, die in der Konfigurationsdatei selbst definiert werden, zum Beispiel mit SetEnv, werden zu spät wirksam, um für Erweiterungen in der Konfigurationsdatei verwendet zu werden

Die maximale Länge einer Zeile in normalen Konfigurationsdateien beträgt nach dem Ersetzen von Variablen und dem Verbinden von fortgesetzten Zeilen etwa 16 MiB

  • In .htaccess-Dateien beträgt die maximale Länge 8190 Zeichen

Sie können Ihre Konfigurationsdateien auf Syntaxfehler überprüfen, ohne den Server zu starten, indem Sie apachectl configtest oder die Befehlszeilenoption -t verwenden

Sie können mod_info's -DDUMP_CONFIG verwenden, um die Konfiguration mit allen enthaltenen Dateien und Umgebungsvariablen aufzulösen und alle Kommentare und nicht passenden <IfDefine> und <IfModule> Abschnitte zu entfernen

  • Die Ausgabe spiegelt jedoch nicht die Zusammenführung oder das Überschreiben wider, die bei wiederholten Direktiven auftreten können

Module

Verwandte Module Verwandte Richtlinien
  • mod_so
  • <IfModule>
  • LoadModule

httpd ist ein modularer Server

  • Das bedeutet, dass nur die grundlegendsten Funktionen im Kernserver enthalten sind
  • Erweiterte Funktionen sind über Module verfügbar, die in httpd geladen werden können
  • Standardmäßig wird ein Basissatz von Modulen zur Kompilierungszeit in den Server aufgenommen
  • Wenn der Server so kompiliert ist, dass er dynamisch geladeneModule verwendet, können Module separat kompiliert und jederzeit mit der LoadModule-Direktivehinzugefügt werden
  • Andernfalls muss httpd neu kompiliert werden, um Module hinzuzufügen oder zu entfernen
  • Konfigurationsdirektiven können abhängig vom Vorhandensein eines bestimmten Moduls aufgenommen werden, indem sie in einen <IfModule>-Block eingeschlossen werden. <IfModule>-Blöcke sind jedoch nicht erforderlich und können in einigen Fällen die Tatsache verschleiern, dass ein wichtiges Modul fehlt

Mit der Befehlszeilenoption -l können Sie sehen, welche Module derzeit in den Server kompiliert sind

  • Sie können auch mit der Befehlszeilenoption -Msehen, welche Module dynamisch geladen werden

Geltungsbereich der Richtlinien

Verwandte Module Verwandte Richtlinien
  • <Verzeichnis>
  • <DirectoryMatch>
  • <Dateien>
  • <FilesMatch>
  • <Ort>
  • <OrtMatch>
  • <VirtualHost>

Direktiven in den Hauptkonfigurationsdateien gelten für den gesamten Server

  • Wenn Sie die Konfiguration nur für einen Teil des Servers ändern möchten, können Sie Ihre Direktiven in den Abschnitten <Directory>, <DirectoryMatch>, <Files>, <FilesMatch>, <Location> und <LocationMatch>unterbringen
  • Diese Abschnitte beschränken die Anwendung der Direktiven, die sie einschließen, auf bestimmte Dateisystemorte oder URLs
  • Sie können auch verschachtelt werden, was eine sehr feinkörnige Konfiguration ermöglicht

httpd ist in der Lage, viele verschiedene Websites gleichzeitig zu bedienen

  • Dies wird als virtuelles Hosting bezeichnet
  • Richtlinien können auch in <VirtualHost>-Abschnitteeingefügt werden, so dass sie nur für Anfragen für eine bestimmte Website gelten

Obwohl die meisten Direktiven in jedem dieser Abschnitte platziert werden können, sind einige Direktiven in bestimmten Kontexten nicht sinnvoll

  • Direktiven, die die Prozesserstellung steuern, können beispielsweise nur im Hauptserverkontext platziert werden
  • Um herauszufinden, welche Direktiven in welchen Abschnitten platziert werden können, überprüfen Sie den Kontext der jeweiligen Direktive
  • Weitere Informationen finden Sie unter Wie funktionieren die Abschnitte Verzeichnis, Ort und Dateien?

.htaccess-Dateien

Verwandte Module Verwandte Richtlinien
  • ZugriffDateiname
  • AllowOverride

httpd ermöglicht eine dezentrale Verwaltung der Konfiguration über spezielle Dateien, die innerhalb des Webbaums platziert werden

  • Die speziellen Dateien heißen in der Regel .htaccess, aber jeder Name kann in der Direktive AccessFileNameangegeben werden
  • Direktiven in .htaccess-Dateien gelten für das Verzeichnis, in dem Sie die Datei ablegen, sowie für alle Unterverzeichnisse
  • Die .htaccess-Dateien folgen der gleichen Syntax wie die Hauptkonfigurationsdateien
  • Da .htaccess-Dateien bei jeder Anfrage gelesen werden, sind Änderungen in diesen Dateien sofort wirksam

Um herauszufinden, welche Direktiven in .htaccess-Dateien platziert werden können, prüfen Sie den Kontext der Direktive

  • Der Serveradministrator steuert weiter, welche Direktiven in .htaccess-Dateien platziert werden können, indem er die AllowOverride-Direktivein den Hauptkonfigurationsdateien konfiguriert

Weitere Informationen zu .htaccess-Dateien finden Sie in der Anleitung zu .htaccess


Anhang

Siehe auch

Links

Weblinks
  1. https://httpd.apache.org/docs/current/en/configuring.html