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.
![]() | Warnung |
---|---|
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, studieren Sie Abschnitt 10.2. |
Wenn Sie Apache HTTP-Server konfigurieren müssen, ist lediglich die Datei /etc/httpd/conf/httpd.conf zu editieren und anschließend der httpd-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 dieser Datei erstellen. Falls Sie beim Editieren der Konfigurationsdatei einen Fehler machen, steht Ihnen auf diese Weise eine Sicherheitskopie zur Verfügung.
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, /var/log/httpd/error_log, werfen. 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.
Der nächste Abschnitt enthält kurze Beschreibungen der Anweisungen in httpd.conf, welche allerdings nicht bis ins letzte Detail gehen. Weitere Informationen finden Sie in der Apache-Dokumentation im HTML-Format unter http://localhost/manual/ oder Online unter http://httpd.apache.org/docs-2.0/.
Weitere Informationen zu den mod_ssl Anweisungen erhalten Sie aus der Dokumentation im HTML-Format unter http://localhost/mod/mod_ssl.html oder Online unter http://httpd.apache.org/docs-2.0/mod/mod_ssl.html.
ServerRoot ist das oberste Verzeichnis, indem sich die Server-Dateien befinden. 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.
Im ScoreBoardFile werden interne Serverprozessinformationen gespeichert, die für die Kommunikation zwischen dem Parent-Serverprozess und seinen Child-Prozessen verwendet werden. Red Hat Linux verwendet gemeinsamen Speicherplatz um ScoreBoardFile abzulegen, der Standard /etc/httpd/logs/apache_runtime_status wird nur als Fallback verwendet.
PidFile gibt die Datei an, in welcher der Server seine Prozess-ID (PID) ablegt. Der Default ist hier /var/run/httpd.pid.
Timeout gibt die Zeit in Sekunden an, die der Server bei Kommunikationsverbindungen auf den Empfang und auf Übertragungen wartet. Insbesondere gibt Timeout an, wie lange der Server auf den Empfang einer GET-Anforderung wartet, wie lange er auf den Empfang von TCP-Paketen bei einer POST- oder PUT-Anforderung wartet und wie lange er zwischen ACKs wartet, die als Antwort auf TCP-Pakete gesendet werden. Timeout is auf 300 Sekunden eingestellt, eine für die meisten Situationen geeignete Einstellung.
Mit KeepAlive kann eingestellt werden, ob auf Ihrem Server mehr als eine Anfrage pro Verbindung zugelassen ist (in anderen Worten, werden wiederholte Verbindungen gesichert). 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.8 für weitere Informationen zur KeepAliveTimeout Anweisung) und die Datei /var/log/httpd/error_log auf dem Server zu überwachen. Dieses Protokoll erstellt einen Bericht, wenn dem Server keine untergeordneten Prozesse zur Verfügung stehen.
Diese Anweisung gibt an, wie viele Anforderungen pro wiederholter Verbindung maximal erlaubt sind. Das Apache Projekt 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.
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. KeepAliveTimeout ist per Default auf 15 Sekunden eingestellt.
Der Apache HTTP-Server-Server passt sich dynamisch an die erkannte Last an, 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.
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 acht Serverprozesse erzeugt werden.
MaxClients gibt eine Obergrenze für die Gesamtzahl von Serverprozessen bzw. Clients an, die gleichzeitig ausgeführt werden können. Der Hauptgrund für das Bestehen von MaxClients ist, dass damit verhindert werden soll, dass Ihr Betriebssystem durch einen überlasteten Apache HTTP-Server zum Absturz gebracht wird. Sie sollten MaxClients auf einer hohen Anzahl belassen; die Standardeinstellung des Servers ist 150. Es ist nicht empfohlen MaxClients auf einen Wert größer als 256 zu setzen.
MaxRequestsPerChild legt die Gesamtzahl der Anfragen fest, die jeder Kind-Server-Prozess benötigt, bevor der Kind-Prozess beendet wird. Der Hauptgrund für die Einstellung von MaxRequestsPerChild ist, dass lang andauernde, durch Prozesse verursachte Speicherprobleme vermieden werden sollen. Die Standardeinstellung für MaxRequestsPerChild für den Server ist 1000.
Der Befehl Listen kennzeichnet den Port, an dem Ihr Web-Server ankommende Anforderungen annimmt. Der Web-Server ist so konfiguriert, dass auf Port 80 auf unverschlüsselte Web-Kommunikation und (in /etc/httpd/conf.d/ssl.conf, die sämtliche Secure Servers definiert) auf Port 443 auf sichere Web-Kommunikation abhört.
Wenn Sie Apache HTTP-Server so konfigurieren, dass ein Port kleiner als 1024 abgehört wird (Listen-Modus), 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.
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.
![]() | Wichtig | |
---|---|---|
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:
|
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 mehr 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.
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.63.
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.
Standardmäßig umschließen die Tags <IfDefine HAVE_SSL> die virtuellen Rechnertags für den Secure Server. <IfDefine HAVE_SSL>-Tags umschließen außerdem auch die Anweisungen LoadModule und AddModule für das ssl_module.
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.
![]() | Anmerkung |
---|---|
Aus Sicherheitsgründen kann Apache HTTP-Server nicht als root ausgeführt werden. |
Gibt den Gruppennamen des Apache HTTP-Server-Prozesses an.
Die Standardeinstellung für Group ist apache.
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 auf root@localhost gesetzt.
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.
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 wirklichen Namen Ihres Host unterscheiden. Zum Beispiel können Sie so den Namen www.example.com angeben, aber der Hostname des Servers ist tatsächlich foo.example.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.
Folgend ist ein Beispiel einer ServerName-Anweisung:
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.
Wenn UseCanonicalName auf on eingestellt ist, konfiguriert diese Anweisung Apache HTTP-Server sich selbst mit den in ServerName und Port angegebenen Werten zu referenzieren. Wenn UseCanonicalName auf off eingestellt wird, 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 gesetzt.
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.
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.25) und AllowOverride (siehe Abschnitt 10.5.26) 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 Apache HTTP-Server auf Dateien in diesem Verzeichnis zugreifen kann.
Der Directory-Container kann auch dazu verwendet werden, zusätzliche cgi-bin-Verzeichnisse für Applikationen auf der Server-Seite ausserhalb des in der ScriptAlias-Anweisung angegebenen Verzeichnisses (sehen Sie Abschnitt 10.5.44 für mehr Information zur ScriptAlias Anweisung) anzugeben.
Um dies zu erzielen, muss der Directory-Container die ExecCGI Option für dieses Verzeichnis setzen.
Wenn sich CGI-Skripte zum Beispiel im Verzeichnis /home/my_cgi_directory befinden, fügen Sie der Datei httpd.conf folgenden Directory-Container hinzu:
<Directory /home/my_cgi_directory> Options +ExecCGI </Directory> |
Als nächstes müssen für die Anweisung AddHandler die Kommentare entfernt werden, damit Dateien mit der Endung .cgi als CGI-Skripts erkannt werden können. Anleitungen zur Einstellung von AddHandler finden Sie in Abschnitt 10.5.59.
Damit dies funktioniert, müssen die Zugriffsberechtigungen für CGI-Skripts und den gesamten Pfad zu den Skripts auf 0755 eingestellt sein.
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.
![]() | Anmerkung |
---|---|
Options Statements aus dem Konfigurationsabschnitt des Hauptservers müssen zu jedem einzelnen VirtualHost-Container übertragen werden. Sehen Sie Abschnitt 10.5.69 für zusätzliche Informationen zu VirtualHost-Containers. |
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.
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.
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-/Netzmasken-Paar usw. Ihr DocumentRoot-Verzeichnis ist so konfiguriert, dass durch Allow Anforderungen von all (d.h. allen Anforderern) erlaubt sind.
Deny funktioniert genauso wie Allow, wobei angegeben wird, wem der Zugriff nicht gestattet ist. In Ihrer DocumentRoot sind standardmäßig keine Deny-Anweisungen enthalten.
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.
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 0755. 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.
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.
AccessFileName bestimmt die Datei, die vom Server zur Speicherung von Zugriffskontrollinformationen in jedem Verzeichnis verwendet werden soll. Standardmäßig ist dies .htaccess.
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).
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.
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.types nicht zu editieren, sondern die Anweisung AddType zu verwenden.
Weitere Informationen über AddType finden Sie in Abschnitt 10.5.58.
DefaultType definiert einen Default Content-Type, den der Web-Server für Dokumente verwendet, deren MIME-Types nicht bestimmt werden können. Die Standardeinstellung ist text/plain.
<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
Für weitere Informationen zu Apache HTTP-Server Modulen, sehen Sie Abschnitt 10.7.
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, was diesen zusätzlich belastet.
Um Server-Ressourcen zu sparen, sollten Sie die Einstellung für HostnameLookups auf off belassen werden.
Wenn Host-Namen in den Protokolldateien des Servers notwendig sind, verwenden Sie eines der vielen Analyse-Tools für Protokolldateien, mit denen die DNS-Lookups wirkungsvoller und stapelweise erfolgen wenn Sie Ihre Protokolldatein rotieren.
ErrorLog bestimmt die Datei, in der Server-Fehler protokolliert werden. Diese Anweisung ist standardmäßig auf /var/log/httpd/error_log gesetzt.
LogLevel legt fest, wie ausführlich die Fehlermeldungen im Fehlerprotokoll dargestellt werden. LogLevel kann die Werte (mit steigendem Grade an Detaillierung) emerg, alert, crit, error, warn, notice, info oder debug haben. Der Default-Wert für LogLevel ist warn.
Die LogFormat-Anweisung legt das Format für die Meldungen in den Log-Dateien des Web-Servers fest. Welches LogFormat verwendet wird, hängt von den Einstellungen in der CustomLog-Anweisung ab (siehe Abschnitt 10.5.41).
Die Folgenden sind die Formatierungsoptionen, für den Fall, dass die CustomLog Anweisung auf combined gesetzt ist:
Listet die Remote-IP-Adresse des anfragenden Clients. Wenn HostnameLookups auf on gesetzt ist, wird der Hostname des Client gespeichert, ausser dieser ist nicht über DNS verfügbar.
Wird nicht verwendet. An dieser Stelle wird in der Protokolldatei - eingetragen.
Wenn eine Authentifizierung erforderlich war, hat der Benutzer diesen Namen angegeben. Normalerweise nicht verwendet. An dieser Stelle wird - eingetragen.
Listet das Datum und die Uhrzeit der Anforderung.
Listet den Request-String, wie vom Browser oder Client übernommen.
Listet den HTTP Status-Code, welcher vom Client-Host zürückgegeben wurde.
Listet die Größe des Dokuments.
Listet die URL der Webseite, die den Client Host zum Web-Server verwiesen hat.
Listet den Typ des anfragenden Web-Browsers.
CustomLog identifiziert die Log-Datei und das Format der Log-Datei. Standardmäßig werden die Log-Meldungen, nach /var/log/httpd/access_log geschrieben.
Das Standardformat von CustomLog ist combined. Folgend ist das combined-Format gezeigt:
remotehost rfc931 user date "request" status bytes referrer user-agent |
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 (so wird keine Signaturzeile eingefügt) oder auf EMail ändern . EMail fügt ein HTML-Tag mailto:ServerAdmin in die Signaturzeile.
Mit der Einstellung Alias können Verzeichnisse außerhalb des Verzeichnisses DocumentRoot liegen und der Web-Server kann doch darauf zugegreifen. 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, dieses liegt jedoch nicht im DocumentRoot.
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. Deswegen ist das Verzeichnis cgi-bin standardmäßig ein ScriptAlias von /cgi-bin/ und in Wirklichkeit das Verzeichnis /var/www/cgi-bin/.
Es ist möglich Verzeichnisse mit ausführbaren Dateien ausserhalb von cgi-bin zu erstellen. Für Anleitungen dazu, sehen Sie Abschnitt 10.5.59 und Abschnitt 10.5.24.
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> |
Ersetzen Sie in diesem Beispiel <old-path> mit den alten Pfadinformationen für <file-name> und <current-domain> sowie <current-path> mit der augenblicklichen Domain und den Pfadinformationen für <file-name>.
In diesem Beispiel werden alle Anfragen an <file-name> über die alte URL automatisch zur neuen URL umgeleitet.
Für erweiterte Methoden zur Umleitung, verwenden Sie das Modul mod_rewrite, welche im Apache HTTP-Server enthalten ist. Für weitere Informationen zum Konfigurieren von mod_rewrite, sehen Sie die Dokumentation auf der Webseite der Apache Software Foundation, Online unter http://httpd.apache.org/docs-2.0/mod/mod_rewrite.html.
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.25), kann Ihr Web-Server eine Verzeichnisliste erstellen, wenn er eine HTTP-Anforderung wie die Folgende empfängt:
Als Erstes sucht Ihr Web-Server in diesem Verzeichnis nach einer Datei aus der Liste, die nach der Anweisung DirectoryIndex angegeben ist (z.B. index.html). Wenn er keine der Dateien finden kann, wird Apache HTTP-Server eine HTML-Verzeichnisliste der in dem Verzeichnis enthaltenen Unterverzeichnisse und Dateien erstellt. Mit bestimmten Anweisungen können Sie in IndexOptions das Erscheinungsbild dieser Verzeichnisliste anpassen.
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.
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.
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.
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.
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 dabei der Default.
Mit AddDescription können Sie in vom Server erstellten Listen für bestimmte Dateien von Ihnen eingegebenen Text anzeigen lassen, wozu FancyIndexing in IndexOptions aktiviert sein muss. Sie können bestimmte Dateien, Platzhalterausdrücke oder Dateiendungen für die Dateien angeben, auf die diese Anweisung angewandt werden soll. AddDescription unterstützt das Auflisten von bestimmten Dateien, Wildcard-Ausdrücken oder Dateiendungen.
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.html eingestellt.
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.
IndexIgnore kann Dateiendungen, Teile von Dateinamen, Platzhalterausdrücke oder vollständige Dateinamen enthalten. Der Web-Server nimmt Dateien, die diesen Parametern entsprechen, nicht mit in vom Server erstellte Verzeichnislisten auf.
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.
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.
LanguagePriority ermöglicht die Einstellung, in welchen Sprachen Dateien geliefert werden sollen, falls vom Client im Browser keine Angabe zur Sprache vorliegt.
Mit der Anweisung AddType können Sie paarweise Zuordnungen aus MIME-Types und Dateierweiterungen definieren. Wenn Sie zum Beispiel PHP4 einsetzen, verwendet Ihr Web-Server die Anweisung AddType, um Dateien mit PHP-Endungen (.php4, .php3 .phtml .php) als PHP MIME-Types erkennen zu können. Mit folgender Anweisung erkennt Apache HTTP-Server die Dateierweiterung .shtml:
AddType text/html .shtml AddHandler server-parsed .shtml |
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 folgende Beispiel ist eine AddHandler Anweisung für die Dateiendung .cgi.
AddHandler cgi-script .cgi |
Diese Anweisung erlaubt CGIs auch ausserhalb von cgi-bin zu arbeiten, und zwar in jedem Verzeichnis, welches die ExecCGI Option im Verzeichnis-Container gesetzt hat. Sehen Sie Abschnitt 10.5.24 für weitere Informationen zum Einrichten der ExecCGI Option für ein Verzeichnis.
AddHandler wird vom Server neben CGI-Skripts auch für die Verarbeitung der vom Server verarbeiteten HTML- und Image-Map-Dateien verwendet.
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.
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.
![]() | Wichtig |
---|---|
Sie müssen die Fehlermeldung in doppelte Anführungszeichen |
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.
Die Tags <Location> und </Location> ermöglichen die Angabe von Zugangsberechtigungen auf URL-Basis.
Wenn Sie zulassen möchten, dass Benutzer von Ihrer Domain 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 <.example.com> durch den Namen Ihrer Second Level Domain 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 <.example.com> entsprechend ersetzt werden.
Um Apache HTTP-Server als einen Proxy-Server konfigurieren, entfernen Sie die Kommentarsymbole aus der <IfModule mod_proxy.c>-Zeile um das mod_proxy Modul zu laden, und setzen Sie die ProxyRequests-Anweisung auf On.
Die Tags <Proxy *> und </Proxy> bestimmen einen Container, welcher eine Gruppe von Konfigurationsanweisungen umschließt, die nur auf den Proxy-Server angewandt werden sollen. Viele auf ein Verzeichnis anzuwendende Anweisungen können in <Proxy>-Tags eingeschlossen werden.
Der Befehl ProxyVia legt für einen HTTP Via: Header fest, ob dieser zusammen mit Anforderungen oder Antworten gesendet wird, die über den Apache Proxy-Server laufen. Wenn der ProxyVia auf On eingestellt ist, enthält der Via: Header den Host-Namen, für Full Host-Namen und die Apache HTTP-Server Version, alle Via: Header werden unverändert weitergegeben wenn auf Off, und die Via: Header werden entfernt bei Einstellung auf Block.
Eine Reihe von auskommentierten Cache-Anweisungen sind in der
Standardkonfigurationsdatei
von Apache HTTP-Server enthalten. Wenn Sie die
Proxy-Server Funktion nutzen und auch den Proxy-Cache aktivieren
möchten, sollten Sie die Kommentar-Symbole
CacheRoot — Bestimmt den Namen des Verzeichnisses, in dem die zwischengespeicherten Dateien abgelegt werden. Der Standard-CacheRoot ist das Verzeichnis /var/httpd/proxy/.
CacheSize — Bestimmt, wie viel Speicherplatz in KB für den Cache zur Verfügung gestellt wird. Der Standardwert für CacheSize ist 5 KB.
CacheGcInterval — Legt eine Anzahl von Stunden fest, nach der im Cache enthaltene Dateien gelöscht werden. Die Standardeinstellung für CacheGcInterval ist 4 Stunden.
CacheMaxExpire — Im Cache gespeicherte HTML-Dokumente werden für eine maximale Anzahl von Stunden im Cache gehalten (ohne Neuladen vom Ursprungsserver). Der Standardwert ist 24 Stunden.
CacheLastModifiedFactor — Betrifft die Erzeugung eines Ablaufdatums (expiration) für ein Dokument, das vom Ursprungsserver nicht mit einem eigenen Ablaufdatum versehen wurde. Der Standard-CacheLastModifiedFactor ist auf 0.1 eingestellt, d.h. das Ablaufdatum für solche Dokumente entspricht einem Zehntel der Zeit, die vergangen ist, seitdem das Dokument zuletzt geändert wurde.
CacheDefaultExpire — Die Ablaufzeit für ein Dokument in Stunden, das über ein Protokoll empfangen wurde, das keine Ablaufzeiten unterstützt. Die Standardeinstellung ist 1 Stunde.
NoCache — Gibt Hosts an, deren Inhalt nicht zwischengespeichert werden soll.
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 Domains einrichten möchten ohne mehrere IP-Adressen zu verwenden.
![]() | Anmerkung |
---|---|
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 Domains hinzuzufügen.
Die Tags <VirtualHost> und </VirtualHost> umschließen alle Konfigurationsanweisungen, die für einen virtuellen Host gelten. Die meisten Konfigurationsanweisungen können innerhalb von <VirtualHost>-Tags verwendet werden und gelten dann für diesen virtuellen Host.
Eine Reihe von auskommentierten VirtualHost-Tags umschließen einige Beispielkonfigurationsanweisungen und Platzhalter für die Informationen, die für die Einrichtung eines virtuellen Hosts benötigt würden. Weitere Informationen über virtuelle Hosts finden Sie in Abschnitt 10.8.
![]() | Anmerkung |
---|---|
Alle virtuellen Hostumgebungen von SSL wurden in die Datei /etc/httpd/conf.d/ssl.conf verschoben. |
Die SSL-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.
Die Apache-Konfigurationsanweisung SetEnvIf kann dazu verwendet werden, um Umgebungsvariablen zu setzen, die auf Header-Informationen 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, geben Sie die folgende Adresse in einem Web-Browser an:
http://localhost/manual/mod/mod_ssl.html
Informationen über das Einrichten eines Apache HTTP Secure Server finden Sie im Kapitel Apache HTTP Secure Server Configuration im Red Hat Linux Handbuch benutzerdefinierter Konfiguration.
![]() | Anmerkung |
---|---|
In den meisten Fällen sind die SSL-Anweisungen in der installierten Form völlig ausreichend. Seien Sie Sie sehr vorsichtig wenn Sie Veränderungen an Ihren SSL-Anweisungen vornehmen, da eine Falscheinstellung zu Sicherheitslücken führen kann. |
Zurück | Zum Anfang | Vor |
Starten und Anhalten von httpd | Zum Kapitelanfang | Standard-Module |