[ Seminar Linux und Apache ] ... [ Inhaltsübersicht ] ... [ Modularisierung und Erweiterbarkeit ]
Einflußbereich der Direktiven
Man kann den Einflußbereich der Direktiven beschränken, indem man
sie in bestimmte Kontainer schreibt.
Directory
><Directory directory-path>...</Directory>
<Directory ~ "^/test[0-9]">
<DirectoryMatch
>Directory
> )<Files
><Directory>..
<FilesMatch>
<Location>
<LocationMatch>
<VirtualHost>
<....Match>
verzichtet werden, da auch in den anderen Kontainern reguläre Ausdrücke
verwendet werden können.
Die Konfiguration von Verzeichniseigenschaften kann man auch über ".htaccess"-Dateien
vornehmen.
Diese Dateien können in den übers den Server erreichbaren Verzeichnissen
liegen.
Die Direktiven, die in einer solchen Datei stehen gelten wie beim Directory-Kontainer
unterhalb des Verzeichnisses, in dem die Datei liegt.
Die Verwendung von ".htaccess"-Dateien hat den Vorteil, dass bei Änderungen
von den Verzeichniseigenschaften die Hauptkonfigurationsdatei nicht verändert
werden muss und der Server nicht neu gestartet werden muss, um die Konfigurationsdateien
einzulesen. Ein weiterer Vorteil ist, dass auch Benutzer, die keinen Zugriff
auf die zentralen Konfigurationsdateien haben, so die Eigenschaften der Verzeichnisse,
auf die sie Zugriff haben, ändern können.
In der Hauptkonfigurationsdatei httpd.conf kann mit der Direktive
AllowOverride
eingeschränkt werden welche Direktiven überschrieben
werden dürfen.
Mit dieser Konfigurationsdatei kann Apache bestimmten Datei-Endungen MIME-Typen zuordnen. Diesen MIME-Type schickt der Server im HTTP-Header an den HTTP-Client (Browser) mit. So kann der Browser die empfangenen Dateien mit den entsprechenden Programmen anzeigen.
Auszug aus mime.types:
application/pdf pdf
application/postscript ai eps ps
In dieser Datei werden alle Anfragen protokoliert.
Das Format eines Eintrages kann konfiguriert werden.
Hier ist die Standardformatierung der Log-Einträge definiert:
LogFormat "%h %l %u %t \"%r\" %>s %b" common
CustomLog logs/access_log common
Über LogFormat
werden Aliasse erzeugt und mit CustomLog wird
die Logdatei bestimmt und deren Format über den Alias gewählt.
%h: remote host
%l: remote username
%u: HTTP authenticated username
%t: time
%r: HTTP-Request
%s: HTTP-Status
%b: bytes
Hier ist zur Veranschaulischung ein Logeintrag aus meiner access_log-Datei.
195.37.86.129 - - [11/Dec/2001:23:17:42 +0100] "GET /manual/configuring.html
HTTP/1.0" 200 10739
Alle bei der Verarbeitung der Anfragen auftretenden Fehler und Diagnose-Informationen,
werden hier protokoliert.
Beispiel:
[Tue Dec 11 21:24:03 2001] [error] [client 195.37.86.227] File does not
exist: /usr/local/apache2/htdocs/martin
pre_config
-Methoden
aller Module aufgerufen. Dies ermöglicht es den Modulen den Baum zu modifizieren
bevor er traversiert wird. Sobald die pre_config-Methoden aller Module gerlaufen
sind, wird der Baum durchlaufen und die Konfiguration des Servers beendet.bin/httpd
ausführt.
Zum Beenden kann man die Prozess-ID des Hauptprozesses aus der Datei logs/httpd.pid
und den Prozess killen. (Die Pfadangaben sind relativ zu dem Apache-Installationsverzeichnis
gemeint.)bin/apachectl
.start
,stop
,restart
,graceful
graceful
: Eltern-Prozeß weißt die Kind-Prozesse an, sich
nach Beantwortung ihrer derzeitigen Anfrage zu beenden. Die Konfigurationsdateien
werden neu gelesen und die Logfiles neu geöffnet.Es ist mit Apache möglich mehr als eine Website auf dem gleichen Server
laufen zu lassen.
Virtual hosts sind Websites mit unterschiedlichen Namen, die alle auf der gleichen
Server-Hardware laufen.
In der Konfigurationsdatei gibt es für jeden virtuellen Server einen Kontainer,
in dem die Parameter, die von der Basiskonfiguration abweichen eingestellt werden
können. ("Section 3: Virtual Hosts
")
Es gibt zwei Arten von virtuellen Hosts:
[ Seminar Linux und Apache ] ... [ Inhaltsübersicht ] ... [ Modularisierung und Erweiterbarkeit ]