10.5. Konfigurationsanweisungen in httpd.conf

Die Apache HTTP Server-Konfigurationsdatei ist /etc/httpd/conf/httpd.conf. Die Datei httpd.conf enthält ausführliche Kommentare und erklärt sich bis zu einem gewissen Grad selbst. Die Standardkonfiguration Ihres Web-Servers ist für die meisten Situationen ausreichend, Sie sollten sich jedoch mit einigen der wichtigsten Konfigurationsoptionen vertraut machen.

WarnungWarnung
 

Mit der Release von Apache HTTP Server 2.0 haben sich viele Konfigurationsoptionen geändert. Müssen Sie eine Konfigurationsdatei der Version 1.3 in das neue 2.0 Format migrieren, dann wenden Sie sich an Abschnitt 10.2.

10.5.1. Allgemeine Konfigurationshinweise

Wenn Sie Ihren Apache HTTP Server konfigurieren müssen, ist lediglich die Datei httpd.conf zu editieren und anschließend der httpd.conf-Prozess neu zu laden oder anzuhalten und neu zu starten. Das Neuladen, Anhalten und Starten des Apache HTTP Servers wird in Abschnitt 10.4 besprochen.

Vor dem Editieren von httpd.conf sollten Sie zuerst eine Kopie der Originaldatei anlegen. Falls Sie beim Editieren der Konfigurationsdatei einen Fehler machen, steht Ihnen auf diese Weise eine Sicherheitskopie zur Verfügung, mit der Sie von vorn beginnen können.

Falls Sie einen Fehler machen und Ihr Web-Server nicht richtig funktioniert, sollten Sie zuerst die Eingaben der gerade editierten Datei httpd.conf überprüfen. Stellen Sie sicher, dass diese keine Tippfehler enthält.

Als Nächstes sollten Sie einen Blick auf die Fehlerprotokolldatei Ihres Web-Servers werfen, /var/log/httpd/error_log. Die Auswertung der Fehlerprotokolldatei ist, je nachdem, wie viel Erfahrung Sie damit haben, möglicherweise nicht ganz einfach. Wenn gerade ein Problem aufgetreten ist, sollten die letzten Einträge jedoch einige Hinweise darüber liefern, was passiert ist.

Die folgenden Teilabschnitte enthalten kurze Beschreibungen der Anweisungen in httpd.conf. Diese Beschreibungen gehen nicht bis ins letzte Detail. Weitere Informationen finden Sie in der Apache-Dokumentation Online unter http://httpd.apache.org/docs-2.0/.

Weitere Informationen zu mod_ssl Anweisungen erhalten Sie aus der Dokumentation Online unter http://httpd.apache.org/docs-2.0/mod/mod_ssl.html.

10.5.2. ServerRoot

ServerRoot ist das oberste Verzeichnis, das die Server-Dateien enthält. Sowohl der Server mit Verschlüsselung (Secure Server) als auch der Server ohne Verschlüsselung sind auf die Verwendung von "/etc/httpd" als ServerRoot eingestellt.

10.5.3. PidFile

PidFile gibt die Datei an, in der der Server seine Prozess-ID (pid) ablegt. Ihr Web-Server ist so konfiguriert, dass er seine pid in /var/run/httpd.pid ablegt.

10.5.4. Timeout

Timeout gibt die Zeit in Sekunden an, die der Server bei Kommunikationsverbindungen auf den Empfang und auf Übertragungen wartet. Timeout is auf 300 Sekunden eingestellt, eine für die meisten Situationen geeignete Einstellung.

10.5.5. KeepAlive

Mit KeepAlive kann eingestellt werden, ob auf Ihrem Server mehr als eine Anfrage pro Verbindung zugelassen ist. KeepAlive kann verwendet werden, um zu verhindern, dass ein einzelner Client zu viele der Serverressourcen verbraucht.

Die Standardeinstellung für KeepAlive ist off. Ist Keepalive auf on eingestellt und der Verkehr auf dem Server nimmt spürbar zu, kann der Server schnell die Höchstanzahl von untergeordneten Prozessen erreichen. In dieser Situation lässt die Leistung des Servers deutlich nach. Wenn Keepalive aktiviert ist, ist es ratsam, die Option KeepAliveTimeout niedrig einzustellen (siehe Abschnitt 10.5.7) und die Datei /var/log/httpd/error_log der Server zu überwachen. Dieses Protokoll erstellt einen Bericht, wenn dem Server keine untergeordneten Prozesse zur Verfügung stehen.

10.5.6. MaxKeepAliveRequests

Diese Anweisung gibt an, wie viele Anforderungen pro wiederholter Verbindung maximal erlaubt sind. Die Apache Group empfiehlt einen hohen Wert. Dadurch wird die Leistung des Servers verbessert. Die Standardeinstellung für MaxKeepAliveRequests ist 100, eine für die meisten Situationen geeignete Einstellung.

10.5.7. KeepAliveTimeout

KeepAliveTimeout gibt in Sekunden an, wie lange der Server wartet, nachdem eine Anforderung bearbeitet wurde. Danach wird die Verbindung getrennt. Nach dem Empfang einer Anforderung gilt stattdessen die Anweisung Timeout. Die Vorgabe für KeepAliveTimeout ist standardmäßig auf 15 Sekunden gesetzt .

10.5.8. IfModule

<IfModule> und </IfModule>-Tags umschließen Anweisungen, die Bedingungen enthalten. Die in den IfModule-Tags enthaltenen Anweisungen werden verarbeitet, wenn eine der zwei folgenden Bedingungen erfüllt ist. Die Anweisungen werden verarbeitet, wenn das im ersten <IfModule>-Tag enthaltene Modul in den Apache Server geladen wurde. Wenn ein Ausrufezeichen [!] vor dem Modulnamen steht, werden die Anweisungen nur verarbeitet, wenn das Modul im ersten <IfModule>-Tag not einkompiliert ist.

Weitere Informationen zu Apache HTTP Server-Modulen finden Sie unter Abschnitt 10.7.

10.5.9. MPM spezifische Server-Pool-Anweisungen

Wie in Abschnitt 10.2.1.2 behandelt, fällt die Verantwortlichkeit für das Management der Server-Pool-Eigenschaften unter Apache HTTP Server 2.0 der Modul-Gruppe MPM zu. Die Eigenschaften des Server-Pool sind unterschiedlich, jenachdem welches MPM verwendet wird. Aus diesem Grund ist ein IfModule Container notwendig, um den Server-Pool für das verwendete MPM festzulegen.

Als Vorgabe bestimmt Apache HTTP Server 2.0 den Server-Pool für beide, prefork und worker MPMs.

Die Folgende ist eine Liste von Anweisungen, die in MPM-spezifischen Server-Pool Containern zu finden sind.

10.5.9.1. StartServers

Die Anweisung StartServers bestimmt, wie viele Serverprozesse beim Start erzeugt werden. Da der Web-Server je nach Datenverkehrsaufkommen Serverprozesse dynamisch beendet bzw. erzeugt, muss dieser Parameter nicht verändert werden. Der Web-Server ist so konfiguriert, dass beim Start 8 Serverprozesse für das prefork MPM und 2 für die worker MPM erzeugt werden.

10.5.9.2. MaxRequestsPerChild

MaxRequestsPerChild legt die Gesamtzahl der Anfragen fest, die jeder Child-Server-Prozess benötigt, bevor das Child beendet wird. Der Hauptgrund für die Einstellung von MaxRequestsPerChild ist, dass lang-andauernde, durch Prozesse verursachte Speicherlecks vermieden werden sollen. Die Standardeinstellung für MaxRequestsPerChild für den Server ist 1000 für das prefork MPM und 0 für das worker MPM .

10.5.9.3. MaxClients

MaxClients gibt eine Obergrenze für die Gesamtzahl von Serverprozessen oder gleichzeitig verbundenen Clients an, die zur selben Zeit ausgeführt werden können. Der Hauptgrund für das Bestehen von MaxClients ist es zu Verhindern, dass Ihr Betriebssystem durch einen überlasteten Apache HTTP Server-Server zum Absturz gebracht wird. Die Standardeinstellung des Servers ist 150, unabhängig von der verwendeten MPM. Es wird nicht empfohlen MaxClients auf einen Wert größer als 256 zu setzen, wenn die prefork MPM verwendet wird.

10.5.9.4. MinSpareServers and MaxSpareServers

Diese Werte werden lediglich mit der prefork MPM verwendet und bestimmen wie sich der Apache HTTP Server-Server dynamisch an die erkannte Last anpasst, indem je nach Datenverkehr eine geeignete Anzahl von Reserve-Serverprozessen aufrechterhalten werden. Der Server prüft die Anzahl von Servern, die auf eine Anforderung warten, und beendet einige davon, wenn mehr als von MaxSpareServers angegeben vorhanden sind bzw. erzeugt einige neue, wenn weniger als in MinSpareServers angegeben vorhanden sind.

Die Standardeinstellung des Servers für MinSpareServers ist 5.Die Standardeinstellung des Servers für MaxSpareServers ist 20. Diese Standardeinstellungen sind für die meisten Situationen geeignet. MinSpareServers sollte nicht auf eine zu große Zahl eingestellt werden, weil dadurch selbst bei geringem Datenverkehr die Belastung des Servers hoch ist.

10.5.9.5. MinSpareThreads und MaxSpareThreads

Diese Werte werden lediglich mit der worker MPM verwendet und bestimmen wie sich der Apache HTTP Server-Server dynamisch an die erkannte Last anpasst, indem je nach Datenverkehr eine geeignete Anzahl von Server-Threads in Reserve aufrechterhalten werden. Der Server prüft die Anzahl von Servern, die auf eine Anforderung warten, und beendet einige davon, wenn mehr als von MaxSpareThreads angegeben vorhanden sind bzw. erzeugt einige neue, wenn weniger als in MinSpareThreads angegeben vorhanden sind.

Die Standardeinstellung des Servers für MinSpareThreads ist 25. Die Standardeinstellung des Servers für MaxSpareThreads ist 75. Diese Standardeinstellungen sind für die meisten Situationen geeignet. Der Wert für MaxSpareThreads muss größer oder gleich der Summe von MinSpareThreads und ThreadsPerChild sein, oder Apache HTTP Server wird dies automatisch berichtigen.

10.5.9.6. ThreadsPerChild

Dieser Wert wird lediglich mit der worker MPM verwendet. Er setzt die Anzahl von Threads innerhalb der Child-Prozesse. Der Standardwert für diese Anweisung ist 25.

10.5.10. Listen

Der Befehl Listen kennzeichnet den Port, an dem ankommende Anforderungen angenommen werden. Apache HTTP Server ist so konfiguriert, dass auf Port 80 auf unverschlüsselte Web-Kommunikation und (in der Datei /etc/httpd/conf.d/ssl.conf, die den Secure Server definiert) auf Port 443 auf sichere Web-Kommunikation gewartet wird.

Wenn Sie Apache HTTP Server so konfigurieren, dass an einem Port kleiner als 1024 gewartet wird, müssen Sie als root angemeldet sein, um den Prozess zu starten. Für Port 1024 und darüber kann httpd als normaler Benutzer gestartet werden.

Listen kann auch zur Angabe spezieller IP-Adressen verwendet werden, über die der Server Verbindungen annimmt.

10.5.11. Include

Include erlaubt, dass andere Konfigurationsdateien während der Laufzeit mit aufgenommen werden.

Der Pfad zu diesen Konfigurationspfaden kann absolut sein oder sich auf ServerRoot beziehen.

WichtigWichtig
 

Damit der Server einzeln verpackte Module verwendet, wie mod_ssl, mod_perl und php, muss sich folgende Anweisung in Section 1: Global Environment von http.conf befinden:

Include conf.d/*.conf

10.5.12. LoadModule

LoadModule wird verwendet um Dynamic Shared Objects (DSO)-Module zu laden. Weitere Informationen zur DSO-Unterstützung von Apache HTTP Server einschließlich der genauen Verwendung der Anweisung LoadModule finden Sie in Abschnitt 10.7. Beachten Sie, dass die Ladereihenfolge der Module nicht länger wichtig ist bei Apache HTTP Server 2.0. Weitere Informationen zur DSO-Unterstützung in Apache HTTP Server 2.0 finden Sie unter Abschnitt 10.2.1.3.

10.5.13. ExtendedStatus

Die Anweisung ExtendedStatus bestimmt, ob Apache beim Aufruf des server-status-Handler grundlegende (off) oder detaillierte Server-Status-Informationen (on) erstellt. Server-status wird über Location-Tags aufgerufen. Weitere Informationen zum Aufruf von server-status finden Sie in Abschnitt 10.5.60.

10.5.14. IfDefine

Die Tags <IfDefine> und </IfDefine> umschließen Konfigurationsanweisungen, die ausgeführt werden, wenn sich für die Bedingung im Tag <IfDefine> die Aussage wahr ergibt. Die Anweisungen werden nicht ausgeführt, wenn sich die Aussage falsch ergibt.

Die Bedingung in den Tags <IfDefine> ist eine Parameterbezeichnung (z.B. HAVE_PERL). Wenn der Parameter definiert ist, d.h. er wurde beim Start des Servers als Argument des Startbefehls angegeben, ist die Aussage wahr. In diesem Fall ist die Bedingung wahr, wenn Ihr Web-Server gestartet ist, und die Anweisungen in den Tags IfDefine werden ausgeführt.

10.5.15. SuexecUserGroup

Die Anweisung SuexecUserGroup, welche vom mod_suexec-Modul abstammt, ermöglicht die Festlegung von Benutzer- und Gruppen-Ausführungsprivilegien für CGI Programme. Nicht-CGI Anfragen werden in Hinsicht auf Benutzer und Gruppen wie gewöhnlich, wie in den User und Group-Anweisungen festgelegt, abgewickelt.

AnmerkungBitte beachten
 

Die Anweisung SuexecUserGroup ersetzt die Apache HTTP Server 1.3 Konfiguration zur Benutzung von User und Group Anweisungen innerhalb der entsprechenden Abschnitte in der VirtualHosts Konfigurationsdatei.

10.5.16. User

Die Anweisung User definiert die Benutzer-ID, die vom Server zur Beantwortung von Anforderungen verwendet wird sowie die Zugriffsrechte des Servers auf Dateien. Alle Dateien, auf die dieser Benutzer nicht zugreifen darf, sind ebenfalls für Clients nicht zugänglich, die mit Apache HTTP Server verbunden sind.

Der User sollte nur Zugriffsrechte auf solche Dateien haben, die für die Außenwelt sichtbar sein sollen. Der in User eingetragene Benutzer ist auch der Eigentümer aller vom Server erzeugten CGI-Prozesse. Der in User eingetragene Benutzer sollte nur Codes ausführen dürfen, die zur Beantwortung von HTTP-Anforderungen vorgesehen sind.

Diese Anweisung wird nicht mehr länger in der Konfiguration virtueller Hosts verwendet.

AnmerkungBitte beachten
 

Aus Sicherheitsgründen kann Apache HTTP Server nicht als root-Benutzer ausgeführt werden.

10.5.17. Group

Die Anweisung Group legt den Gruppennamen der Apache HTTP Server-Prozesse fest.

Diese Anweisung wird nicht mehr länger in der Konfiguration virtueller Hosts verwendet.

Die Standardeinstellung für Group ist apache.

10.5.18. ServerAdmin

ServerAdmin sollte auf die E-Mail-Adresse Ihres Web-Server-Administrators eingestellt sein. Diese E-Mail-Adresse wird in Fehlermeldungen auf vom Server erstellten Web-Seiten angezeigt, damit die Benutzer dem Serveradministrator ein Problem per E-Mail melden können.

ServerAdmin ist standardmäßig root@localhost.

Üblicherweise wird ServerAdmin auf webmaster@example.com gesetzt. Richten Sie sodann in /etc/aliases einen Alias webmaster ein, der auf den für den Web-Server Verantwortlichen zeigt. Führen Sie schließlich /usr/bin/newaliases aus, um den neuen Alias hinzuzufügen.

10.5.19. ServerName

Mit ServerName können Sie einen Rechnernamen und eine Port-Nummer (die mit der Anweisung Listen übereinstimmt) für Ihren Server angeben. Der Servername kann sich vom vom wirklichen Namen Ihres Host unterscheiden. Zum Beispiel können Sie so den Namen www.your_domain.com einrichten, obwohl der wirkliche Name Ihres Servers foo.your_domain.com. Beachten Sie, dass ServerName einen gültigen Domain Name Service (DNS)-Namen enthalten muss, den Sie auch tatsächlich verwenden dürfen — also nicht einfach etwas ausdenken.

Zum Beispiel:

ServerName www.example.com:80

Wenn Sie in ServerName einen Servernamen angeben, muss die entsprechende Zuordnung von IP-Adresse und Servername in Ihrer /etc/hosts-Datei enthalten sein.

10.5.20. UseCanonicalName

Wenn auf on gesetzt, konfiguriert diese Anweisung Apache HTTP Server dazu, sich selbst mit den ServerName und Port Anweisungen zu referenzieren. Ist UseCanonicalName auf off gesetzt, verwendet der Server stattdessen den Wert, der in der Anforderung des Clients enthalten ist, um sich selbst zu referenzieren.

UseCanonicalName ist standardmäßig auf off eingestellt.

10.5.21. DocumentRoot

DocumentRoot ist das Verzeichnis, das die meisten HTML-Dateien enthält, die der Server auf Anforderung überträgt. Der Standardmäßig ist DocumentRoot sowohl für den unverschlüsselten als auch für den Secure Web-Server das /var/www/html-Verzeichnis. Zum Beispiel könnte der Server eine Anforderung für folgendes Dokument empfangen:

http://example.com/foo.html

Der Server sucht die folgende Datei im Standardverzeichnis:

/var/www/html/foo.html

Wenn Sie den Eintrag in DocumentRoot ändern möchten, dass dieser nicht vom sicheren und vom unverschlüsselten Web-Server gemeinsam benutzt wird, finden Sie in Abschnitt 10.8 entsprechende Informationen.

10.5.22. Directory

Die Tags <Directory /path/to/directory> und </Directory> werden verwendet, um eine Gruppe von Konfigurationsanweisungen zu umschließen, die sich nur auf dieses Verzeichnis und alle seine Unterverzeichnisse beziehen sollen. Alle Anweisungen, die auf ein Verzeichnis anwendbar sind, können innerhalb der <Directory>-Tags verwendet werden.

In der Standardeinstellung werden für das root-Verzeichnis mit den Anweisungen Options (siehe Abschnitt 10.5.23) und AllowOverride (siehe Abschnitt 10.5.24) sehr restriktive Parameter vorgegeben. Bei dieser Konfiguration müssen für jedes Verzeichnis die Einstellungen explizit vergeben werden, wenn weniger restriktive Einstellungen erforderlich sind.

Mit Directory-Tags werden für DocumentRoot weniger restriktive Parameter definiert, damit HTTP-Anforderungen in diesem Verzeichnis bearbeitet werden können.

Der Directory Container kann auch dazu benutzt werden, zusätzliche cgi-bin-Verzeichnisse für Server-seitige Applikationen ausserhalb des Verzeichnisses, welches in der ScriptAlias-Direktive festgelegt ist, zu konfigurieren (für weitere Informationen dazu siehe Abschnitt 10.5.41).

Wenn die Ausführung von CGI-Skripts in anderen Verzeichnissen erforderlich ist, müssen Sie ExecCGI entsprechend für dieses Verzeichnis einstellen.

Wenn Ihr Verzeichnis cgi-bin zum Beispiel /var/www/cgi-bin ist, Sie aber CGI-Skripts im Verzeichnis /home/my_cgi_directory ausführen möchten, können Sie in Ihrer Datei httpd.conf eine ExecCGI-Anweisung mit einem Satz von Directory-Anweisungen hinzufügen:

<Directory /home/my_cgi_directory>
    Options +ExecCGI
</Directory>

Als nächstes muss das Kommentar aus der AddHandler Anweisung entfernt werden, um Dateien mit der Endung .cgi als CGI-Skripte zu identifizieren. Sehen Sie Abschnitt 10.5.56 für Anleitungen zum Setzen von AddHandler.

Die Zugriffsberechtigungen für CGI-Skripts und den gesamten Pfad zu den Skripts müssen auf 0755 eingestellt sein.

10.5.23. Options

Die Anweisung Options bestimmt, welche Serverfunktionen in einem bestimmten Verzeichnis verfügbar sind. Zum Beispiel ist für Options entsprechend den restriktiven Parametern für das root-Verzeichnis lediglich FollowSymLinks angegeben. Es sind keine Funktionen aktiviert, außer dass der Server im root-Verzeichnis symbolischen Links folgen darf.

In Ihrem Verzeichnis DocumentRoot ist Options standardmäßig so konfiguriert, dass Indexes, Includes und FollowSymLinks enthalten sind. Indexes erlaubt dem Server, eine Verzeichnisliste für ein Verzeichnis zu erstellen, wenn kein DirectoryIndex (z.B. index.html) angegeben wird. Includes bedeutet, dass server-seitige Includes erlaubt sind. FollowSymLinks erlaubt dem Server, in diesem Verzeichnis symbolischen Links zu folgen.

AnmerkungBitte beachten
 

Options-Angaben im Hauptserver Konfigurations-Abschnitt müssen für jeden VirtualHost-Container individuell repliziert werden.Für nähere Informationen zu VirtualHost-Container, siehe Abschnitt 10.5.65.

10.5.24. AllowOverride

Die Anweisung AllowOverride bestimmt, ob Options durch Deklarationen in einer .htaccess-Datei überschrieben werden können. Standardmäßig sind sowohl das root-Verzeichnis als auch DocumentRootso konfiguriert, dass ein Überschreiben durch .htaccess nicht möglich ist.

10.5.25. Order

Die Anweisung Order bestimmt die Reihenfolge, in der die Anweisungen allow und deny ausgewertet werden. Der Server ist so konfiguriert, dass für Ihr Allow>-Anweisungen vor den Deny -Anweisungen für Ihr DocumentRoot ausgewertet werden.

10.5.26. Allow

Allow gibt an, welcher Anforderer auf ein bestimmtes Verzeichnis zugreifen darf. Der Anforderer kann sein: all, ein Domänenname, eine IP-Adresse, ein Teil einer IP-Adresse, ein Netzwerk-/Netmask-Paar usw. Ihr DocumentRoot-Verzeichnis ist so konfiguriert, dass durch Allow Anforderungen von all (d.h. allen Anforderern) erlaubt sind.

10.5.27. Deny

Deny funktioniert genauso wie Allow, wobei angegeben wird, wem der Zugriff nicht gestattet ist. In Ihrer DocumentRoot sind standardmäßig keine Deny-Anweisungen enthalten.

10.5.28. UserDir

UserDir ist der Name des Unterverzeichnisses innerhalb eines Home-Verzeichnisses jedes Benutzers, wo private HTML-Seiten abgelegt werden können, die vom Web-Server bereitgestellt werden sollen. Diese Anweisung hat den Standardwert disable.

Die Standardeinstellung für das Unterverzeichnis ist public_html. Zum Beispiel könnte der Server die folgende Anforderung erhalten:

http://example.com/~username/foo.html

Der Server sucht daraufhin die Datei:

/home/username/public_html/foo.html

Im obigen Beispiel ist /home/username das Home-Verzeichnis des Benutzers. (Beachten Sie bitte, dass der Standardpfad zu den Home-Verzeichnissen von Benutzern auf Ihrem System abweichen kann.)

Überprüfen Sie, ob die Zugriffsberechtigungen für die Home-Verzeichnisse der Benutzer richtig eingestellt sind. Die richtige Einstellung ist 0711. Für die public_html-Verzeichnisse der Benutzer müssen die read (r)- und execute (x)-Bits eingestellt sein (0755 ist ebenfalls ausreichend). Dateien, die im public_html-Verzeichnis der Benutzer zum Abruf angeboten werden, müssen mindestens die Berechtigung 0644 haben.

10.5.29. DirectoryIndex

Der DirectoryIndex ist die Standardseite, die vom Server geliefert wird, wenn ein Benutzer durch Angabe von "/" am Ende eines Verzeichnisnamens einen Index eines Verzeichnisses anfordert.

Wenn ein Benutzer zum Beispiel die Seite http://example/this_directory/, anfordert, wird entweder die DirectoryIndex-Seite (falls vorhanden) oder eine vom Server erstellte Verzeichnisliste angezeigt. Die Standardeinstellung für den DirectoryIndex ist index.html und die index.html.var Type-Map. Der Server sucht nach einer dieser Dateien und gibt die Datei aus, die zuerst gefunden wird. Wenn keine dieser Dateien gefunden wird und Options Indexes für dieses Verzeichnis aktiviert ist, erstellt und überträgt der Server eine Liste im HTML-Format, die die Unterverzeichnisse und Dateien im Verzeichnis enthält, ausser das Verzeichnis-Auflistungs-Feature ist ausgeschaltet.

10.5.30. AccessFileName

AccessFileName bestimmt die Datei, die vom Server zur Speicherung von Zugriffskontrollinformationen in jedem Verzeichnis verwendet werden soll. Standardmäßig ist Ihr Web-Server so konfiguriert, dass für die Speicherung von Zugriffskontrollinformationen die Datei .htaccess verwendet wird (falls vorhanden).

Unmittelbar nach der Anweisung AccessFileName wird durch eine Reihe von Files-Tags die Zugangskontrolle zu allen Dateien geregelt, die mit .ht beginnen. Diese Anweisungen verwehren aus Sicherheitsgründen den Zugriff auf alle .htaccess-Dateien ( bzw. andere Dateien, die mit .ht beginnen.

10.5.31. CacheNegotiatedDocs

Standardmäßig fordert Ihr Web-Server Proxyserver auf, keine Dokumente im Cache zu halten, die auf der Grundlage deren Inhalts übertragen wurden (da diese sich eventuell mit der Zeit oder auch durch eine Eingabe des Requesters ändern könnten). Wenn Sie CacheNegotiatedDocs auf on setzen, wird diese Funktion deaktiviert und Proxyserver können Dokumente im Cache halten.

10.5.32. TypesConfig

TypesConfig gibt die Datei an, die die Standardliste der MIME Type-Zuordnungen definiert (Dateinamenerweiterungen für Inhaltstypen). Die Standarddatei für TypesConfig ist /etc/mime.types. Es wird empfohlen, zum Hinzufügen von MIME Type-Zuordnungen die Datei /etc/mime.typesnicht zu editieren, sondern die Anweisung AddType zu verwenden.

Weitere Informationen über AddType finden Sie in Abschnitt 10.5.55.

10.5.33. DefaultType

DefaultType definiert einen Standardinhaltstyp, den der Web-Server für Dokumente verwendet, deren MIME-Types nicht bestimmt werden können. Die Standardeinstellung für Ihren Web-Server ist, dass bei Dateien mit einem nicht genau zu bestimmenden Inhaltstyp ein Standardtext-Inhaltstyp angenommen wird.

10.5.34. HostnameLookups

HostnameLookups kann auf on, off oder double gesetzt werden. Wenn HostnameLookups auf on gesetzt ist, wird vom Server die IP-Adresse für jede Verbindung automatisch aufgelöst. Die Auflösung der IP-Adresse bedeutet, dass Ihr Server mindestens eine oder mehr Verbindungen zum DNS herstellt, um den zu einer IP-Adresse gehörenden Host-Namen zu bestimmen, was erhöhten Prozess-Overhead zur Folge hat. Wenn Sie HostnameLookups auf double einstellen, führt Ihr Server einen double-reverse DNS Lookup aus, was sogar zu einem noch höheren Prozess-Overhead führt.

Im Allgemeinen sollten Sie die Einstellung für HostnameLookups auf off belassen, um Ressourcen zu sparen.

Wenn Sie sich die Host-Namen in Ihrer Protokolldai ansehen wollen, verwenden Sie eines der vielen Protokolldateinanalysier-Tools, mit denen die DNS-Lookups wirkungsvoller und stapelweise erfolgt wenn Sie Ihre Protokolldatein rotieren.

10.5.35. ErrorLog

ErrorLog bestimmt die Datei, in der Server-Fehler protokolliert werden. Wie durch den Namen der Anweisung angedeutet, ist die Fehlerprotokolldatei für Ihren Web-Server /var/log/httpd/error_log.

10.5.36. LogLevel

LogLevel legt fest, wie ausführlich die Fehlermeldungen im Fehlerprotokoll dargestellt werden. LogLevel kann auf emerg, alert, crit, error, warn, notice, info oder debug eingestellt werden (von der kürzesten bis zur ausführlichsten Darstellung). LogLevel ist standardmäßig auf warn eingestellt.

10.5.37. LogFormat

Die LogFormat-Anweisung bestimmt das Format in den verschiedenen Web-Server Log-Dateien. Welches LogFormat verwendet wird, hängt von den Einstellungen in der CustomLog-Anweisung ab (siehe Abschnitt 10.5.38).

Die folgendne sind die Format-Optionen, wenn die CustomLog Anweisung auf combined gesetzt ist:

%h (IP Adresse oder Hostname des RemoteHosts)

Listet die remote IP-Adresse des anfragenden Clients. Wenn HostnameLookups auf on gesetzt ist, wird der Client Hostname aufgezeichnet, ausser dieser steht von DNS nicht zur Verfügung.

%l (rfc931)

Nicht benutzt. Ein Bindestrich [-] erscheint in der Log-Datei für dieses Feld.

%u (Authentifizierter Benutzer)

Listet den Benutzernamen des Benutzers im Falle einer erforderlichen Authentifizierung auf. Dies wird für gewöhnlich nicht benutzt, daher erscheint für dieses Feld ein Bindestrich [-] in der Log-Datei.

%t (Datum)

Listet das Datum und die Zeit der Anfrage.

%r (Anfrage-String)

Listet die Anfrage-Strings genauso wie diese vom Browser oder Client gekommen sind.

%s (Status)

Listet den HTTP Status-Code, welcher zum Client-Host zurückgesendet wurde.

%b (Bytes)

Listet die Größe des Dokuments.

%\"%{Referer}i\" (Referrer)

Listet die URL der Webseite, welche den Client-Host and den Web-Server vermittelt hat.

%\"%{User-Agent}i\" (User-Agent)

Listet die Art des Web-Browsers, der die Anfrage durchführt.

10.5.38. CustomLog

CustomLog bestimmt die Protokolldatei und das Protokolldateiformat. In der Standardkonfiguration Ihres Web-Servers bestimmt CustomLog die Protokolldatei, in der die Zugriffe auf Ihren Web-Server protokolliert werden: /var/log/httpd/access_log. Wenn Sie für Ihren Web-Server Server-Leistungsstatistiken auf der Basis der Zugriffe erstellen möchten, muss Ihnen bekannt sein, wo diese Datei abgelegt ist.

Das standardmäßige CustomLog Format stellt außerdem das combined Protokolldateiformat dar, wie hier veranschaulicht:

remotehost rfc931 user date "request" status bytes referrer user-agent

10.5.39. ServerSignature

Die Anweisung ServerSignature fügt in alle vom Server erstellten Dokumente eine Zeile ein, die die Apache Serverversion und den ServerName des Rechners enthält, auf dem der Server ausgeführt wird (z.B. Fehlermeldungen, die an Clients zurückgesendet werden). ServerSignature ist standardmäßig auf on eingestellt.

Sie können die Einstellung auf off setzen, oder auf EMail, was einen mailto:ServerAdmin HTML-Tag in die Signaturzeile einfügt.

10.5.40. Alias

Mit der Einstellung Alias können Verzeichnisse außerhalb des Verzeichnisses DocumentRoot liegen und der Web-Server kann dennoch darauf zugreifen. Jede URL, die mit dem Alias endet, verzweigt automatisch zum Aliaspfad. Als Standard- Einstellung ist bereits ein Alias eingerichtet. Auf das Verzeichnis icons/ kann vom Web-Server zugegriffen werden, liegt jedoch nicht DocumentRoot.

10.5.41. ScriptAlias

Die Einstellung ScriptAlias legt fest, wo CGI-Skripts abgelegt sind. Im Allgemeinen sollten CGI-Skripts nicht in DocumentRoot belassen werden. In DocumentRoot abgelegte CGI-Skripts könnten wie Textdokumente gelesen werden. Dies kann somit ein Sicherheitsrisiko für Ihren Server darstellen. Daher wird ein spezielles Verzeichnis außerhalb des DocumentRoot-Verzeichnis, welches Server-seitige ausführbare Programme und Skripts enthält, von der ScriptAlias-Anweisung dafür vorgesehen. Dieses Verzeichnis ist als cgi-bin bekannt und wird standardmäßig auf /var/www/cgi-bin/ gesetzt.

Es ist möglich Verzeichnisse zum Speichern von ausführbaren Programmen außerhalb des cgi-bin/-Verzeichnisses zu erstellen. Für eine dahingehende Anleitung verweisen wir auf Abschnitt 10.5.56 und Abschnitt 10.5.22.

10.5.42. Redirect

Wenn eine Web-Seite verschoben wird, kann mit Redirect die Zuordnung der alten URL auf eine neue URL erfolgen. Hier das Format:

Redirect /<old-path>/<file-name> http://<current-domain>/<current-path>/<file-name>

Wenn also eine HTTP-Anforderung für eine Seite empfangen wird, die früher unter http://your_domain/path/foo.html abgerufen werden konnte, sendet der Server die neue URL (http://new_domain/path/foo.html) an den Client, der dann im Normalfall versucht, das Dokument von der neuen URL abzurufen.

In this example, any requests for <file-name> at the old location is automatically redirected to the new location.

Genauere Hinweise zur Redirect-Option finden Sie im Modul mod_rewrite, das mit dem Server geliefert wird.

10.5.43. IndexOptions

IndexOptions bestimmt das Erscheinungsbild der vom Server erstellten Verzeichnislisten durch das Hinzufügen von Symbolen, Dateibeschreibungen usw.. Wenn Options Indexes aktiviert ist (siehe Abschnitt 10.5.23), kann Ihr Web-Server eine Verzeichnisliste erstellen, wenn er eine HTTP-Anforderung wie die Folgende empfängt:

http://your_domain/this_directory/

Die Standardkonfiguration schaltet FancyIndexing ein. Das heisst, dass ein Benutzer ein Verzeichnis durch Klicken auf die Spaltenheader neu ordnen kann. Ein weiterer Klick auf den selben Header ändert die Reihenfolge von Aufsteigend nach Absteigend. FancyIndexing zeigt auch verschiedene Icons für verschiedene Dateien, je nach Dateiendungen.

In der Standardkonfiguration ist FancyIndexing aktiviert. Wenn FancyIndexing aktiviert ist, werden durch Klicken auf die Überschrift der Spalte in der Verzeichnisliste die Einträge entsprechend dieser Spalte sortiert. Ein weiterer Klick auf dieselbe Überschrift schaltet von aufsteigender zu absteigender Reihenfolge um und umgekehrt. FancyIndexing zeigt außerdem je nach Dateiendung verschiedene Symbole für verschiedene Dateien an. Bei Verwendung der Anweisung AddDescription und aktiviertem FancyIndexing wird in der vom Server erstellten Verzeichnisliste eine kurze Dateibeschreibung angegeben.

IndexOptions hat eine Reihe von weiteren Parametern, die zur Festlegung des Erscheinungsbilds der vom Server erstellten Verzeichnisse verwendet werden können. Zu diesen Parametern gehören IconHeight und IconWidth, durch die der Server angewiesen wird, die HTML-Tags HEIGHT und WIDTH für die Symbole in den vom Server erstellten Web-Seiten zu verwenden. Mittels dem IconsAreLinks-Parameter werden die Symbole zusammen mit dem Dateinamen als Teil des HTML-Ankers eingetragen.

10.5.44. AddIconByEncoding

Diese Anweisung bestimmt die Symbole, die in vom Server erstellten Verzeichnislisten für Dateien mit MIME-Encoding angezeigt werden. Zum Beispiel verwendet der Web-Server in vom Server erstellten Verzeichnislisten standardmäßig für MIME-codierte x-compress- und x-gzip-Dateien das Symbol compressed.gif.

10.5.45. AddIconByType

In dieser Anweisung werden Symbole angegeben, die in vom Server erstellten Verzeichnislisten für Dateien mit MIME-Types angezeigt werden. Ihr Server ist zum Beispiel so konfiguriert, dass in vom Server erstellten Verzeichnislisten für Dateien mit dem Mime-Type "text"; das Symbol text.gif angezeigt wird.

10.5.46. AddIcon

AddIcon gibt an, welche Symbole in vom Server erstellten Verzeichnislisten für bestimmte Dateitypen bzw. für Dateien mit bestimmten Erweiterungen anzuzeigen sind. Zum Beispiel ist Ihr Web-Server so konfiguriert, dass das Symbol binary.gif für Dateien mit der Erweiterung .bin oder .exe verwendet wird.

10.5.47. DefaultIcon

DefaultIcon bestimmt das Symbol, das in vom Server erstellten Verzeichnislisten für Dateien angezeigt wird, für die kein anderes Symbol angegeben ist. unknown.gif ist für diese Dateien standardmäßig DefaultIcon.

10.5.48. AddDescription

AddDescription kann zur Anzeige von benutzer-spezifischen Beschreibungen bestimmter Dateien oder Dateitypen verwendet werden(dazu muss FancyIndexing als IndexOptions-Parameter benutzt werden). Die Anweisung AddDescription unterstützt die Auflistung bestimmter Dateien, Wildcards oder Dateiendungen.

10.5.49. ReadmeName

ReadmeName benennt die Datei, die an das Ende der vom Server erstellten Verzeichnisliste angehängt wird (falls die Datei im Verzeichnis vorhanden ist). Der Web-Server versucht zuerst, die Datei als HTML-Dokument anzuhängen, dann als Standardtextdatei. Standardmäßig ist ReadmeName auf README eingestellt.

10.5.50. HeaderName

HeaderName bestimmt die Datei, die am Beginn der vom Server erstellten Verzeichnislisten eingefügt wird (falls die Datei im Verzeichnis vorhanden ist). Wie bei ReadmeName versucht der Server, die Datei nach Möglichkeit als HTML-Datei anzuhängen, sonst als einfachen Text.

10.5.51. IndexIgnore

IndexIgnore listet Dateiendungen, Teile von Dateinamen, Wildcards oder vollständige Dateinamen auf. Der Web-Server nimmt Dateien, die diesen Parametern entsprechen, nicht in die vom Server erstellten Verzeichnislisten auf.

10.5.52. AddEncoding

AddEncoding benennt Dateinamenerweiterungen, welche eine spezielle Codierungsart angeben sollen. AddEncoding kann auch bei manchen Browsern dazu verwendet werden, bestimmte Dateien beim Download zu dekomprimieren.

10.5.53. AddLanguage

AddLanguage verknüpft Dateinamenserweiterungen mit der speziellen Sprache, in der der Inhalt abgefasst ist. Diese Anweisung ist hauptsächlich für den Inhaltsabgleich nützlich, wenn der Server je nach Spracheinstellung im Browser des Clients eines von mehreren möglichen Dokumenten zurückliefert.

10.5.54. LanguagePriority

LanguagePriority ermöglicht die Einstellung, in welchen Sprachen Dateien geliefert werden sollen, falls vom Client im Browser keine Angabe zur Sprache vorliegt.

10.5.55. AddType

Verwenden Sie die AddType-Anweisung, um die Paare von MIME-Type und Dateiendung zu bestimmen, oder die Standardeinstellungen zu überschreiben. Die folgenden Beispielsanweisungen weisen Apache HTTP Server an die Dateiendung .tgz zu kennen:

AddType application/x-tar .tgz

10.5.56. AddHandler

AddHandler ordnet Dateierweiterungen speziellen Handlern zu. Der cgi-script-Handler kann zum Beispiel in Kombination mit der Erweiterung .cgi verwendet werden, um eine Datei mit der Endung .cgi als CGI-Skript zu bearbeiten. Das funktioniert auch für Dateien, die außerhalb des Verzeichnisses ScriptAlias liegen, wenn Sie die hier angegebenen Hinweise beachten. Ihre Datei httpd.conf enthält einen AddHandler für CGI:

AddHandler cgi-script .cgi

Zusätzlich muss ExecCGI als Options für alle Verzeichnisse eingestellt werden, die ein CGI-Skript enthalten. Weitere Informationen zum Einstellen von ExecCGI für ein Verzeichnis finden Sie in Abschnitt 10.5.22.

AddHandler wird vom Server neben CGI-Skripts auch für die Verarbeitung der vom Server verarbeiteten HTML- und Imagemap-Dateien verwendet.

10.5.57. Action

Action ermöglicht die Angabe einer Paarung aus MIME-Inhaltstyp und CGI-Skript, damit ein spezielles CGI-Skript immer dann ausgeführt wird, wenn eine Datei dieses Medientyps angefordert wird.

10.5.58. ErrorDocument

ErrorDocument verknüpft einfach einen HTTP-Antwortcode mit einer Meldung oder einer URL, die zum Client zurückgesendet wird. Standardmäßig gibt Ihr Web-Server bei einem Problem oder Fehler eine einfache und meist kryptische Fehlermeldung an den anfordernden Client zurück. Statt der Standardeinstellung können Sie ErrorDocument zur Konfiguration Ihres Web-Servers verwenden, so dass der Server eine von Ihnen angepasste Meldung ausgibt oder den Client zu einer lokalen oder externen URL umleitet.

WichtigWichtig
 

Sie müssen die Fehlermeldung in doppelte Anführungszeichen ["] setzen, damit sie gütig ist.

10.5.59. BrowserMatch

Die Anweisung BrowserMatch ermöglicht es Ihrem Server, Umgebungsvariablen zu definieren und auf Grundlage des User-Agent HTTP-Header-Felds (gibt den Browser des Clients an) in geeigneter Weise zu reagieren. Standardmäßig verwendet Ihr Web-Server BrowserMatch, um keine Verbindungen mit Browsern zuzulassen, die Probleme bereiten, und zum Deaktivieren von Keepalives und HTTP-Header-Löschbefehlen für Browser, von denen bekannt ist, dass sie Probleme mit diesen Aktionen haben.

10.5.60. Location

Die Tags <Location> und </Location> ermöglichen die Angabe von Zugangsberechtigungen auf URL-Basis.

Wenn Sie zulassen möchten, dass Benutzer von Ihrer Domäne aus Serverstatusberichte einsehen können, sollten Sie für den nächsten Abschnitt mit Anweisungen die Kommentare entfernen:

<Location /server-status>
    SetHandler server-status 
    Order deny,allow
    Deny from all 
    Allow from <.example.com>
</Location>

Dabei muss .your_domain.com durch den Namen Ihrer Second Level-Domäne ersetzt werden.

Wenn Sie Serverkonfigurationsberichte (einschließlich installierter Module und Konfigurationsanweisungen) für Anforderungen aus Ihrer Domäne bereitstellen möchten, müssen für die folgenden Zeilen die Kommentare entfernt werden:

<Location /server-info>
    SetHandler server-info
    Order deny,allow
    Deny from all
    Allow from <.example.com>
</Location>

Auch hier muss .your_domain.com entsprechend angegeben werden.

10.5.61. ProxyRequests

Um den Apache HTTP Server als Proxy-Server zu konfigurieren, entfernen Sie das Hash-Symbol (#) vom Anfang der Zeile <IfModule mod_proxy.c>, den ProxyRequests und jeder Zeile in der <Proxy>-Stanza. Setzen Sie die ProxyRequests-Anweisung auf On und geben Sie an, welchen Domains Zugriff zum Server in der Allow from-Anweisung der <Proxy>-Stanza erlaubt sind.

10.5.62. Proxy

<Proxy *> and </Proxy> tags create a container which encloses a group of configuration directives meant to apply only to the proxy server. Many directives which are allowed within a <Directory> container may also be used within <Proxy> container.

10.5.63. Cache-Anweisungen

Eine Reihe von Cache-Anweisungen sind in in der Standard-Konfigurationsdatei von Apache HTTP Server enthalten. In den meisten Fällen reicht es aus, das Hash-Symbol (#) vom Anfang der Zeile zu entfernen. Die folgenden sind jedoch einige wichtigere Cache-Anweisungen.

Die folgende Liste gibt einige andere Cache-bezogene Anweisungen.

10.5.64. NameVirtualHost

Wenn Sie namensbasierte virtuelle Hosts einrichten, müssen Sie die Anweisung NameVirtualHost für die IP-Adresse verwenden und die Portnummer, falls erforderlich. Die Konfiguration von namensbasierten virtuellen Hosts wird verwendet, wenn Sie verschiedene virtuelle Hosts für verschiedene Domänen einrichten möchten, aber nicht genügend verschiedene IP-Adressen für die verschiedenen Domänennamen haben (oder verwenden möchten), für die Ihr Web-Server Dokumente bereitstellt.

AnmerkungBitte beachten
 

Alle eingerichteten namensbasierten virtuellen Hosts funktionieren nur für unverschlüsselte HTTP-Verbindungen, da Sie keine namensbasierten virtuellen Hosts für einen verschlüsselten Server verwenden können. Müssen Sie virtuelle Hosts mit einem verschlüsselten Server verwenden, benötigen Sie IP-adressbasierte virtuelle Hosts.

Wenn Sie namensbasierte virtuelle Hosts verwenden, entfernen Sie die Kommentare der Konfigurationsanweisung NameVirtualHost und fügen die richtige IP-Adresse für Ihren Server dazu. Fügen Sie anschließend zusätzliche VirtualHost Container für jeden virtuellen Host und je nach Notwendigkeit Ihrer Konfiguration hinzu.

10.5.65. VirtualHost

<VirtualHost>- und </VirtualHost>-Tags erzeugen einen Container, der die Eigenschaften eines virtuellen Hosts angibt. Der VirtualHost Container akzeptiert die meisten Konfigurationsanweisungen.

Eine Reihe von auskommentierten VirtualHost-Tags sind in httpd.conf enthalten, was die minimalen Konfigurationsanweisungen beschreibt, die für die Einrichtung eines virtuellen Hosts benötigt sind. Weitere Informationen über virtuelle Hosts finden Sie in Abschnitt 10.8.

AnmerkungBitte beachten
 

Der standardmäßige SSL Virtueller Host Container befindet sich nunmehr in der Datei /etc/httpd/conf.d/ssl.conf.

10.5.66. SSL-Konfigurationsanweisungen

Die Anweisungen in der Datei /etc/httpd/conf.d/ssl.conf können so konfiguriert werden, dass sichere Web-Kommunikationen mit SSL und TLS möglich sind.

10.5.66.1. SetEnvIf

Die Apache-Konfigurationsanweisung SetEnvIf kann dazu verwendet werden, um Umgebungsvariablen zu setzen, die auf Kopfinformationen der eingehenden Anfrage basieren. Es ist nicht ausschließlich eine SSL Anweisung, obwohl es sich in der bereitgestellten /etc/httpd/conf.d/ssl.conf-Datei befindet. In diesem Zusammenhang wird diese Anweisung zur Deaktivierung von HTTP-Keepalive verwendet und ermöglicht SSL das Schließen der Verbindung, ohne dass ein Close Notify-Alarm vom Client-Browser gesendet wird. Diese Einstellung ist für bestimmte Browser erforderlich, welche die SSL-Verbindung nicht zuverlässig beenden.

Nähere Informationen über weitere Anweisungen innerhalb der SSL Konfigurationsdatei, finden Sie unter folgenden URLs:

Informationen darüber, wie man einen Apache HTTP Secure Server einrichtet, finden Sie im Kapitel Apache HTTP Secure Server Konfiguration im Red Hat Enterprise Linux Handbuch zur System-Administration.

AnmerkungBitte beachten
 

In den meisten Fällen werden SSL-Anweisungen während der Red Hat Enterprise Linux-Installation entsprechend konfiguriert. Vorsicht ist angesagt, wenn Apache HTTP Secure Server Anweisungen abgeändert werden, da eine Miskonfiguration Sicherheitslücken hervorrufen kann.