Unterabschnitte

Das Apache2-Paket

Ab Version 1.5.3 - Stand 2012-03-09
(c) Sebastian Scholze <sebastian(at)eisfair(dot)org>

Einleitung

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

Das Apache-Paket stellt nur den eigentlichen Webserver bereit; um PHP benutzen zu können, muss das APACHE2_PHP5-Paket installiert werden.

Die Voraussetzungen

Das Apache2-Paket benötigt die folgenden Pakete:

Die Installation

Das apache2-Paket wird über das Setup-Menü im Untermenü ''Package administration'' 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 diese 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:

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. Wenn es außerhalb von /var/www/ liegt muss das HOME-Verzeichnis des Users wwwrun angepasst werden, damit auf das Verzeichnis noch per FTP zugegriffen werden kann.

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_SSL_LOGDIR
Hier kann das Verzeichnis angegeben werden, in das SSL Meldungen protokolliert werden sollen.

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

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
Die IP-Adressen bzw. Hosts die hier angegeben werden haben Zugriff auf den Apache. Für die Virtual Hosts muss dies extra eingestellt werden. Jeder Rechner hat Zugriff, wenn die Variable auf 'all' steht.

Folgende Beispiele illustrieren die Formate der Parameter:

Standardeinstellung: APACHE2_ACCESS_CONTROL='all'

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.

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.
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='/var/www/cgi-bin'

Error Documents

APACHE2_ERROR_DOCUMENT_N
Hier kann die Anzahl der Fehlerdokumente definiert werden.
APACHE2_ERROR_DOCUMENT_x_ERROR
Ein Webserver liefert bei Fehlern bestimmte Statuscodes. Eine Auflistung aller Codes ist auf dieser Website zu finden:
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.

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_N
Über diese Variable kann gesteuert werden, wie viele User einen geschützten Bereich nutzen dürfen.
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_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_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 oder/und 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 fuer den VHOST den Festplatten Cache zu. Das reduziert die Last des Servers, kann aber gelegentlich mit einigen PHP-Scripte zu Problemen fuehren.
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'.

Einstellungen beim Übersetzen des Paketes

Der httpd wurde mit den folgenden Einstellungen übersetzt:
apache2
-host=i486-pc-linux-gnu
-build=i486-pc-linux-gnu
-target=i486-pc-linux-gnu
-with-apr=/usr/bin/apr-1-config
-with-apr-util=/usr/bin/apu-1-config
-with-ssl
-prefix=/usr/local/apache2
-enable-so
-enable-cgi
-enable-modules=all
-enable-mods-shared=all
-enable-ssl
-with-libmm
-enable-auth-dbm

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. PHP5, 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 des Moduls

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

Unterschiede zwischen der eisfair -1 und eisfair -2 Version

Bei der eisfair -1 Version des Paketes wird der Benutzer wwwrun mit der Gruppe nogroup verwendet.
Bei der eisfair -2 Version des Paketes wird der Benutzer www-data mit der Gruppe www-data verwendet.

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

Yves Schumann 2013-11-21