Die Konfigurationsdatei apache2.conf
Alle Angaben beziehen sich auf folgende, installierte Pakete:
Apache2 Version apache2 2.0.54-5sarge1
Apache2-common 1.3.33-6sarge3
Apache2-utils
Apache2-doc
Wichtige Konfigurationsdateien liegen unter :
/etc/apache2:
apache2.conf, ..., mods-available, mods-enabled, ports.conf
sites-availabled, sites-enabled
ssl
1. Grundeinstellungen während der Installation:
Der Apache wurde mit folgenden Einstellungen kompiliert:
Server version: Apache/2.0.54
Server built: Jul 28 2006 08:55:39
Architecture: 32-bit
Server compiled with....
-D APACHE_MPM_DIR="server/mpm/worker"
-D APR_HAS_SENDFILE
-D APR_HAS_MMAP
-D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
-D APR_USE_SYSVSEM_SERIALIZE
-D APR_USE_PTHREAD_SERIALIZE
-D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
-D APR_HAS_OTHER_CHILD
-D AP_HAVE_RELIABLE_PIPED_LOGS
-D HTTPD_ROOT=""
-D SUEXEC_BIN="/usr/lib/apache2/suexec2"
-D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
-D DEFAULT_ERRORLOG="logs/error_log"
-D AP_TYPES_CONFIG_FILE="/etc/apache2/mime.types"
-D SERVER_CONFIG_FILE="/etc/apache2/apache2.conf"
2. Globale Konfiguration :
Zentrale Datei zur Steuerung des apache2 ist die apache2.conf. In ihr sind die globalen Einstellungen des Servers angegeben. Die Seiten, die die Webpräsenz realisieren, sind in einem eigens eingerichteten Verzeichnis in der virtuelle Hosts unterhalb der Verzeichnisses /etc/apache2/sites-available definiert.
3. Konfiguration
/etc/apache2/sites-enabled/000-meine-seite
Die Angaben zur Logverwaltung des Apache entsprechen den default-Angaben bei der Installation. Für die http-Seiten wurde ein neues Verzeichnis unterhalb von /data erstellt. Um CGI Scripte bedienen zu können wird ExecCGI als Möglichkeit für den Index mit aufgenommen. In der apache2.conf wurde bereits der Handler freigeschaltet.
NameVirtualHost *
<VirtualHost *>
ServerAdmin technik[a]mein-verein.de
DocumentRoot /data/htdocs/
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory >
<Directory /data/htdocs >
Options Indexes FollowSymLinks MultiViews ExecCGI
AllowOverride None
Order allow,deny
allow from all
</Directory >
AccessFileName .htaccess
<Files ~ "^\.ht" >
Order allow,deny
Deny from all
</Files >
ScriptAlias /cgi-bin/ /data/cgi-bin/
<Directory "/data/cgi-bin">
AllowOverride None
Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
# Possible values include: debug, info, notice, warn, error, crit, alert, emerg.
LogLevel debug
CustomLog /var/log/apache2/access.log combined
ServerSignature On
Alias /icons/ "/data/icons/"
<Directory "/data/icons" >
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>
</VirtualHost >
5. Konfiguration des Ports:
/etc/ports.conf
Listen 80
Hier wurde Port 80 als Port angegeben, auf den der Server lauscht. Dies entspricht den Angaben des Standard-http Ports, auf den der Rechner in der /etc/services gesetzt wurde.
6. Module
Module, die per default geladen sind:
mein-server: /etc/apache2# ls -la mods-enabled/
insgesamt 8
cgid.conf -> /etc/apache2/mods-available/cgid.conf
cgid.load -> /etc/apache2/mods-available/cgid.load
ssl.conf -> /etc/apache2/mods-available/ssl.conf
ssl.load -> /etc/apache2/mods-available/ssl.load
userdir.conf -> /etc/apache2/mods-available/userdir.conf
userdir.load -> /etc/apache2/mods-available/userdir.load
/etc/apache2/apache2.conf
# Verweis auf das KonfigurationsverzeichnisServerRoot "/etc/apache2" temporäre
# Datei, in der gelockte ( für weitere Zugriffe gesperrte ) Dateizugriffe vermerkt
# sind
LockFile /var/lock/apache2/accept.lock
# Datei, temporär, in der die Prozesszahl des Apache vermerkt ist, damit andere
# Programme darauf zugreifen können
PidFile /var/run/apache2.pid
# Das Timeout bestimmt ein Zeitlimit für Clientanfragen bevor Serverseitig die
# Verbindung geschlossen wird.
Timeout 300
# Aktiviert oder deaktiviert dauerhafte TCP/IP Verbindungen für Clientanfragen. D.h. es
# können mehrere Anfragen eines Clients über eine bereits geöffnete TCP/IP Verbindung
# getätigt werden.
KeepAlive OnMaxKeepAliveRequests 100
KeepAliveTimeout 15
# Modul, um jede Anfrage isoliert zu bearbeiten, so dass Probleme mit einem einzelnen # Prozess keinen anderen beeinflussen.
# !!! Da der Apache als worker arbeitet ist dieses Modul nicht aktiviert !!!
< IfModule prefork.c >
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxClients 20
MaxRequestsPerChild 0
< /IfModule >
# die hier angegebene Parameter bestimmen das verhalten des Apache. Treaded
# bedeutet, dass ein Prozess weitere Unterprozesse starten kann.
< IfModule worker.c >
StartServers 2
MaxClients 150
MinSpareThreads 25
MaxSpareThreads 75
ThreadsPerChild 25
MaxRequestsPerChild 0
< /IfModule >
# Zum obigen Modul gehört das unten folgenden:
# NumServers: gleich bleibende Anzahl von Serverprozessen
# StartThreads: anfängliche Menge der in jedem Serverprozeß enthaltenen
# Arbeitsthreads
# MinSpareThreads: Mindestzahl der Arbeitsthreads, die ungestört bleiben können
# MaxSpareThreads: Höchstzahl der Arbeitsthreads, die ungestört bleiben können
# MaxThreadsPerChild: Höchstzahl der Arbeitsthreads in jedem Serverprozeß
# MaxRequestsPerChild: Höchstzahl der Anfragen, auf die ein Serverprozeß reagieren
# kann
< IfModule perchild.c >
NumServers 5
StartThreads 5
MinSpareThreads 5
MaxSpareThreads 10
MaxThreadsPerChild 20
MaxRequestsPerChild 0
AcceptMutex fcntl
< /IfModule >
# Benutzer und Gruppe, die den Webserver starten kann
User www-data
Group www-data
#Format, in dem der Apache-Server seine Mitteilungen (logs) schreibt
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\""
combinedLogFormat "%h %l %u %t \"%r\" %>s %b"
commonLogFormat "%{Referer}i -> %U" refererLogFormat "%{User-agent}i" agent
# Angabe des Verzeichnisses, in das der Apache Fehlermeldungen schreibt:
ErrorLog /var/log/apache2/error.log
# Angabe des Verzeichnisses, indem die geladenen Module liegen:
Include /etc/apache2/mods-enabled/*.load
Include /etc/apache2/mods-enabled/*.conf
# Angabe der in die Konfiguration miteinzubeziehenden Konfigurationsdateien
Include /etc/apache2/httpd.conf
Include /etc/apache2/ports.conf
Include /etc/apache2/conf.d/[^.#]*
# Ein Alias /icons/ ist voreingestellt, um in FTP-Verzeichnislisten die Icons angezeigt zu
# bekommen. Wenn dies nicht gewünscht ist, kann diese # Angabe auskommentiert
# werden
Alias /icons/ "/usr/share/apache2/icons/"
< Directory "/usr/share/apache2/icons" >
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
< /Directory >
# Die Module mod_include und mod_negotiation.c müssen zur Anpassung von
# Fehlermeldungen ansprechbar sein.
< IfModule mod_negotiation.c >
< IfModule mod_include.c >
Alias /error/ "/usr/share/apache2/error/"
# Direktive, die festlegt, wie mit Fehlermeldungen umzugehen ist und welche Seiten bei
# welchen Fehlern geladen werden
< Directory "/usr/share/apache2/error" >
AllowOverride None
Options IncludesNoExec
AddOutputFilter Includes html
AddHandler type-map var
Order allow,deny
Allow from all
LanguagePriority en es de fr
ForceLanguagePriority Prefer Fallback
< /Directory >
ErrorDocument 400 /error/HTTP_BAD_REQUEST.html.var
ErrorDocument 401 /error/HTTP_UNAUTHORIZED.html.var
ErrorDocument 403 /error/HTTP_FORBIDDEN.html.var
# .... weitere Angaben .................
ErrorDocument 503 /error/HTTP_SERVICE_UNAVAILABLE.html.var
ErrorDocument 506 /error/HTTP_VARIANT_ALSO_VARIES.html.var
< /IfModule>
< /IfModule>
# "DirectoryIndex": bestimmt den/die Namen der Datei(en), die Apache als Index-Datei
# ausliefert, wenn ein Verzeichnis angefragt wird.
DirectoryIndex index.htm index.html index.cgi
# Name der Datei, nach der in jedem Verzeichnis gesucht wird, um zusätzliche
# Konfigurations-Anweisungen zu erhalten
AccessFileName .htaccess
# Die folgenden Zeilen schützen ".htaccess"- und ".htpasswd"-Dateien davor, dass
# Clients ihren Inhalt auslesen können.
< Files ~ "^\.ht" >
Order allow,deny
Deny from all
< /Files >
# "UseCanonicalName": legt fest, wie Apache selbst-referenzierende URL's sowie die
#Variablen SERVER_NAME und SERVER_PORT zusammensetzt. Wenn hier "Off" angeben ist,
#verwendet Apache den vom Client angegebenen Hostnamen und Port. Wird "On" angegeben, # verwendet wird Apache den in der Anweisung "ServerName" vorgegebenen Wert.
UseCanonicalName Off
# "TypesConfig" zeigt an, ob/wo die Datei mime.types (oder ihr äquivalent) gefunden
# werden kann.
TypesConfig /etc/mime.typesDefaultType text/plain
#"HostnameLookups": Zeichnet die Namen von Clients auf oder auch nur deren
# IP-AdresseHostname
Lookups Off
# "IndexOptions" bestimmt die Erscheinungsweise von servergenerierten
# Verzeichnislisten.
IndexOptions FancyIndexing VersionSort
# "AddIcon*" teilt dem Server mit, welches Icon für welche Datei- Erweiterung
# verwendet werden soll. Diese Icons sieht man, wenn "FancyIndexing" angegeben wurde.
AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip
AddIconByType (TXT,/icons/text.gif) text/*
AddIconByType (IMG,/icons/image2.gif) image/*
AddIcon /icons/binary.gif .bin .exe
AddIcon /icons/binhex.gif .hqx
# ........... weitere Angaben ..................
AddIcon /icons/hand.right.gif README
AddIcon /icons/blank.gif ^^BLANKICON^^DefaultIcon /icons/unknown.gif
# "ReadmeName" ist der Name der README-Datei, in der der Server normalerweise
# nach Zusatzinformationen sucht, die an Verzeichnislisten angehängt werden sollen.
# "HeaderName" ist der Name einer Datei, die einem Verzeichnis-Index vorangestellt werden
# soll und individuelle Informationen über dieses Verzeichnis enthält.
ReadmeName README.html
HeaderName HEADER.html
# "IndexIgnore" ist ein Satz an Dateinamen, die bei der Auflistung von
# Verzeichnisinhalten ignoriert und nicht angezeigt werden sollen.
IndexIgnore .??* *~ *
HEADER* RCS CVS *,t
# Erlaubt es unterschiedlichen Browsern, die unter ADD aufgeführten Dateien
# zu nutzen
AddEncoding x-compress Z
AddEncoding x-gzip gz tgz
AddLanguage da .dk
# ........... weitere Angaben .................
AddLanguage tw .tw
AddLanguage zh-tw .tw
# Priotität der Sprachen, die der Apache bedient
LanguagePriority de da nl et fr el it ja ko no pl pt pt-br ltz ca es sv tw
# "AddDefaultCharset" gibt eine Standard-Kodierung vor, die für alle ausgegebenen
# Seiten gilt.
AddDefaultCharset ISO-8859-1
AddCharset ISO-8859-1 .iso8859-1 .latin1
# ........... weitere Angaben .............
AddCharset ISO-2022-CN .iso2022-cn .cis
AddCharset Big5 .Big5 .big5
# "AddType" gibt Ihnen die Möglichkeit, die in der Datei "mime.types" enthaltenen
# Informationen für spezifische Dateitypen zu ergänzen oder zu überschreiben.
AddType application/x-tar .tgz
# "AddHandler" erlaubt es, ausgewählte Dateinamen an "Handler" zu übergeben,
# unabhängig vom Dateityp selbst. Die unten stehen anweisung bezieht sich auf CGI-Scripts
# außerhalb der mit ScriptAlias festgelegten Verzeichnisse.
AddHandler cgi-script .cgi
# Filter erlauben Ihnen, Inhalte zu verarbeiten, bevor sie an den Client gesendet
# werden. Um .shtml-Dateien für Server Side Includes (SSI) zuzulassen.
# Zusätzlich die Anweisung "Includes" in den "Optionen" einfügenen.)
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
< /FilesMatch >
# Die folgenden Anweisungen modifizieren das normale Verhalten bei Reaktionen auf
# HTTP-Anfragen, um bekannten Problemen bei bestimmten Browser-Implementationen
# entgegenzuwirken.
BrowserMatch "Mozilla/2" nokeepalive
BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0
#.............. weitere Angeben ................
BrowserMatch "^gnome-vfs" redirect-carefully
BrowserMatch "^WebDAVFS/1.[012]" redirect-carefully
# "ExtendedStatus" legt fest, ob Apache eine vollständige Status-Information (On) oder
# nur die Basis-Informationen ausgeben soll (Off),wenn der "server-status" im Browser
# abgerufen wird.
ExtendedStatus Off
< Location /server-status >
SetHandler server-status
Order deny,allow
Deny from all
Allow from 127.0.0.1
Allow from xxx.xxx.xxx.xxx
< /Location >
# Bezieht die Angaben in der Virtuelle-Host-Konfigurationsdatei mit ein:
Include /etc/apache2/sites-enabled/[^.#]*