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 Format migrieren 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 von Apache HTTP Server 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 15 Sekunden.

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, fällt die Verantwortlichkeit für das Management der Server-Pool-Eigenschaften unter Apache HTTP Server 2.0 einer Modul-Gruppe, MPM genannt, zu. Die Eigenschaften des Server-Pool sind unterschiedlich, je nach dem welches MPM verwendet wird. Aus diesem Grund ist ein IfModule Container von Nöten, um den Server-Pool für das verwendete MPM zu bestimmen.

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

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 dü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)-Modulen 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.59.

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. User

Die Anweisung User definiert die Benutzer-ID, die vom Server zur Beantwortung von Anforderungen verwendet wird. Die User-Einstellung bestimmt die Zugriffsrechte des Servers. Alle Dateien, auf die dieser Benutzer nicht zugreifen darf, sind für die Besucher Ihrer Website ebenfalls nicht zugänglich. Die Standardeinstellung für User ist apache.

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.

AnmerkungBitte beachten
 

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

10.5.16. Group

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

Die Standardeinstellung für Group ist apache.

10.5.17. 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.

Meistens ist es am günstigsten, ServerAdmin auf webmaster@example.com einzustellen. Richten Sie dann 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.18. 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.19. 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.20. DocumentRoot

DocumentRoot ist das Verzeichnis, das die meisten HTML-Dateien enthält, die der Server auf Anforderung überträgt. Der Standardeintrag für DocumentRoot ist sowohl für den unverschlüsselten als auch für den Secure Web-Server /var/www/html. 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.21. 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.22) und AllowOverride (siehe Abschnitt 10.5.23) 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.

Das Verzeichnis cgi-bin wird mit der Option ExecCGIfür die Ausführung von CGI-Skripts eingerichtet.

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.55 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.22. 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 statements from the main server configuration section needs to be replicated to each VirtualHost containers individually. Refer to Abschnitt 10.5.65 for more information about VirtualHost containers.

10.5.23. 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.24. 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.25. 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.26. 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.27. 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.28. 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 diesen 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.

10.5.29. 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 which begin with .ht beginnen.

10.5.30. CacheNegotiatedDocs

Standardmäßig fordert Ihr Web-Server Proxyserver auf, keine Dokumente im Cache zu halten, die auf der Grundlage des Inhalts übertragen wurden (d.h. sie können nach einer gewissen Zeit oder aufgrund der Eingabe des Anforderers geändert werden). Wenn Sie CacheNegotiatedDocs auf on setzen, wird diese Funktion deaktiviert und Proxyserver können Dokumente im Cache halten.

10.5.31. 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.54.

10.5.32. 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.33. HostnameLookups

HostnameLookups kann auf on, off oder double eingestellt werden. Wenn Sie HostnameLookups erlauben (durch Einstellung auf on), wird vom Server die IP-Adresse für jede Verbindung, die ein Dokument von Ihrem Web-Server anfordert, automatisch aufgelöst. Die Auflösung der IP-Adresse bedeutet, dass Ihr Server mindestens eine Verbindung zum DNS herstellt, um den zu einer IP-Adresse gehörenden Host-Namen zu bestimmen. Wenn Sie HostnameLookups auf double einstellen, stellt Ihr Server einen doppelt-umgekehrten DNS aus. Mit anderen Worten: nach einem umgekehrten Lookup wird ein Vorwärts-Lookup ausgeführt. Mindestens eine der IP-Adressen im Vorwärts-Lookup muss der Adresse des ersten umgekehrten Lookup entsprechen.

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.34. 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.35. 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.36. 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.37).

The following are the format options if the CustomLog directive is set to combined:

%h (remote host's IP address or hostname)

Lists the remote IP address of the requesting client. If HostnameLookups is set to on, the client hostname is recorded unless it is not available from DNS.

%l (rfc931)

Not used. A hyphen [-] appears in the log file for this field.

%u (authenticated user)

If authentication was required, lists the user name of the user is recorded. Usually, this is not used, so a hyphen [-] appears in the log file for this field.

%t (date)

Lists the date and time of the request.

%r (request string)

Lists the request string exactly as it came from the browser or client.

%s (status)

Lists the HTTP status code which was returned to the client host.

%b (bytes)

Lists the size of the document.

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

Lists the URL of the webpage which referred the client host to Web server.

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

Lists the type of Web browser making the request.

10.5.37. 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.

CustomLog stellt außerdem das Protokolldateiformat auf "common" ein. Das Protokolldateiformat "common" sieht folgendermaßen aus:

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

10.5.38. 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.39. 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 liegt jedoch nicht DocumentRoot.

10.5.40. ScriptAlias

Die Einstellung ScriptAlias legt fest, wo CGI-Skripts (oder andere Skriptarten) abgelegt sind. Im Allgemeinen sollten CGI-Skripts nicht in DocumentRoot abgelegt werden. In DocumentRoot abgelegte CGI-Skripts könnten wie Textdokumente gelesen werden. Auch wenn Sie nichts dagegen haben, dass andere Ihre CGI-Skripts lesen und weiterverwenden, könnte die Offenlegung ihrer Funktion von Benutzern mit krimineller Energie zur Ausnutzung von Sicherheitslücken im Skript genutzt werden. Dies kann somit ein Sicherheitsrisiko für Ihren Server darstellen. Standardmäßig ist das Verzeichnis cgi-bin ein ScriptAlias von /cgi-bin/ und in Wirklichkeit das Verzeichnis /var/www/cgi-bin/.

Hinweise zum Ausführen von CGI-Skripts in anderen Verzeichnissen als cgi-bin finden Sie in Abschnitt 10.5.55 und Abschnitt 10.5.21.

10.5.41. 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.42. 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.22), 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 vom Server erstellten Web-Seiten zu verwenden, sowie IconsAreLinks,durch die die Symbole zusammen mit dem Dateinamen als Teil des HTML-Ankers für den Link verwendet werden können.

10.5.43. 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.44. 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.45. 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.46. 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.47. AddDescription

Mit AddDescription können Sie in vom Server erstellten Listen für bestimmte Dateien von Ihnen eingegebenen Text anzeigen lassen (dazu muss außerdem FancyIndexing in IndexOptions) aktiviert sein). Sie können bestimmte Dateien, Wildcards oder Dateiendungen für die Dateien angeben, auf die diese Anweisung angewandt werden soll.

10.5.48. ReadmeName

ReadmeName bestimmt 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.49. 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.50. IndexIgnore

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

10.5.51. AddEncoding

AddEncoding bestimmt, welche Dateinamenerweiterungen eine spezielle Codierungsart angeben sollen. AddEncoding kann auch bei manchen Browsern (nicht bei allen) dazu verwendet werden, bestimmte Dateien beim Download zu entpacken.

10.5.52. 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.53. 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.54. 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.55. 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.21.

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

10.5.56. 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.57. 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.58. 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.59. 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.60. 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.61. 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.62. ProxyVia

Der Befehl ProxyVia legt für eine HTTP Via:-Zeile fest, ob diese zusammen mit Anforderungen oder Antworten gesendet wird, die über den Apache Proxyserver laufen. Der Header Via: enthält den Host-Namen, wenn ProxyVia auf On eingestellt ist, den Host-Namen und die Apache HTTP Server Version bei Einstellung auf Full, alle Via:-Zeilen werden unverändert weitergegeben bei Einstellung auf Off und die Via:-Zeilen werden entfernt bei Einstellung auf Block.

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, sind für die Konfigurationsanweisung NameVirtualHost die Kommentare zu entfernen, und nach NameVirtualHost ist die richtige IP-Adresse für Ihren Server anzugeben. Anschließend sind mit VirtualHost-Tags weitere Informationen zu den verschiedenen Domänen hinzuzufügen, die ServerName für jeden virtuellen Host sowie weitere Konfigurationsanweisungen einschließen, die nur für diesen virtuellen Host gelten.

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
 

Alle virtuellen Hostumgebungen von SSL wurden in die Datei /etc/httpd/conf.d/ssl.conf verschoben.

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 Anfrage basieren. In der mitgelieferten Datei httpd.conf wird 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, die die SSL-Verbindung nicht zuverlässig beenden.

Für weitere Informationen zu SSL-Anweisungen rufen Sie mit Ihrem Browser die folgenden Seiten auf:

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
 

Nehmen Sie keine Veränderungen an Ihren SSL-Anweisungen vor, es sei denn, Sie wissen genau, was Sie tun. In den meisten Fällen sind die SSL-Anweisungen in der installierten Form völlig ausreichend.