Unterabschnitte


Das Apache2-Paket

Einleitung

Mit dem Apache-HTTP-Server kann man selbst Webseiten auf eisfair bereitstellen, auch Seiten mit dynamischen Inhalten (PHP, Perl, Python) stellen damit kein Problem dar.

Das Apache-Paket stellt den eigentlichen Webserver bereit.

PHP wird in den Versionen PHP-FPM und APACHE2_PHP bereitgestellt und muss den Anforderungen entsprechend installiert werden.

Auch andere Skriptsprachen erfordern die entsprechenden Pakete und eventuell zusätzliche Treiber.

Die Voraussetzungen

Das Apache2-Paket benötigt weitere Pakete, die Aufzählung ist nicht abschliessend und die Namen eventuell nicht vollständig:

Die Installation

Das apache2-Paket wird über das Setup-Menü installiert. Wird eine ältere Paketversion vorgefunden, so wird deren Konfiguration gesichert und das alte Paket deinstalliert bevor die neuen Programmdateien installiert werden und die Konfiguration übernommen wird.

Bei einer Neuinstallation wird automatisch die Standardkonfiguration erstellt. Nach Beendigung dieses Schrittes werden die Konfigurationsdateien generiert und der httpd- Prozess gestartet.

Das Menü im Setup-Programm

Das Menü des apache2 Paketes im Setup-Programm ist wie folgt aufgebaut:

  4. Service administration  
  x. Apache2 Webserver    
  x. Read Apache Documentation    
  x. Configuration    
  x. Edit Apache Configuration    
  x. Advanced configuration file handling    
  x. Append commands to the httpd.conf (experts only!)    
    Dieser Punkt bietet die Möglichkeit, manuell Kommandos in die    
    Konfigurationsdatei des Apache einzutragen.    
  x. Modules configuration    
    Über diesen Punkt können Module, wie z.B. die PHP Erweiterung    
    administriert und konfiguriert werden.    
  x. Server Handling (start, stop)    
  x. Show status    
  x. Restart service    
  x. Stop service    
  x. Start service    

Die Änderung der Konfiguration

Die Konfiguration von Apache2 unter eisfair erfolgt über den Menüpunkt „Edit configuration“ im Paketmenü. Die vorgenommenen Änderungen werden nach Beenden des Editors automatisch übernommen.

Die Konfigurationsdatei

In der Konfigurationsdatei, die über das Menü zugänglich ist, sind die in den folgenden Unterabschnitten beschriebenen Parameter vorhanden.

Die allgemeine Konfiguration

START_APACHE2

Über diese Variable kann gesteuert werden, ob der Apache gestartet werden soll, oder nicht.

Standardeinstellung: START_APACHE2='no'

APACHE2_PORT

Auf diesem Port läuft Apache und nimmt Anfragen entgegen.

Standardeinstellung: APACHE2_PORT='80'

APACHE2_SERVER_ADMIN

Die E-Mail-Adresse des Serverbetreibers; diese wird auf den Seiten eingefügt, die vom Server in Fehlerfällen generiert werden.

APACHE2_SERVER_NAME

Hier wird der Name angegeben unter dem der Apache-Webserver im Browser später aufgerufen wird. Es muss ein FQDN (Full qualified domain name) angegeben werden. D.h. Hostname + Domainname.

Ist der Hostname vom eisfair z.B. obelix und der Domainname home.lan, so muss als Server-Name obelix.home.lan angegeben werden

APACHE2_SERVER_SIGNATURE

Hierüber kann festgelegt werden, ob Apache in automatisch generierte Dokumente wie Index- oder Fehlermeldungsseiten eine Fußzeile einfügen soll.

- Off: Apache erzeugt keine Informationsfußzeile.
- On: Es wird eine Fußzeile ohne E-Mail-Adresse generiert.
- Email: Es wird eine Fußzeile mit E-Mail-Adresse generiert.

Standardeinstellung: APACHE2_SERVER_SIGNATURE='On'

APACHE2_DOCUMENT_ROOT

Hier wird das Verzeichnis eingestellt, in dem die Website liegt.

Standardeinstellung: APACHE2_DOCUMENT_ROOT='/var/www/htdocs'

Allgemeine SSL Einstellungen

APACHE2_SSL

Hier kann eingestellt werden, ob SSL genutzt werden soll, oder nicht.

Standardeinstellung: APACHE2_SSL='no'

APACHE2_SSL_PORT

Hier kann der SSL Port, der genutzt werden soll, eingestellt werden.

Standardeinstellung: APACHE2_SSL_PORT='443'

APACHE2_MPM

Hier wird das zu verwendende PHP Modul eingetragen.

  apache2_php 'prefork'
  php-fpm 'event' oder 'worker'

Standardeinstellung: APACHE2_MPM='prefork'

APACHE2_SSL_LOGDIR

Hier kann das Verzeichnis angegeben werden, in das SSL Meldungen protokolliert werden sollen.

Standardeinstellung: APACHE2_SSL_LOGDIR='/var/www/log/'

APACHE2_SSL_OSCP

Hierüber kann das SSL Stapling ein- bzw. ausgeschaltet werden

Standardeinstellung: APACHE2_SSL_OSCP='no'

Spezielle Einstellungen

APACHE2_DIRECTORY_INDEX

Diese Seite wird aufgerufen, wenn keine Datei in der URL angegeben wird z.B. nur http://192.168.0.1/ dann wird automatisch umgeleitet auf http://192.168.0.1/index.html.

Wenn PHP installiert wird, wird (in der Konfiguration nicht sichtbar) automatisch index.php hinzugefügt.

Standardeinstellung: APACHE2_DIRECTORY_INDEX='index.html index.htm'

APACHE2_HOSTNAME_LOOKUPS

Normalerweise werden in der Logdatei nur die IP-Adressen gespeichert, die auf den Server zugegriffen haben. Wenn man diese Variable auf yes setzt werden statt der IP-Adressen, die Hostnames in die Logdatei geschrieben. Das Auflösen der IP-Adressen in DNS-Namen ist allerdings ein zeitaufwendiger Prozess; auf einem Server, der eine hohe Last hast, wird deshalb die Einstellung APACHE2_HOSTNAME_LOOKUPS='no' empfohlen.

Die IP-Adressen können beim Auswerten der Logdateien immer noch in (evtl. veraltete) DNS-Namen aufgelöst werden.

Standardeinstellung: APACHE2_HOSTNAME_LOOKUPS='no'

APACHE2_VIEW_DIRECTORY_CONTENT

Wenn in der URL nur ein Verzeichnis angegeben ist und dort keine Index-Datei aus APACHE2_DIRECTORY_INDEX liegt, wird bei der Einstellung yes der Verzeichnis Inhalt angezeigt.

Standardeinstellung: APACHE2_VIEW_DIRECTORY_CONTENT='no'

APACHE2_ACCESS_CONTROL_TYPE_ALL

Definiert wer auf Apache zugreifen darf. Wenn bei dieser Variablen 'yes' gewählt wurde, ist ein Zugriff für alle gestattet. Wenn 'no' gewählt wurde, greift 'APACHE2_ACCESS_CONTROL_TYPE_IP'.

Gültige Werte: yes, no

Standardeinstellung: APACHE2_ACCESS_CONTROL_TYPE_ALL='yes'

APACHE2_ACCESS_CONTROL_TYPE_IP

Definiert wer auf Apache zugreifen darf. Wenn bei dieser Variablen 'yes' gewählt wurde, ist ein Zugriff für alle unter APACHE2_ACCESS_CONTROL_TYPE_IP gelisteten Einträge gestattet. Wenn 'no' gewählt wurde, greift 'APACHE2_ACCESS_CONTROL_TYPE_HOST'.

Gültige Werte: yes, no

Standardeinstellung: APACHE2_ACCESS_CONTROL_TYPE_IP='no'

APACHE2_ACCESS_CONTROL_IP

Hier ist der Zugriff von der IP Adresse erlaubt. Es dürfen mehrere durch ein Leerzeichen getrennt angegeben werden.

Beispiel: 10 192.168.6 192.168.6.1 192.168.6.0/24

Gültige Werte: IP Adresse

Standardeinstellung: APACHE2_ACCESS_CONTROL_IP=''

APACHE2_ACCESS_CONTROL_TYPE_HOST

Definiert wer auf Apache zugreifen darf. Wenn bei dieser Variablen 'yes' gewählt wurde, ist ein Zugriff für alle unter APACHE2_ACCESS_CONTROL_TYPE_HOST gelisteten Einträge gestattet. Wenn 'no' gewählt wurde, greift 'APACHE2_ACCESS_CONTROL_TYPE_LOCAL'.

Gültige Werte: yes, no

Standardeinstellung: APACHE2_ACCESS_CONTROL_TYPE_HOST='no'

APACHE2_ACCESS_CONTROL_HOST

Hier ist der Zugriff mit Hostname erlaubt. Es dürfen mehrere durch ein Leerzeichen getrennt angegeben werden.

Gültige Werte: Hostname, Domain

Standardeinstellung: APACHE2_ACCESS_CONTROL_HOST=''

APACHE2_ACCESS_CONTROL_TYPE_LOCAL

Definiert wer auf Apache zugreifen darf. Wenn bei dieser Variablen 'yes' gewählt wurde, ist nur Zugriff für localhost gestattet. Wenn 'no' gewählt wurde, ist kein Zugriff auf den Apache möglich.

Gültige Werte: yes, no

Standardeinstellung: APACHE2_ACCESS_CONTROL_TYPE_LOCAL='no'

APACHE2_ENABLE_SSI

Legt fest, ob Server Side Includes (SSI) verwendet werden. Server Side Includes sind eine Möglichkeit, Seiten dynamisch zusammenzubauen. Für weitere Informationen siehe apacheweek.

APACHE2_ENABLE_HTTP2

Aktivierung des HTTP2 Moduls

Gültige Werte: yes, no

Standardeinstellung: APACHE2_ENABLE_HTTP2='no'

Error- und Access-Logdatei

APACHE2_ERROR_LOG

Alle Fehler, die der Apache dem User liefert oder die sonst auftreten können (z.B. Fehler in Modulen) werden in dieser Datei gespeichert.

Standardeinstellung: APACHE2_ERROR_LOG='/var/www/log/error_log'

APACHE2_ACCESS_LOG

Alle Zugriffe werden in diese Datei geloggt.

Standardeinstellung: APACHE2_ACCESS_LOG='/var/www/log/access_log'

Script Aliases

APACHE2_SCRIPT_ALIAS

Name des Skript-Alias.

Standardeinstellung: APACHE2_SCRIPT_ALIAS='/cgi-bin'

APACHE2_SCRIPT_DIR

Hier wird der reelle-Pfad vom CGI-Verzeichnis angegeben. Alle CGI-Skripte müssen in dieses Verzeichnis gelegt werden, da ansonsten der Quelltext von dem Skript angezeigt wird. Man kann auch über die Variable APACHE2_DIR_n_CGI CGI-Ausführung in einem anderen Verzeichnis erlauben, aber dies wird aus Sicherheitsgründen nicht empfohlen.

Standardeinstellung: APACHE2_SCRIPT_ALIAS_DIR='/var/www/cgi-bin'

Error Documents

APACHE2_ERROR_DOCUMENT_N

Hier kann die Anzahl der Fehlerdokumente definiert werden.

Standardeinstellung: APACHE2_ERROR_DOCUMENT_N='0'

APACHE2_ERROR_DOCUMENT_x_ERROR

Ein Webserver liefert bei Fehlern bestimmte Statuscodes. Eine Auflistung aller Codes ist auf dieser Website zu finden:

Beispiel: APACHE2_ERROR_DOCUMENT_x_ERROR='404'

APACHE2_ERROR_DOCUMENT_x_DOCUMENT

Wenn ein Fehler auftritt wird nicht die Fehlerseite vom Apache angezeigt sondern die hier angegebene HTML-Seite. Es können auch CGI- oder PHP-Skripte angegeben werden.

Beispiel: APACHE2_ERROR_DOCUMENT_x_DOCUMENT='/404error.html'

Directory Settings und Aliases

APACHE2_DIR_N

Hier kann die Anzahl der Verzeichnisse definiert werden.

APACHE2_DIR_x_ACTIVE

Hierüber kann angegeben werden, ob die aktuellen Einstellungen aktiv sind, oder nicht.

APACHE2_DIR_x_ALIAS

Hier kann angegeben werden, ob für die aktuellen Verzeichniseinstellungen ein Alias vergeben werden soll.

APACHE2_DIR_x_ALIAS_NAME

Soll für die aktuellen Verzeichniseinstellungen ein Alias vergeben werden, so muss hier der Aliasname eingetragen werden.

APACHE2_DIR_x_PATH

Hier muss der reelle Pfad angegeben werden für den die u.g. Parameter gelten.

APACHE2_DIR_x_AUTH_NAME

Wenn APACHE2_DIR_x_AUTH_N nicht gesetzt ist, kann man dies Variable ignorieren. Wenn allerdings die Authentifizierung genutzt werden soll wird der Inhalt dieser Variable im Fenster des Browser angezeigt, wo man Benutzername und Passwort eingeben muss.

APACHE2_DIR_x_AUTH_TYPE

Hier wird die Methode der Authenfizierung gesetzt.
'Basic' sollte nur bei Aktiver SSL Verbindung benutzt werden, da die Authentifizierungsdaten im Klartext übertragen werden.
'Digest' überträgt die Authentifizierugsdaten verschlüsselt.

Gültige Werte: basic, digest

Standardeinstellung: APACHE2_DIR_x_AUTH_TYPE='basic

APACHE2_DIR_x_AUTH_N

Über diese Variable kann gesteuert werden, wie viele User einen geschützten Bereich nutzen dürfen.

APACHE2_DIR_x_ACCESS_CONTROL_TYPE_ALL

Definiert wer auf Apache zugreifen darf. Wenn bei dieser Variablen 'yes' gewählt wurde, ist ein Zugriff für alle gestattet. Wenn 'no' gewählt wurde, greift 'APACHE2_DIR_x_ACCESS_CONTROL_TYPE_IP'.

Gültige Werte: yes, no

Standardeinstellung: APACHE2_DIR_x_ACCESS_CONTROL_TYPE_ALL='yes'

APACHE2_DIR_x_ACCESS_CONTROL_TYPE_IP

Definiert wer auf Apache zugreifen darf. Wenn bei dieser Variablen 'yes' gewählt wurde, ist ein Zugriff für alle unter APACHE2_DIR_x_ACCESS_CONTROL_TYPE_IP gelisteten Einträge gestattet. Wenn 'no' gewählt wurde, greift 'APACHE2_DIR_x_ACCESS_CONTROL_TYPE_HOST'.

Gültige Werte: yes, no

Standardeinstellung: APACHE2_DIR_x_ACCESS_CONTROL_TYPE_IP='no'

APACHE2_DIR_x_ACCESS_CONTROL_IP

Hier ist der Zugriff von der IP Adresse erlaubt. Es dürfen mehrere durch ein Leerzeichen getrennt angegeben werden.

Beispiel: 10 192.168.6 192.168.6.1 192.168.6.0/24

Gültige Werte: IP Adresse

Standardeinstellung: APACHE2_DIR_x_ACCESS_CONTROL_IP=''

APACHE2_DIR_x_ACCESS_CONTROL_TYPE_HOST

Definiert wer auf Apache zugreifen darf. Wenn bei dieser Variablen 'yes' gewählt wurde, ist ein Zugriff für alle unter APACHE2_DIR_x_ACCESS_CONTROL_TYPE_HOST gelisteten Einträge gestattet. Wenn 'no' gewählt wurde, greift 'APACHE2_DIR_x_ACCESS_CONTROL_TYPE_LOCAL'.

Gültige Werte: yes, no

Standardeinstellung: APACHE2_DIR_x_ACCESS_CONTROL_TYPE_HOST='no'

APACHE2_DIR_x_ACCESS_CONTROL_HOST

Hier ist der Zugriff mit Hostname erlaubt. Es dürfen mehrere durch ein Leerzeichen getrennt angegeben werden.

Gültige Werte: Hostname, Domain

Standardeinstellung: APACHE2_DIR_x_ACCESS_CONTROL_HOST=''

APACHE2_DIR_x_ACCESS_CONTROL_TYPE_LOCAL

Definiert wer auf Apache zugreifen darf. Wenn bei dieser Variablen 'yes' gewählt wurde, ist nur Zugriff für localhost gestattet. Wenn 'no' gewählt wurde, ist kein Zugriff auf den Apache möglich.

Gültige Werte: yes, no

Standardeinstellung: APACHE2_DIR_x_ACCESS_CONTROL_TYPE_LOCAL='no'

APACHE2_DIR_x_AUTH_x_USER

Hier kann der User angegeben werden, der sich in den geschützten Bereich einloggen kann. Die Passwort und Benutzername Abfrage geschieht über den Browser.

APACHE2_DIR_x_AUTH_x_PASS

Das Passwort für den Benutzer in APACHE2_DIR_x_AUTH_x_USER wird hier angegeben. Momentan wird dieses noch im Klartext in der Konfigurationsdatei abgespeichert, in den späteren Versionen vom Apache-Paket wird sich dies aber noch ändern.

APACHE2_DIR_x_CGI

Entweder darf hier 'no' angegeben werden oder '.pl', '.cgi' o.ä. Aber nicht 'yes'! Steht diese Variable nicht auf 'no', dann können CGI-Skripte mit den Endungen, die in der Variable stehen ausgeführt werde. Wenn ein CGI-Skript aufgerufen wird, dessen Endung nicht in APACHE2_DIR_x_CGI steht, wird der Quelltext angezeigt.

APACHE2_DIR_x_SSI

Hier darf 'yes' oder 'no' eingetragen werden. Wenn 'yes' eingetragen ist, dann können SSI-Skripte mit der Endung .shtml ausgeführt werden. Aber nur in dem in APACHE2_DIR_x_PATH angegebenen Pfad.

APACHE2_DIR_x_VIEW_DIR_CONTENT

Diese Variable ist in APACHE2_VIEW_DIRECTORY_CONTENT erklärt. Bezieht sich aber nur auf den in APACHE2_DIR_x_PATH angegebenem Pfad.

APACHE2_DIR_x_WEBDAV

Schaltet WebDAV ein oder aus. WebDAV ist eine Dateifreigabe über HTTP und wird z.B. für gemeinsam genutzte Terminkalender genutzt (z.B. Mozilla Sunbird)

Virtual Hosts

Mit Virtual Hosts kann man mehrere Domainnamen und/oder mehrere IP-Adressen auf einem Apache hosten.

Beispiel: Unter www.eisfair.net wurde die Domain meinesubdomain.eisfair.net registriert. Nun hat kann man seinen eisfair -Server z.B. unter folgenden Domains erreichbar machen
asterix.meinesubdomain.eisfair.net und obelix.meinesubdomain.eisfair.net. Denn dank DNS-Wildcard zeigen alle Domains, die man in der Form xxx.meinesubdomain.eisfair.net z.B. in seinen Browser eingibt auf die IP-Adresse des eisfair -Servers.

APACHE2_VHOST_1_ACTIVE='yes'
APACHE2_VHOST_1_IP='*'
APACHE2_VHOST_1_PORT='80'
APACHE2_VHOST_1_SERVER_NAME='asterix.meinesubdomain.eisfair.net'
APACHE2_VHOST_1_SERVER_ALIAS='*.asterix.meinesubdomain.eisfair.net'
APACHE2_VHOST_1_SERVER_ADMIN='wwwadmin@asterix.meinesubdomain.eisfair.net'
APACHE2_VHOST_1_DOCUMENT_ROOT='/var/www/asterix/htdocs'
APACHE2_VHOST_1_SCRIPT_DIR='/var/www/asterix/cgi-bin/'
APACHE2_VHOST_1_ERROR_LOG='/var/www/asterix/log/error_log'
APACHE2_VHOST_1_ACCESS_LOG='/var/www/asterix/log/access_log'
APACHE2_VHOST_1_ACCESS_CONTROL='all'
APACHE2_VHOST_1_SSL='no'
APACHE2_VHOST_1_SSL_PORT='443'
APACHE2_VHOST_1_SSL_FORCE='no'
APACHE2_VHOST_1_SSL_CERT_NAME='apache-asterix.meinesubdomain.eisfair.net'

APACHE2_VHOST_2_ACTIVE='yes'
APACHE2_VHOST_2_IP='*'
APACHE2_VHOST_2_PORT='80'
APACHE2_VHOST_2_SERVER_NAME='obelix.meinesubdomain.eisfair.net'
APACHE2_VHOST_2_SERVER_ALIAS='*.obelix.meinesubdomain.eisfair.net'
APACHE2_VHOST_2_SERVER_ADMIN='wwwadmin@obelix.meinesubdomain.eisfair.net'
APACHE2_VHOST_2_DOCUMENT_ROOT='/var/www/obelix/htdocs'
APACHE2_VHOST_2_SCRIPT_DIR='/var/www/obelix/cgi-bin/'
APACHE2_VHOST_2_ERROR_LOG='/var/www/obelix/log/error_log'
APACHE2_VHOST_2_ACCESS_LOG='/var/www/obelix/log/access_log'
APACHE2_VHOST_2_ACCESS_CONTROL='all'
APACHE2_VHOST_2_SSL='no'
APACHE2_VHOST_2_SSL_PORT='443'
APACHE2_VHOST_2_SSL_FORCE='no'
APACHE2_VHOST_2_SSL_CERT_NAME='apache-obelix.meinesubdomain.eisfair.net'

APACHE2_VHOST_N

Hier kann die Anzahl der virtuellen Hosts definiert werden.

APACHE2_VHOST_x_ACTIVE

Hier wird angeben, ob der betreffende VirtualHost aktiv sein soll.

APACHE2_VHOST_x_IP

Wenn diese Variable auf * gesetzt ist (Standardeinstellung), kann dieser Virtual Host über jede IP-Adresse erreicht werden, die an die NICs gebunden sind. Gibt man hier eine IP-Adresse ein, ist der Virtual Host nur über die eingegeben IP-Adresse erreichbar. Dies nennt man dann IP-Based Virtual Hosts.

APACHE2_VHOST_x_PORT

Hier kann angegeben werden, welcher Port für diesen VirtualHost genutzt werden soll.

APACHE2_VHOST_x_SERVER_NAME

Hier muss der Hostname des Virtual Hosts angegeben werden. Es muss ein Full Qualified Domain Name (FQDN) sein. D.h. der Hostname muss den Host-Anteil plus den Domainnamen enthalten.

Beispiel:
APACHE2_VHOST_x_SERVER_NAME='eis.meinedomain.de'

APACHE2_VHOST_x_SERVER_ALIAS

Hier können zusätzliche Hostnamen angegeben werden.

Beispiel:
APACHE2_VHOST_x_SERVER_ALIAS='www.meinedomain.de *.eis.meinedomain.de'

APACHE2_VHOST_x_SERVER_ADMIN

Die E-Mail-Adresse des Serverbetreibers; diese wird auf den Seiten eingefügt, die vom Server in Fehlerfällen generiert werden.

Beispiel:
APACHE2_VHOST_x_SERVER_ADMIN='wwwadmin@meinedomain.de'

APACHE2_VHOST_x_DOCUMENT_ROOT

In dem hier angegeben Verzeichnis liegen die HTML-Dateien die dieser Virtual Host zur Verfügung stehen soll.

Beispiel:
APACHE2_VHOST_x_DOCUMENT_ROOT='/var/www/meinedomain.de/htdocs/'

APACHE2_VHOST_x_SCRIPT_ALIAS

APACHE2_VHOST_x_SCRIPT_DIR

Hier muss das reelle Verzeichnis angegeben werden, in dem die CGI-Skripte für diesen VirtualHost liegen

Beispiel:
APACHE2_VHOST_x_SCRIPT_DIR='/var/www/meinedomain.de/cgi-bin/'

APACHE2_VHOST_x_ERROR_LOG

In die hier angegebene Datei werden die Fehler, welche für diesen Virtual Host auftreten geschrieben. z.B. Zugriffsfehler wie ein 404 - Not Found

Beispiel:
APACHE2_VHOST_x_ERROR_LOG='/var/www/meinedomain.de/log/error_log'

APACHE2_VHOST_x_ACCESS_LOG

In die hier angegebene Datei werden die erfolgten Zugriffe geschrieben.

Beispiel:
APACHE2_VHOST_x_ACCESS_LOG='/var/www/meinedomain.de/log/access_log'

APACHE2_VHOST_x_ACCESS_CONTROL

Die Adressen die hier angegeben werden, haben Zugriff auf den Server. Wenn alle Rechner Zugriff haben sollen, dann muss hier ”all” angegeben werden.

Siehe auch APACHE2_ACCESS_CONTROL

APACHE2_VHOST_x_DIR_N

Anzahl der Directories.

APACHE2_VHOST_x_DIR_x_ACTIVE

Gibt an, ob die aktuellen Einstellungen aktiv sind, oder nicht.

APACHE2_VHOST_x_DIR_x_ALIAS

Hier kann angegeben werden, ob für die aktuellen Verzeichniseinstellungen ein Alias vergeben werden soll.

APACHE2_VHOST_x_DIR_x_ALIAS_NAME

Soll für die aktuellen Verzeichniseinstellungen ein Alias vergeben werden, so muss hier der Aliasname eingetragen werden.

APACHE2_VHOST_x_DIR_x_PATH

Hier muss der reelle Pfad angegeben werden für den die u.g. Parameter gelten.

APACHE2_VHOST_x_DIR_x_AUTH_NAME

Wenn APACHE2_DIR_x_AUTH_N nicht gesetzt ist, kann man dies Variable ignorieren. Wenn allerdings die Authentifizierung genutzt werden soll wird der Inhalt dieser Variable im Fenster des Browser angezeigt, wo man Benutzername und Passwort eingeben muss.

APACHE2_VHOST_x_DIR_x_AUTH_N

Über diese Variable kann gesteuert werden, wie viele User einen geschützten Bereich nutzen dürfen.

APACHE2_VHOST_x_DIR_x_AUTH_x_USER

Hier kann der User angegeben werden, der sich in den geschützten Bereich einloggen kann. Die Passwort und Benutzername Abfrage geschieht über den Browser.

APACHE2_VHOST_x_DIR_x_AUTH_x_PASS

Das Passwort für den Benutzer in APACHE2_DIR_x_AUTH_x_USER wird hier angegeben. Momentan wird dieses noch im Klartext in der Konfigurationsdatei abgespeichert, in den späteren Versionen vom Apache-Paket wird sich dies aber noch ändern.

APACHE2_VHOST_x_DIR_x_ACCESS_CONTROL

Der Syntax dieser Variable wird bei APACHE2_ACCESS_CONTROL erklärt. Die hier angegebene Zugriffserlaubnis bezieht sich dann nur auf die aktuellen Verzeichniseinstellungen.

APACHE2_VHOST_x_DIR_x_CGI

Entweder darf hier 'no' angegeben werden oder '.pl', '.cgi' o.ä. Aber nicht 'yes'! Steht diese Variable nicht auf 'no', dann können CGI-Skripte mit den Endungen, die in der Variable stehen ausgeführt werde. Wenn ein CGI-Skript aufgerufen wird, dessen Endung nicht in APACHE2_DIR_x_CGI steht, wird der Quelltext angezeigt.

APACHE2_VHOST_x_DIR_x_SSI

Hier darf 'yes' oder 'no' eingetragen werden. Wenn 'yes' eingetragen ist, dann können SSI-Skripte mit der Endung .shtml ausgeführt werden. Aber nur in dem in APACHE2_DIR_x_PATH angegebenen Pfad.

APACHE2_VHOST_x_DIR_x_VIEW_DIR_CONTENT

Diese Variable ist in APACHE2_VIEW_DIRECTORY_CONTENT erklärt. Bezieht sich aber nur auf den in APACHE2_DIR_x_PATH angegebenem Pfad.

APACHE2_VHOST_x_DIR_x_WEBDAV

Schaltet WebDAV ein oder aus. WebDAV ist eine Dateifreigabe über HTTP und wird z.B. für gemeinsam genutzte Terminkalender genutzt (z.B. Mozilla Sunbird)

APACHE2_VHOST_x_MOD_CACHE

Schaltet für den VHOST den Festplatten Cache zu. Das reduziert die Last des Servers, kann aber gelegentlich mit einigen PHP-Scripte zu Problemen führen.

APACHE2_VHOST_x_SSL

Hier kann eingestellt werden, ob SSL genutzt werden soll, oder nicht.

Standardeinstellung: APACHE2_VHOST_x_SSL='no'

APACHE2_VHOST_x_SSL_PORT

Hier kann der SSL Port, der genutzt werden soll, eingestellt werden.

Standardeinstellung: APACHE2_VHOST_x_SSL_PORT='443'

APACHE2_VHOST_x_SSL_FORCE

Hierüber kann eingestellt werden, ob der SSL Modus erzwungen werden soll.

APACHE2_VHOST_x_SSL_CERT_NAME

Über diese Variable kann der Name des SSL-Zertifikates definiert werden.

Logfile Handling

APACHE2_LOG_LEVEL

Über diese Variable kann gesteuert werden, wie viel der Apache protokollieren soll.

Gültige Werte: ”debug”, ”info”, ”notice”, ”warn”, ”errer”, ”crit”, ”alert”, ”emerg”

Standardeinstellung: APACHE2_LOG_LEVEL='warn'

APACHE2_LOG_COUNT

Über diese Variable kann gesteuert werden, wie viele Logdateien gespeichert werden sollen, bevor logrotate alte Logdateien überschreibt.

Gültige Werte: Nummerischer Wert

Standardeinstellung: APACHE2_LOG_COUNT='10'

APACHE2_LOG_INTERVAL

Über diese Variable kann gesteuert werden, wann logrotate Archive der aktuellen Logdateien erstellt.

Gültige Werte: ”daily”, ”weekly”, ”monthly”

Standardeinstellung: APACHE2_LOG_INTERVAL='weekly'

Performance Einstellungen

APACHE2_MAX_KEEP_ALIVE_TIMEOUT

Über diese Variable kann gesteuert werden, wie viele Sekunden Apache eine persistente HTTP/1.1-Verbindung nach dem Abschluss einer Client-Anfrage offen halten und auf eine weitere Anfrage warten soll.

Gültige Werte: Nummerischer Wert

Standardeinstellung: APACHE2_MAX_KEEP_ALIVE_TIMEOUT='15'

APACHE2_MAX_KEEP_ALIVE_REQUESTS

Über diese Variable kann gesteuert werden, wie viele aufeinander folgende HTTP-Anfragen über ein und dieselbe persistente HTTP/1.1-Verbindung abgehandelt werden.

Gültige Werte: Nummerischer Wert

Standardeinstellung: APACHE2_MAX_KEEP_ALIVE_REQUESTS='100'

APACHE2_MAX_CLIENTS

Über diese Variable kann gesteuert werden, wie hoch die maximale Anzahl von Kindprozessen beziehungsweise Threads ist, die Apache insgesamt zur Annahme von Client-Anfragen startet

Gültige Werte: Nummerischer Wert

Standardeinstellung: APACHE2_MAX_CLIENTS='256'

APACHE2_MAX_REQUESTS_PER_CHILD

Über diese Variable kann gesteuert werden, nach wie vielen Anfragen ein worker thread beendet wird.

Gültige Werte: Nummerischer Wert

Standardeinstellung: APACHE2_MAX_REQUESTS_PER_CHILD='10000'

Cache Einstellungen

APACHE2_MOD_CACHE

Schaltet für das APACHE2_DOCUMENT_ROOT Verzeichnis den Festplatten Cache zu. (Nicht für die Vhosts!) Das reduziert die Last des Servers, kann aber gelegentlich mit einigen PHP-Scripte zu Problemen führen.

Standardeinstellung: APACHE2_MOD_CACHE='no'

Manuelle Konfigurationsergänzungen

Für Ergänzungen an der httpd.conf gibt es den Menü-Punkt 'Append commands to the httpd.conf'.

Eigene Erweiterungen des Paketes

Es ist möglich, dass apache2 Paket mit eigenen Module zu erweitern. Hierbei gibt es grundsätzlich zwei unterschiedliche Arten von Erweiterungen. Die eine Möglichkeit ist die Erweiterung des httpd um Module (z.B. PHP, mod_jk). Bei der zweiten Möglichkeit handelt es sich um alle Möglichkeiten, die sich nicht auf httpd Module beziehen.

Im folgenden wird kurz beschrieben, wie Erweiterungspakete aufgebaut sein müssen bzw. was zu beachten ist um ein lauffähiges Erweiterungspaket zu erstellen.

Erweiterung per httpd-Module

Für die Erstellung eines Modul Erweiterungspaketes sind im allgemeinen die folgenden Schritte notwendig:

Übersetzen des Moduls

Die für die Übersetzung von eigenen Modulen benötigten HEADER-Dateien können mit Hilfe des apache2-dev Paketes installiert werden.

Installieren des Moduls

Das übersetzte httpd-Modul ist vorzugsweise unter /usr/local/apache2/modules abzulegen. Es kann jedoch auch jedes andere Verzeichnis, das vom httpd zu erreichen ist, gewählt werden.

Erstellen der Dateien zum Integrieren/Konfigurieren desModuls

Damit das httpd-Modul beim Starten geladen wird, ist eine Datei <module>.load und ggf. eine Konfigurationsdatei <module>.conf zu erstellen. Die Datei <module>.load muss unter /etc/apache2/mods-available abgelegt werden. Die ggf. notwendige Konfigurationsdatei des Moduls ist mit dem Namen <module>.conf unter /etc/apache2/mods-available abzulegen. Beim Erstellen der Konfiguration wird für alle vorhandenen *.load Dateien ein symbolischer Link unter /etc/apache2/mods-enabled angelegt. Sämtliche *.load und die zugehörigen Konfigurationsdateien unter /etc/apache2/mods-enabled werden beim Start des httpd eingelesen.

Beispiel <module>.conf:

    LoadModule php5_module /usr/local/apache2/modules/libphp5.so

Beispiel <module>.conf:

    DirectoryIndex index.php index.php3 index.php4 index.php5
    AddType application/x-httpd-php .php .php3 .php4 .php5
    AddType application/x-httpd-php-source .phps

Implementierung der Funktion check_httpd

Da es zur Zeit unterschiedliche Versionen des apache2 Paketes gibt, die nicht zu einander binärkompatibel sind (Version 1.2.x enthält httpd-2.0.x; Version 1.3.x enthält httpd-2.2.x) muss jedes Modul Erweiterungspaket selbst die Informationen liefern können, ob es zu der jeweiligen httpd Version passt. Hierzu ist in der Datei <module>.sh unter /var/install/config.d/ die Funktion check_httpd zu implementieren. Diese Funktion muss 0 zurückliefern, wenn das Erweiterungspaket zu dem installierten apache2 Paket passt. Andernfalls muss diese Funktion 1 zurückliefern.

Beispiel für eine Implementierung dieser Funktion:

    #------------------------------------------------------------------
    # check httpd version
    #------------------------------------------------------------------
    httpd_version=2.2.9
    check_httpd ()
    {
      needed_version=${httpd_version}
      httpd_installed="`/usr/local/apache2/bin/httpd -v |
                        sed '2,$d; s#^.*/##'`"

      case ${httpd_installed} in
        ${needed_version%.*}*)
          # nothing to do
          retval=0
        ;;
        *)
          echo
          mecho -n "The installed package, "
          mecho --info -n "'apache2_php5', "
          mecho "works only"
          mecho "for a Apache2 package that has been included"
          mecho "the httpd version '${needed_version%.*}.xx'."
          echo
          mecho --info "Please install the recent version."
          echo

          anykey

          retval 1
        ;;
      esac
    }

Erstellen der Menüeinträge

Damit das Erweiterungspaket über die Modulkonfiguration des apache2 Paketes konfiguriert werden kann muss eine Menü-Datei angelegt werden, die folgendem Namensschema entspricht:
setup.services.apache2.config.modules.<module>.menu

Sonstiges

Um zusätzliche Einträge in die Konfigurationsdatei des apache2 vorzunehmen, die nicht mit Hilfe der Modulkonfigurationsdateien unter /etc/apache2/mods-available bzw. /etc/apache2/mods-enabled vorgenommen werden können, kann im Erweiterungspaket eine Datei httpd.conf.<module>.sh angelegt werden. Diese Datei muss unter /var/install/config.d/ abgelegt werden. Beim Erstellen der apache2 Konfiguration werden automatische sämtliche Dateien, die obigem Namensschema entsprechen ausgeführt und die Ausgabe dieser Dateien wird in die Konfigurationsdatei httpd.conf übernommen.
Es ist aber vorzuziehen, dass die Modulkonfiguration über die *.conf Dateien vorgenommen wird, die unter /etc/apache2/mods-available liegen.

Andere Erweiterungen

Für die Erstellung eines solchen Erweiterungspaketes sind im allgemeinen die folgenden Schritte notwendig:

Installieren des Moduls

Das übersetzte httpd-Modul ist vorzugsweise unter /usr/local/apache2/modules abzulegen. Es kann jedoch auch jedes andere Verzeichnis, das vom httpd zu erreichen ist, gewählt werden.

Implementierung der Funktion check_httpd

Da es zur Zeit unterschiedliche Versionen des apache2 Paketes gibt, die nicht zu einander binärkompatibel sind (Version 1.2.x enthält httpd-2.0.x; Version 1.3.x enthält httpd-2.2.x) muss jedes Modul Erweiterungspaket selbst die Informationen liefern können, ob es zu der jeweiligen httpd Version passt. Hierzu ist in der Datei <module>.sh unter /var/install/config.d/ die Funktion check_httpd zu implementieren. Diese Funktion muss 0 zurückliefern, wenn das Erweiterungspaket zu dem installierten apache2 Paket passt. Andernfalls muss diese Funktion 1 zurückliefern.
Auch wenn ein Erweiterungspaket keine Module mitbringt, die von der verwendeten httpd Version abhängen, muss die Funktion innerhalb des Erweiterungspaketes implementiert werden. Es reicht dann jedoch leere Implementierung.

Beispiel für eine Implementierung dieser Funktion:

    #------------------------------------------------------------------
    # check httpd version
    #------------------------------------------------------------------
    check_httpd ()
    {
        retval 0
    }

Erstellen der Menüeinträge

Damit das Erweiterungspaket über die Modulkonfiguration des apache2 Paketes konfiguriert werden kann muss eine Menü-Datei angelegt werden, die folgendem Namensschema entspricht:
setup.services.apache2.config.modules.<module>.menu

Sonstiges

Um zusätzliche Einträge in die Konfigurationsdatei des apache2 vorzunehmen, die nicht mit Hilfe der Modulkonfigurationsdateien unter /etc/apache2/mods-available bzw. /etc/apache2/mods-enabled vorgenommen werden können, kann im Erweiterungspaket eine Datei httpd.conf.<module>.sh angelegt werden. Diese Datei muss unter /var/install/config.d/ abgelegt werden. Beim Erstellen der apache2 Konfiguration werden automatische sämtliche Dateien, die obigem Namensschema entsprechen ausgeführt und die Ausgabe dieser Dateien wird in die Konfigurationsdatei httpd.conf übernommen.
Es ist aber vorzuziehen, dass die Modulkonfiguration über die *.conf Dateien vorgenommen wird, die unter /etc/apache2/mods-available liegen.

Verschiedenes

SSL

SSL (Secure Socket Layer) stellt eine sichere, verschlüsselte Verbindung zwischen Server und Client her. Der Einsatzort ist meist beim Online-Banking oder bei Online-Shops, wo vertrauliche Daten übermittelt werden müssen.

Um SSL einsetzten zu können, müssen zwei Zertifikat erstellt werden. Dies geschieht mit der Hilfe des Pakets „certs“ von Jürgen Edner. (Das Paket wird automatisch bei der Apache-Installation heruntergeladen und installiert).

Wenn die Variable APACHE2_SSL in der Apache-Konfiguration gesetzt worden ist und noch keine Zertifikate bestehen, wird man dazu aufgefordert, eine „Passphrase“ einzugeben. Diese Eingabe sollten Sie sich unbedingt merken, da sie zu einem späteren Zeitpunkt noch einmal gebraucht wird.

Es folgen weitere Eingaben, wie z.B. die Örtlichkeit oder Ihre E-Mail-Adresse für Rückfragen (Diese Angaben können vom Client, der auf Ihrer Website surft abgerufen werden)

WICHTIG: Wenn Sie nach „Common Name“ gefragt werden, müssen Sie den Namen Ihres Servers eingeben! (z.B. „www.karl-egon.eisfair.net„) Ansonsten wird das Zertifikat vom Browser des Clients als Nicht-Vertrauenswürdig eingestuft.

Dies ist ebenfalls der Fall, wenn Sie Name Based Virtual Hosts (mehrere Domainnamen zeigen auf eine IP-Adresse) einsetzten. Das erstellte Zertifikat ist nur für den VirtualHost gültig, bei dem der „Common Name“, den Sie bei der Erstellung des Zertifikates eingegeben haben, gleich dem Servernamen ist.

Nimda & CodeRed

Der Nimda-Wurm versucht eine Sicherheitslücke im ISS (Internet Information Server von Microsoft) zu benutzen. Einem Linux-System kann dieser Wurm absolut nichts anrichten. Wenn der eisfair gescannt wird, erscheinen u.a. diese Einträge in der Logdatei. Mehrere Einträge pro Minute können d urchaus möglich sein.

GET /scripts/root.exe?/c+dir
GET /MSADC/root.exe?/c+dir
GET /c/winnt/system32/cmd.exe?/c+dir
GET /d/winnt/system32/cmd.exe?/c+dir
GET /scripts/..x5c../winnt/system32/cmd.exe?/c+dir
GET /_vti_bin/..x5c../..x5c../..x5c../winnt/system32/cmd.exe?/c+dir
GET /_mem_bin/..x5c../..x5c../..x5c../winnt/system32/cmd.exe?/c+dir
GET /msadc/..x5c../..x5c../..x5c/..\xc1\x1c../..\xc1\x1c../..\xc1\x1c../winnt/system32/cmd.exe?/c+dir
GET /scripts/..\xc1\x1c../winnt/system32/cmd.exe?/c+dir
GET /scripts/..\xc0/../winnt/system32/cmd.exe?/c+dir
GET /scripts/..\xc0\xaf../winnt/system32/cmd.exe?/c+dir
GET /scripts/..\xc1\x9c../winnt/system32/cmd.exe?/c+dir
GET /scripts/..x35c../winnt/system32/cmd.exe?/c+dir
GET /scripts/..x35c../winnt/system32/cmd.exe?/c+dir
GET /scripts/..x5c../winnt/system32/cmd.exe?/c+dir
GET /scripts/..x2f../winnt/system32/cmd.exe?/c+dir

Andere merkwürdige Einträge können durch CodeRed entstehen, ein ähnlicher Wurm. Wenn dies der Fall sein sollte, einfach einen Teil der Logeinträge bei Google eingeben, meist wird dort dann der verursachende Wurm gefunden.