%
% apache2.tex
% Last Update: $Id$
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Kapitel Apache2 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\chapter{Das Apache2-Paket}
\index{Apache2}


\section{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.

    \jump{phpscript}{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"atzliche Treiber.


\section{Die Voraussetzungen}

    Das Apache2-Paket ben"otigt weitere Pakete, die Aufz"ahlung ist nicht
    abschliessend und die Namen eventuell nicht vollst"andig:\\

    \begin{itemize}
        \item certs
        \item libapr-1
        \item libexpat
        \item ...
    \end{itemize}


\section{Die Installation}

    Das apache2-Paket wird "uber das Setup-Men"u installiert.
    Wird eine "altere Paketversion vorgefunden, so wird deren Konfiguration
    gesichert und das alte Paket deinstalliert bevor die neuen Programmdateien
    installiert werden und die Konfiguration "ubernommen wird.\\

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


\section{Das Men"u im Setup-Programm}

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


    \mbox{}

    \begin{tabular}{llll}
    & 4. &  Service administration \\
    \end{tabular}
\eline
    \begin{tabular}{p{1cm}llll}
    & x. & Apache2 Webserver \\
    \end{tabular}
\eline
    \begin{tabular}{p{2cm}llll}
    & x. & Read Apache Documentation \\
    & x. & Configuration \\
    \end{tabular}
\eline
    \begin{tabular}{p{3cm}llll}
    & 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. \\
    \end{tabular}
\eline
    \begin{tabular}{p{2cm}llll}
    & x. & Server Handling (start, stop) \\
    \end{tabular}
\eline
    \begin{tabular}{p{3cm}llll}
    & x. & Show status \\
    & x. & Restart service \\
    & x. & Stop service \\
    & x. & Start service \\
    \end{tabular}

    \mbox{}


\section{Die "Anderung der Konfiguration}

    Die Konfiguration von Apache2 unter \eisfair erfolgt "uber den Men"upunkt
    \glqq{}Edit configuration\grqq{} im Paketmen"u. Die vorgenommenen
    "Anderungen werden nach Beenden des Editors automatisch "ubernommen.


\section{Die Konfigurationsdatei}

    In der Konfigurationsdatei, die "uber das Men"u zug"anglich ist, sind
    die in den folgenden Unterabschnitten beschriebenen Parameter vorhanden.


\subsection{Die allgemeine Konfiguration}


\begin{description}

\config{START\_APACHE2}
{START\_APACHE2}
{STARTAPACHE2}
{
    "Uber diese Variable kann gesteuert werden, ob der Apache
    gestartet werden soll, oder nicht.

    Standardeinstellung: \texttt{START\_APACHE2='no'}
}


\config{APACHE2\_PORT}
{APACHE2\_PORT}
{APACHE2PORT}
{
    Auf diesem Port l"auft Apache und nimmt Anfragen entgegen.

    Standardeinstellung: \texttt{APACHE2\_PORT='80'}
}


\config{APACHE2\_SERVER\_ADMIN}
{APACHE2\_SERVER\_ADMIN}
{APACHE2SERVERADMIN}
{
    Die E-Mail-Adresse des Serverbetreibers; diese wird auf den Seiten
    eingef"ugt, die vom Server in Fehlerf"allen generiert werden.
}


\config{APACHE2\_SERVER\_NAME}
{APACHE2\_SERVER\_NAME}
{APACHE2SERVERNAME}
{
    Hier wird der Name angegeben unter dem der Apache-Webserver im
    Browser sp"ater 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
}


\config{APACHE2\_SERVER\_SIGNATURE}
{APACHE2\_SERVER\_SIGNATURE}
{APACHE2SERVERSIGNATURE}
{
    Hier"uber kann festgelegt werden, ob Apache in automatisch
    generierte Dokumente wie Index- oder Fehlermeldungsseiten
    eine Fu"szeile einf"ugen soll.

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

    Standardeinstellung: \texttt{APACHE2\_SERVER\_SIGNATURE='On'}
}


\config{APACHE2\_DOCUMENT\_ROOT}
{APACHE2\_DOCUMENT\_ROOT}
{APACHE2DOCUMENTROOT}
{
    Hier wird das Verzeichnis eingestellt, in dem die Website liegt.

    Standardeinstellung: \texttt{APACHE2\_DOCUMENT\_ROOT='/var/www/htdocs'}
}

\end{description}


\subsection{Allgemeine SSL Einstellungen}


\begin{description}

\config{APACHE2\_SSL}
{APACHE2\_SSL}
{APACHE2SSL}
{
    Hier kann eingestellt werden, ob SSL genutzt werden soll, oder
    nicht.

    Standardeinstellung: \texttt{APACHE2\_SSL='no'}
}


\config{APACHE2\_SSL\_PORT}
{APACHE2\_SSL\_PORT}
{APACHE2SSLPORT}
{
    Hier kann der SSL Port, der genutzt werden soll, eingestellt
    werden.

    Standardeinstellung: \texttt{APACHE2\_SSL\_PORT='443'}
}


\config{APACHE2\_MPM}
{APACHE2\_MPM}
{APACHE2MPM}
{
    Hier wird das zu verwendende PHP Modul eingetragen.

    \begin{tabular}{llll}
    & apache2\_php & \pfeil & 'prefork' \\
    & php-fpm      & \pfeil & 'event' oder 'worker' \\
    \end{tabular}

    Standardeinstellung: \texttt{APACHE2\_MPM='prefork'}
}


\config{APACHE2\_SSL\_LOGDIR}
{APACHE2\_SSL\_LOGDIR}
{APACHE2SSLLOGDIR}
{
    Hier kann das Verzeichnis angegeben werden, in das SSL
    Meldungen protokolliert werden sollen.

    Standardeinstellung: \texttt{APACHE2\_SSL\_LOGDIR='/var/www/log/'}
}


\config{APACHE2\_SSL\_OSCP}
{APACHE2\_SSL\_OSCP}
{APACHE2SSLOSCP}
{
    Hier"uber kann das SSL Stapling ein- bzw. ausgeschaltet werden

    Standardeinstellung: \texttt{APACHE2\_SSL\_OSCP='no'}
}

\end{description}


\subsection{Spezielle Einstellungen}


\begin{description}

\config{APACHE2\_DIRECTORY\_INDEX}
{APACHE2\_DIRECTORY\_INDEX}
{APACHE2DIRECTORYINDEX}
{
    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"ugt.

    Standardeinstellung: \texttt{APACHE2\_DIRECTORY\_INDEX='index.html index.htm'}
}


\config{APACHE2\_HOSTNAME\_LOOKUPS}
{APACHE2\_HOSTNAME\_LOOKUPS}
{APACHE2HOSTNAMELOOKUPS}
{
    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"osen 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"onnen beim Auswerten der Logdateien immer noch in
    (evtl. veraltete) DNS-Namen aufgel"ost werden.

    Standardeinstellung: \texttt{APACHE2\_HOSTNAME\_LOOKUPS='no'}
}


\config{APACHE2\_VIEW\_DIRECTORY\_CONTENT}
{APACHE2\_VIEW\_DIRECTORY\_CONTENT}
{APACHE2VIEWDIRECTORYCONTENT}
{
    Wenn in der URL nur ein Verzeichnis angegeben ist und dort keine
    Index-Datei aus \jump{APACHE2DIRECTORYINDEX}{APACHE2\_DIRECTORY\_INDEX}
    liegt, wird bei der Einstellung yes der Verzeichnis Inhalt angezeigt.

    Standardeinstellung: \texttt{APACHE2\_VIEW\_DIRECTORY\_CONTENT='no'}
}


\config{APACHE2\_ACCESS\_CONTROL\_TYPE\_ALL}
{APACHE2\_ACCESS\_CONTROL\_TYPE\_ALL}
{APACHE2ACCESSCONTROLTYPEALL}
{
    Definiert wer auf Apache zugreifen darf. Wenn bei dieser Variablen 'yes'
    gew"ahlt wurde, ist ein Zugriff f"ur alle gestattet. Wenn 'no' gew"ahlt
    wurde, greift 'APACHE2\_ACCESS\_CONTROL\_TYPE\_IP'.

    G"ultige Werte: yes, no

    Standardeinstellung: \texttt{APACHE2\_ACCESS\_CONTROL\_TYPE\_ALL='yes'}
}


\config{APACHE2\_ACCESS\_CONTROL\_TYPE\_IP}
{APACHE2\_ACCESS\_CONTROL\_TYPE\_IP}
{APACHE2ACCESSCONTROLTYPEIP}
{
    Definiert wer auf Apache zugreifen darf. Wenn bei dieser Variablen 'yes'
    gew"ahlt wurde, ist ein Zugriff f"ur alle unter APACHE2\_ACCESS\_CONTROL\_TYPE\_IP
    gelisteten Eintr"age gestattet. Wenn 'no' gew"ahlt wurde, greift
    'APACHE2\_ACCESS\_CONTROL\_TYPE\_HOST'.

    G"ultige Werte: yes, no

    Standardeinstellung: \texttt{APACHE2\_ACCESS\_CONTROL\_TYPE\_IP='no'}
}


\config{APACHE2\_ACCESS\_CONTROL\_IP}
{APACHE2\_ACCESS\_CONTROL\_IP}
{APACHE2ACCESSCONTROLIP}
{
    Hier ist der Zugriff von der IP Adresse erlaubt.
    Es d"urfen mehrere durch ein Leerzeichen getrennt angegeben
    werden.

    Beispiel: 10 192.168.6 192.168.6.1 192.168.6.0/24

    G"ultige Werte: IP Adresse

    Standardeinstellung: \texttt{APACHE2\_ACCESS\_CONTROL\_IP='{}'}
}


\config{APACHE2\_ACCESS\_CONTROL\_TYPE\_HOST}
{APACHE2\_ACCESS\_CONTROL\_TYPE\_HOST}
{APACHE2ACCESSCONTROLTYPEHOST}
{
    Definiert wer auf Apache zugreifen darf. Wenn bei dieser Variablen 'yes'
    gew"ahlt wurde, ist ein Zugriff f"ur alle unter
    APACHE2\_ACCESS\_CONTROL\_TYPE\_HOST
    gelisteten Eintr"age gestattet. Wenn 'no' gew"ahlt wurde, greift
    'APACHE2\_ACCESS\_CONTROL\_TYPE\_LOCAL'.

    G"ultige Werte: yes, no

    Standardeinstellung: \texttt{APACHE2\_ACCESS\_CONTROL\_TYPE\_HOST='no'}
}


\config{APACHE2\_ACCESS\_CONTROL\_HOST}
{APACHE2\_ACCESS\_CONTROL\_HOST}
{APACHE2ACCESSCONTROLHOST}
{
    Hier ist der Zugriff mit Hostname erlaubt.
    Es d"urfen mehrere durch ein Leerzeichen getrennt angegeben
    werden.

    G"ultige Werte: Hostname, Domain

    Standardeinstellung: \texttt{APACHE2\_ACCESS\_CONTROL\_HOST='{}'}
}


\config{APACHE2\_ACCESS\_CONTROL\_TYPE\_LOCAL}
{APACHE2\_ACCESS\_CONTROL\_TYPE\_LOCAL}
{APACHE2ACCESSCONTROLTYPELOCAL}
{
    Definiert wer auf Apache zugreifen darf. Wenn bei dieser Variablen 'yes'
    gew"ahlt wurde, ist nur Zugriff f"ur localhost gestattet. Wenn 'no' gew"ahlt
    wurde, ist kein Zugriff auf den Apache m"oglich.

    G"ultige Werte: yes, no

    Standardeinstellung: \texttt{APACHE2\_ACCESS\_CONTROL\_TYPE\_LOCAL='no'}
}


\config{APACHE2\_ENABLE\_SSI}
{APACHE2\_ENABLE\_SSI}
{APACHE2ENABLESSI}
{
    Legt fest, ob Server Side Includes (SSI) verwendet werden. Server
    Side Includes sind eine M"oglichkeit, Seiten dynamisch
    zusammenzubauen. F"ur weitere Informationen siehe
    \link{http://www.apacheweek.com/features/ssi}{apacheweek}.
}


\config{APACHE2\_ENABLE\_HTTP2}
{APACHE2\_ENABLE\_HTTP2}
{APACHE2ENABLEHTTP2}
{
    Aktivierung des HTTP2 Moduls

    G"ultige Werte: yes, no

    Standardeinstellung: \texttt{APACHE2\_ENABLE\_HTTP2='no'}
}

\end{description}


\subsection{Error- und Access-Logdatei}


\begin{description}

\config{APACHE2\_ERROR\_LOG}
{APACHE2\_ERROR\_LOG}
{APACHE2ERRORLOG}
{
    Alle Fehler, die der Apache dem User liefert oder die sonst
    auftreten k"onnen (z.B. Fehler in Modulen) werden in dieser
    Datei gespeichert.

    Standardeinstellung: \texttt{APACHE2\_ERROR\_LOG='/var/www/log/error\_log'}
}


\config{APACHE2\_ACCESS\_LOG}
{APACHE2\_ACCESS\_LOG}
{APACHE2ACCESSLOG}
{
    Alle Zugriffe werden in diese Datei geloggt.

    Standardeinstellung: \texttt{APACHE2\_ACCESS\_LOG='/var/www/log/access\_log'}
}

\end{description}


\subsection{Script Aliases}


\begin{description}

\config{APACHE2\_SCRIPT\_ALIAS}
{APACHE2\_SCRIPT\_ALIAS}
{APACHE2SCRIPTALIAS}
{
    Name des Skript-Alias.

    Standardeinstellung: \texttt{APACHE2\_SCRIPT\_ALIAS='/cgi-bin'}
}


\config{APACHE2\_SCRIPT\_DIR}
{APACHE2\_SCRIPT\_DIR}
{APACHE2SCRIPTDIR}
{
    Hier wird der reelle-Pfad vom CGI-Verzeichnis angegeben. Alle
    CGI-Skripte m"ussen in dieses Verzeichnis gelegt werden, da
    ansonsten der Quelltext von dem Skript angezeigt wird. Man kann
    auch "uber die Variable APACHE2\_DIR\_n\_CGI CGI-Ausf"uhrung in
    einem anderen Verzeichnis erlauben, aber dies wird aus
    Sicherheitsgr"unden nicht empfohlen.

    Standardeinstellung: \texttt{APACHE2\_SCRIPT\_ALIAS\_DIR='/var/www/cgi-bin'}
}

\end{description}


\subsection{Error Documents}


\begin{description}

\config{APACHE2\_ERROR\_DOCUMENT\_N}
{APACHE2\_ERROR\_DOCUMENT\_N}
{APACHE2ERRORDOCUMENTN}
{
    Hier kann die Anzahl der Fehlerdokumente definiert werden.

    Standardeinstellung: \texttt{APACHE2\_ERROR\_DOCUMENT\_N='0'}
}


\config{APACHE2\_ERROR\_DOCUMENT\_x\_ERROR}
{APACHE2\_ERROR\_DOCUMENT\_x\_ERROR}
{APACHE2ERRORDOCUMENTxERROR}
{
    Ein Webserver liefert bei Fehlern bestimmte Statuscodes. Eine
    Auflistung aller Codes ist auf dieser
    \link{http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html}{ Website} zu finden:\\

    Beispiel: \texttt{APACHE2\_ERROR\_DOCUMENT\_x\_ERROR='404'}
}


\config{APACHE2\_ERROR\_DOCUMENT\_x\_DOCUMENT}
{APACHE2\_ERROR\_DOCUMENT\_x\_DOCUMENT}
{APACHE2ERRORDOCUMENTxDOCUMENT}
{
    Wenn ein Fehler auftritt wird nicht die Fehlerseite vom Apache
    angezeigt sondern die hier angegebene HTML-Seite. Es k"onnen auch
    CGI- oder PHP-Skripte angegeben werden.

    Beispiel: \texttt{APACHE2\_ERROR\_DOCUMENT\_x\_DOCUMENT='/404error.html'}
}

\end{description}


\subsection{Directory Settings und Aliases}


\begin{description}

\config{APACHE2\_DIR\_N}
{APACHE2\_DIR\_N}
{APACHE2DIRN}
{
    Hier kann die Anzahl der Verzeichnisse definiert werden.
}


\config{APACHE2\_DIR\_x\_ACTIVE}
{APACHE2\_DIR\_x\_ACTIVE}
{APACHE2DIRxACTIVE}
{
    Hier"uber kann angegeben werden, ob die aktuellen Einstellungen
    aktiv sind, oder nicht.
}


\config{APACHE2\_DIR\_x\_ALIAS}
{APACHE2\_DIR\_x\_ALIAS}
{APACHE2DIRxALIAS}
{
    Hier kann angegeben werden, ob f"ur die aktuellen
    Verzeichniseinstellungen ein Alias vergeben werden soll.
}


\config{APACHE2\_DIR\_x\_ALIAS\_NAME}
{APACHE2\_DIR\_x\_ALIAS\_NAME}
{APACHE2DIRxALIASNAME}
{
    Soll f"ur die aktuellen Verzeichniseinstellungen ein Alias
    vergeben werden, so muss hier der Aliasname eingetragen werden.
}


\config{APACHE2\_DIR\_x\_PATH}
{APACHE2\_DIR\_x\_PATH}
{APACHE2DIRxPATH}
{
    Hier muss der reelle Pfad angegeben werden f"ur den die u.g.
    Parameter gelten.
}


\config{APACHE2\_DIR\_x\_AUTH\_NAME}
{APACHE2\_DIR\_x\_AUTH\_NAME}
{APACHE2DIRxAUTHNAME}
{
    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.
}


\config{APACHE2\_DIR\_x\_AUTH\_TYPE}
{APACHE2\_DIR\_x\_AUTH\_TYPE}
{APACHE2DIRxAUTHTYPE}
{
    Hier wird die Methode der Authenfizierung gesetzt. \\
    'Basic' sollte nur bei Aktiver SSL Verbindung benutzt werden, da die
    Authentifizierungsdaten im Klartext "ubertragen werden. \\
    'Digest' "ubertr"agt die Authentifizierugsdaten verschl"usselt.

    G"ultige Werte: basic, digest

    Standardeinstellung: \texttt{APACHE2\_DIR\_x\_AUTH\_TYPE='basic}
}


\config{APACHE2\_DIR\_x\_AUTH\_N}
{APACHE2\_DIR\_x\_AUTH\_N}
{APACHE2DIRxAUTHN}
{
    "Uber diese Variable kann gesteuert werden, wie viele User einen
    gesch"utzten Bereich nutzen d"urfen.
}



\config{APACHE2\_DIR\_x\_ACCESS\_CONTROL\_TYPE\_ALL}
{APACHE2\_DIR\_x\_ACCESS\_CONTROL\_TYPE\_ALL}
{APACHE2DIRxACCESSCONTROLTYPEALL}
{
    Definiert wer auf Apache zugreifen darf. Wenn bei dieser Variablen 'yes'
    gew"ahlt wurde, ist ein Zugriff f"ur alle gestattet. Wenn 'no' gew"ahlt
    wurde, greift 'APACHE2\_DIR\_x\_ACCESS\_CONTROL\_TYPE\_IP'.

    G"ultige Werte: yes, no

    Standardeinstellung: \texttt{APACHE2\_DIR\_x\_ACCESS\_CONTROL\_TYPE\_ALL='yes'}
}


\config{APACHE2\_DIR\_x\_ACCESS\_CONTROL\_TYPE\_IP}
{APACHE2\_DIR\_x\_ACCESS\_CONTROL\_TYPE\_IP}
{APACHE2DIRxACCESSCONTROLTYPEIP}
{
    Definiert wer auf Apache zugreifen darf. Wenn bei dieser Variablen 'yes'
    gew"ahlt wurde, ist ein Zugriff f"ur alle unter
    APACHE2\_DIR\_x\_ACCESS\_CONTROL\_TYPE\_IP
    gelisteten Eintr"age gestattet. Wenn 'no' gew"ahlt wurde, greift
    'APACHE2\_DIR\_x\_ACCESS\_CONTROL\_TYPE\_HOST'.

    G"ultige Werte: yes, no

    Standardeinstellung: \texttt{APACHE2\_DIR\_x\_ACCESS\_CONTROL\_TYPE\_IP='no'}
}


\config{APACHE2\_DIR\_x\_ACCESS\_CONTROL\_IP}
{APACHE2\_DIR\_x\_ACCESS\_CONTROL\_IP}
{APACHE2DIRxACCESSCONTROLIP}
{
    Hier ist der Zugriff von der IP Adresse erlaubt.
    Es d"urfen mehrere durch ein Leerzeichen getrennt angegeben
    werden.

    Beispiel: 10 192.168.6 192.168.6.1 192.168.6.0/24

    G"ultige Werte: IP Adresse

    Standardeinstellung: \texttt{APACHE2\_DIR\_x\_ACCESS\_CONTROL\_IP='{}'}
}



\config{APACHE2\_DIR\_x\_ACCESS\_CONTROL\_TYPE\_HOST}
{APACHE2\_DIR\_x\_ACCESS\_CONTROL\_TYPE\_HOST}
{APACHE2DIRxACCESSCONTROLTYPEHOST}
{
    Definiert wer auf Apache zugreifen darf. Wenn bei dieser Variablen 'yes'
    gew"ahlt wurde, ist ein Zugriff f"ur alle unter
    APACHE2\_DIR\_x\_ACCESS\_CONTROL\_TYPE\_HOST
    gelisteten Eintr"age gestattet. Wenn 'no' gew"ahlt wurde, greift
    'APACHE2\_DIR\_x\_ACCESS\_CONTROL\_TYPE\_LOCAL'.

    G"ultige Werte: yes, no

    Standardeinstellung: \texttt{APACHE2\_DIR\_x\_ACCESS\_CONTROL\_TYPE\_HOST='no'}
}


\config{APACHE2\_DIR\_x\_ACCESS\_CONTROL\_HOST}
{APACHE2\_DIR\_x\_ACCESS\_CONTROL\_HOST}
{APACHE2DIRxACCESSCONTROLHOST}
{
    Hier ist der Zugriff mit Hostname erlaubt.
    Es d"urfen mehrere durch ein Leerzeichen getrennt angegeben
    werden.

    G"ultige Werte: Hostname, Domain

    Standardeinstellung: \texttt{APACHE2\_DIR\_x\_ACCESS\_CONTROL\_HOST='{}'}
}


\config{APACHE2\_DIR\_x\_ACCESS\_CONTROL\_TYPE\_LOCAL}
{APACHE2\_DIR\_x\_ACCESS\_CONTROL\_TYPE\_LOCAL}
{APACHE2DIRxACCESSCONTROLTYPELOCAL}
{
    Definiert wer auf Apache zugreifen darf. Wenn bei dieser Variablen 'yes'
    gew"ahlt wurde, ist nur Zugriff f"ur localhost gestattet. Wenn 'no' gew"ahlt
    wurde, ist kein Zugriff auf den Apache m"oglich.

    G"ultige Werte: yes, no

    Standardeinstellung: \texttt{APACHE2\_DIR\_x\_ACCESS\_CONTROL\_TYPE\_LOCAL='no'}
}


\config{APACHE2\_DIR\_x\_AUTH\_x\_USER}
{APACHE2\_DIR\_x\_AUTH\_x\_USER}{
APACHE2DIRxAUTHxUSER}
{
    Hier kann der User angegeben werden, der sich in den gesch"utzten Bereich
    einloggen kann. Die Passwort und Benutzername Abfrage geschieht "uber den
    Browser.
}


\config{APACHE2\_DIR\_x\_AUTH\_x\_PASS}
{APACHE2\_DIR\_x\_AUTH\_x\_PASS}
{APACHE2DIRxAUTHxPASS}
{
    Das Passwort f"ur 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"ateren Versionen vom Apache-Paket wird sich dies
    aber noch "andern.
}


\config{APACHE2\_DIR\_x\_CGI}
{APACHE2\_DIR\_x\_CGI}
{APACHE2DIRxCGI}
{
    Entweder darf hier 'no' angegeben werden oder '.pl', '.cgi' o."a.
    Aber \textbf{nicht} 'yes'!
    Steht diese Variable nicht auf 'no', dann k"onnen CGI-Skripte mit den
    Endungen, die in der Variable stehen ausgef"uhrt werde. Wenn ein CGI-Skript
    aufgerufen wird, dessen Endung nicht in APACHE2\_DIR\_x\_CGI steht, wird der
    Quelltext angezeigt.
}


\config{APACHE2\_DIR\_x\_SSI}
{APACHE2\_DIR\_x\_SSI}
{APACHE2DIRxSSI}
{
    Hier darf 'yes' oder 'no' eingetragen werden. Wenn 'yes' eingetragen ist,
    dann k"onnen SSI-Skripte mit der Endung .shtml ausgef"uhrt werden. Aber nur
    in dem in APACHE2\_DIR\_x\_PATH angegebenen Pfad.
}


\config{APACHE2\_DIR\_x\_VIEW\_DIR\_CONTENT}
{APACHE2\_DIR\_x\_VIEW\_DIR\_CONTENT}
{APACHE2DIRxVIEWDIRCONTENT}
{
    Diese Variable ist in
    \jump{APACHE2VIEWDIRECTORYCONTENT}{APACHE2\_VIEW\_DIRECTORY\_CONTENT}
    erkl"art. Bezieht sich aber nur auf den in APACHE2\_DIR\_x\_PATH
    angegebenem Pfad.
}


\config{APACHE2\_DIR\_x\_WEBDAV}
{APACHE2\_DIR\_x\_WEBDAV}
{APACHE2DIRxWEBDAV}
{
    Schaltet WebDAV ein oder aus. WebDAV ist eine Dateifreigabe "uber HTTP und
    wird z.B. f"ur gemeinsam genutzte Terminkalender genutzt (z.B. Mozilla
    Sunbird)
}

\end{description}


\subsection{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}.

    \texttt{
        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'\\
    }


\begin{description}

\config{APACHE2\_VHOST\_N}
{APACHE2\_VHOST\_N}
{APACHE2VHOSTN}
{
    Hier kann die Anzahl der virtuellen Hosts definiert werden.
}


\config{APACHE2\_VHOST\_x\_ACTIVE}
{APACHE2\_VHOST\_x\_ACTIVE}
{APACHE2VHOSTxACTIVE}
{
   	Hier wird angeben, ob der betreffende VirtualHost aktiv sein soll.
}


\config{APACHE2\_VHOST\_x\_IP}
{APACHE2\_VHOST\_x\_IP}
{APACHE2VHOSTxIP}
{
    Wenn diese Variable auf * gesetzt ist (Standardeinstellung),
    kann dieser Virtual Host "uber jede IP-Adresse erreicht werden,
    die an die NICs gebunden sind. Gibt man hier eine IP-Adresse
    ein, ist der Virtual Host nur "uber die eingegeben IP-Adresse
    erreichbar. Dies nennt man dann IP-Based Virtual Hosts.
}


\config{APACHE2\_VHOST\_x\_PORT}
{APACHE2\_VHOST\_x\_PORT}
{APACHE2VHOSTxPORT}
{
    Hier kann angegeben werden, welcher Port f"ur diesen VirtualHost
    genutzt werden soll.
}


\config{APACHE2\_VHOST\_x\_SERVER\_NAME}
{APACHE2\_VHOST\_x\_SERVER\_NAME}
{APACHE2VHOSTxSERVERNAME}
{
    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'
}


\config{APACHE2\_VHOST\_x\_SERVER\_ALIAS}
{APACHE2\_VHOST\_x\_SERVER\_ALIAS}
{APACHE2VHOSTxSERVERALIAS}
{
    Hier k"onnen zus"atzliche Hostnamen angegeben werden.

    Beispiel:\\
    APACHE2\_VHOST\_x\_SERVER\_ALIAS='www.meinedomain.de *.eis.meinedomain.de'
}


\config{APACHE2\_VHOST\_x\_SERVER\_ADMIN}
{APACHE2\_VHOST\_x\_SERVER\_ADMIN}
{APACHE2VHOSTxSERVERADMIN}
{
    Die E-Mail-Adresse des Serverbetreibers; diese wird auf den
    Seiten eingef"ugt, die vom Server in Fehlerf"allen generiert
    werden.

    Beispiel:\\
    APACHE2\_VHOST\_x\_SERVER\_ADMIN='wwwadmin@meinedomain.de'
}


\config{APACHE2\_VHOST\_x\_DOCUMENT\_ROOT}
{APACHE2\_VHOST\_x\_DOCUMENT\_ROOT}
{APACHE2VHOSTxDOCUMENTROOT}
{
    In dem hier angegeben Verzeichnis liegen die HTML-Dateien die
    dieser Virtual Host zur Verf"ugung stehen soll.

    Beispiel:\\
    APACHE2\_VHOST\_x\_DOCUMENT\_ROOT='/var/www/meinedomain.de/htdocs/'
}


\config{APACHE2\_VHOST\_x\_SCRIPT\_ALIAS}
{APACHE2\_VHOST\_x\_SCRIPT\_ALIAS}
{APACHE2VHOSTxSCRIPTALIAS}
{
}


\config{APACHE2\_VHOST\_x\_SCRIPT\_DIR}
{APACHE2\_VHOST\_x\_SCRIPT\_DIR}
{APACHE2VHOSTxSCRIPTDIR}
{
	Hier muss das reelle Verzeichnis angegeben werden, in dem die
	CGI-Skripte f"ur diesen VirtualHost liegen

    Beispiel:\\
    APACHE2\_VHOST\_x\_SCRIPT\_DIR='/var/www/meinedomain.de/cgi-bin/'
}


\config{APACHE2\_VHOST\_x\_ERROR\_LOG}
{APACHE2\_VHOST\_x\_ERROR\_LOG}
{APACHE2VHOSTxERRORLOG}
{
    In die hier angegebene Datei werden die Fehler, welche f"ur
    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'
}


\config{APACHE2\_VHOST\_x\_ACCESS\_LOG}
{APACHE2\_VHOST\_x\_ACCESS\_LOG}
{APACHE2VHOSTxACCESS}
{
    In die hier angegebene Datei werden die erfolgten Zugriffe
    geschrieben.

    Beispiel:\\
    APACHE2\_VHOST\_x\_ACCESS\_LOG='/var/www/meinedomain.de/log/access\_log'
}


\config{APACHE2\_VHOST\_x\_ACCESS\_CONTROL}
{APACHE2\_VHOST\_x\_ACCESS\_CONTROL}
{APACHE2VHOSTxACCESSCONTROL}
{
    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 \jump{APACHE2ACCESSCONTROL}{APACHE2\_ACCESS\_CONTROL}
}


\config{APACHE2\_VHOST\_x\_DIR\_N}
{APACHE2\_VHOST\_x\_DIR\_N}
{APACHE2VHOSTxDIRN}
{
    Anzahl der Directories.
}


\config{APACHE2\_VHOST\_x\_DIR\_x\_ACTIVE}
{APACHE2\_VHOST\_x\_DIR\_x\_ACTIVE}
{APACHE2VHOSTxDIRxACTIVE}
{
    Gibt an, ob die aktuellen Einstellungen aktiv sind, oder nicht.
}


\config{APACHE2\_VHOST\_x\_DIR\_x\_ALIAS}
{APACHE2\_VHOST\_x\_DIR\_x\_ALIAS}
{APACHE2VHOSTxDIRxALIAS}
{
    Hier kann angegeben werden, ob f"ur die aktuellen
    Verzeichniseinstellungen ein Alias vergeben werden soll.
}


\config{APACHE2\_VHOST\_x\_DIR\_x\_ALIAS\_NAME}
{APACHE2\_VHOST\_x\_DIR\_x\_ALIAS\_NAME}
{APACHE2VHOSTxDIRxALIASNAME}
{
    Soll f"ur die aktuellen Verzeichniseinstellungen ein Alias
    vergeben werden, so muss hier der Aliasname eingetragen werden.
}


\config{APACHE2\_VHOST\_x\_DIR\_x\_PATH}
{APACHE2\_VHOST\_x\_DIR\_x\_PATH}
{APACHE2VHOSTxDIRxPATH}
{
    Hier muss der reelle Pfad angegeben werden f"ur den die u.g.
    Parameter gelten.
}


\config{APACHE2\_VHOST\_x\_DIR\_x\_AUTH\_NAME}
{APACHE2\_VHOST\_x\_DIR\_x\_AUTH\_NAME}
{APACHE2VHOSTxDIRxAUTHNAME}
{
    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.
}


\config{APACHE2\_VHOST\_x\_DIR\_x\_AUTH\_N}
{APACHE2\_VHOST\_x\_DIR\_x\_AUTH\_N}
{APACHE2VHOSTxDIRxAUTHN}
{
    "Uber diese Variable kann gesteuert werden, wie viele User einen
    gesch"utzten Bereich nutzen d"urfen.
}


\config{APACHE2\_VHOST\_x\_DIR\_x\_AUTH\_x\_USER}
{APACHE2\_DIR\_x\_AUTH\_x\_USER}
{APACHE2VHOSTxDIRxAUTHxUSER}
{
    Hier kann der User angegeben werden, der sich in den gesch"utzten Bereich
    einloggen kann. Die Passwort und Benutzername Abfrage geschieht "uber den
    Browser.
}


\config{APACHE2\_VHOST\_x\_DIR\_x\_AUTH\_x\_PASS}
{APACHE2\_VHOST\_x\_DIR\_x\_AUTH\_x\_PASS}
{APACHE2VHOSTxDIRxAUTHxPASS}
{
    Das Passwort f"ur 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"ateren Versionen vom
    Apache-Paket wird sich dies aber noch "andern.
}


\config{APACHE2\_VHOST\_x\_DIR\_x\_ACCESS\_CONTROL}
{APACHE2\_VHOST\_x\_DIR\_x\_ACCESS\_CONTROL}
{APACHE2VHOSTxDIRxACCESSCONTROL}
{
    Der Syntax dieser Variable wird bei
    \jump{APACHE2ACCESSCONTROL}{APACHE2\_ACCESS\_CONTROL} erkl"art.
    Die hier angegebene Zugriffserlaubnis bezieht sich dann nur auf
    die aktuellen Verzeichniseinstellungen.
}


\config{APACHE2\_VHOST\_x\_DIR\_x\_CGI}
{APACHE2\_VHOST\_x\_DIR\_x\_CGI}
{APACHE2VHOSTxDIRxCGI}
{
    Entweder darf hier 'no' angegeben werden oder '.pl', '.cgi' o."a.
    Aber \textbf{nicht} 'yes'!
    Steht diese Variable nicht auf 'no', dann k"onnen CGI-Skripte mit den
    Endungen, die in der Variable stehen ausgef"uhrt werde. Wenn ein CGI-Skript
    aufgerufen wird, dessen Endung nicht in APACHE2\_DIR\_x\_CGI steht, wird der
    Quelltext angezeigt.
}


\config{APACHE2\_VHOST\_x\_DIR\_x\_SSI}
{APACHE2\_VHOST\_x\_DIR\_x\_SSI}
{APACHE2VHOSTxDIRxSSI}
{
    Hier darf 'yes' oder 'no' eingetragen werden. Wenn 'yes' eingetragen ist,
    dann k"onnen SSI-Skripte mit der Endung .shtml ausgef"uhrt werden. Aber nur
    in dem in APACHE2\_DIR\_x\_PATH angegebenen Pfad.
}


\config{APACHE2\_VHOST\_x\_DIR\_x\_VIEW\_DIR\_CONTENT}
{APACHE2\_VHOST\_x\_DIR\_x\_VIEW\_DIR\_CONTENT}
{APACHE2VHOSTxDIRxVIEWDIRCONTENT}
{
    Diese Variable ist in
    \jump{APACHE2VIEWDIRECTORYCONTENT}{APACHE2\_VIEW\_DIRECTORY\_CONTENT} erkl"art.
    Bezieht sich aber nur auf den in APACHE2\_DIR\_x\_PATH angegebenem Pfad.
}


\config{APACHE2\_VHOST\_x\_DIR\_x\_WEBDAV}
{APACHE2\_VHOST\_x\_DIR\_x\_WEBDAV
}{APACHE2VHOSTxDIRxWEBDAV}
{
    Schaltet WebDAV ein oder aus. WebDAV ist eine Dateifreigabe "uber HTTP und
    wird z.B. f"ur gemeinsam genutzte Terminkalender genutzt (z.B. Mozilla
    Sunbird)
}


\config{APACHE2\_VHOST\_x\_MOD\_CACHE}
{APACHE2\_VHOST\_x\_MOD\_CACHE}
{APACHE2VHOSTxMODCACHE}
{
    Schaltet f"ur den VHOST den Festplatten Cache zu.
    Das reduziert die Last des Servers, kann aber gelegentlich mit
    einigen PHP-Scripte zu Problemen f"uhren.
}


\config{APACHE2\_VHOST\_x\_SSL}
{APACHE2\_VHOST\_x\_SSL}
{APACHE2VHOSTxSSL}
{
    Hier kann eingestellt werden, ob SSL genutzt werden soll, oder nicht.

    Standardeinstellung: \texttt{APACHE2\_VHOST\_x\_SSL='no'}
}


\config{APACHE2\_VHOST\_x\_SSL\_PORT}
{APACHE2\_VHOST\_x\_SSL\_PORT}
{APACHE2VHOSTxSSLPORT}
{
    Hier kann der SSL Port, der genutzt werden soll, eingestellt werden.

    Standardeinstellung: \texttt{APACHE2\_VHOST\_x\_SSL\_PORT='443'}
}


\config{APACHE2\_VHOST\_x\_SSL\_FORCE}
{APACHE2\_VHOST\_x\_SSL\_FORCE}
{APACHE2VHOSTxSSLFORCE}
{
    Hier"uber kann eingestellt werden, ob der SSL Modus erzwungen
    werden soll.
}


\config{APACHE2\_VHOST\_x\_SSL\_CERT\_NAME}
{APACHE2\_VHOST\_SSL\_CERT\_NAME}
{APACHE2VHOSTxSSLCERTNAME}
{
    "Uber diese Variable kann der Name des SSL-Zertifikates
    definiert werden.
}

\end{description}


\subsection{Logfile Handling}


\begin{description}

\config{APACHE2\_LOG\_LEVEL}
{APACHE2\_LOG\_LEVEL}
{APACHE2LOGLEVEL}
{
    "Uber diese Variable kann gesteuert werden, wie viel der Apache
    protokollieren soll.

    G"ultige Werte:
    \emph{''debug'', ''info'', ''notice'', ''warn'', ''errer'', ''crit'', ''alert'', ''emerg''}

    Standardeinstellung: \texttt{APACHE2\_LOG\_LEVEL='warn'}
}


\config{APACHE2\_LOG\_COUNT}
{APACHE2\_LOG\_COUNT}
{APACHE2LOGCOUNT}
{
    "Uber diese Variable kann gesteuert werden, wie viele Logdateien
    gespeichert werden sollen, bevor logrotate alte Logdateien
    "uberschreibt.

    G"ultige Werte: \emph{Nummerischer Wert}

    Standardeinstellung: \texttt{APACHE2\_LOG\_COUNT='10'}
}


\config{APACHE2\_LOG\_INTERVAL}
{APACHE2\_LOG\_INTERVAL}
{APACHE2LOGINTERVAL}
{
    "Uber diese Variable kann gesteuert werden, wann logrotate Archive
    der aktuellen Logdateien erstellt.

    G"ultige Werte: \emph{''daily'', ''weekly'', ''monthly''}

    Standardeinstellung: \texttt{APACHE2\_LOG\_INTERVAL='weekly'}
}

\end{description}


\subsection{Performance Einstellungen}


\begin{description}

\config{APACHE2\_MAX\_KEEP\_ALIVE\_TIMEOUT}
{APACHE2\_MAX\_KEEP\_ALIVE\_TIMEOUT}
{APACHE2MAXKEEPALIVETIMEOUT}
{
    "Uber 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"ultige Werte: \emph{Nummerischer Wert}

    Standardeinstellung: \texttt{APACHE2\_MAX\_KEEP\_ALIVE\_TIMEOUT='15'}
}


\config{APACHE2\_MAX\_KEEP\_ALIVE\_REQUESTS}
{APACHE2\_MAX\_KEEP\_ALIVE\_REQUESTS}
{APACHE2MAXKEEPALIVEREQUESTS}
{
    "Uber diese Variable kann gesteuert werden, wie viele
    aufeinander folgende HTTP-Anfragen "uber ein und dieselbe
    persistente HTTP/1.1-Verbindung abgehandelt werden.

    G"ultige Werte: \emph{Nummerischer Wert}

    Standardeinstellung: \texttt{APACHE2\_MAX\_KEEP\_ALIVE\_REQUESTS='100'}
}


\config{APACHE2\_MAX\_CLIENTS}
{APACHE2\_MAX\_CLIENTS}
{APACHE2MAXCLIENTS}
{
    "Uber 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"ultige Werte: \emph{Nummerischer Wert}

    Standardeinstellung: \texttt{APACHE2\_MAX\_CLIENTS='256'}
}


\config{APACHE2\_MAX\_REQUESTS\_PER\_CHILD}
{APACHE2\_MAX\_REQUESTS\_PER\_CHILD}
{APACHE2MAXREQUESTSPERCHILD}
{
    "Uber diese Variable kann gesteuert werden, nach wie vielen
    Anfragen ein worker thread beendet wird.

    G"ultige Werte: \emph{Nummerischer Wert}

    Standardeinstellung: \texttt{APACHE2\_MAX\_REQUESTS\_PER\_CHILD='10000'}
}

\end{description}


\subsection{Cache Einstellungen}


\begin{description}

\config{APACHE2\_MOD\_CACHE}
{APACHE2\_MOD\_CACHE}
{APACHE2MODCACHE}
{
    Schaltet f"ur das APACHE2\_DOCUMENT\_ROOT Verzeichnis den
    Festplatten Cache zu. (Nicht f"ur die Vhosts!)
    Das reduziert die Last des Servers, kann aber gelegentlich
    mit einigen PHP-Scripte zu Problemen f"uhren.

    Standardeinstellung: \texttt{APACHE2\_MOD\_CACHE='no'}
}

\end{description}


\subsection{Manuelle Konfigurationserg"anzungen}

    F"ur Erg"anzungen an der httpd.conf gibt es den Men"u-Punkt
    'Append commands to the httpd.conf'.


\section{Eigene Erweiterungen des Paketes}

    Es ist m"oglich, dass apache2 Paket mit eigenen Module zu erweitern. Hierbei
    gibt es grunds"atzlich zwei unterschiedliche Arten von Erweiterungen. Die
    eine M"oglichkeit ist die Erweiterung des httpd um Module (z.B. PHP,
    mod\_jk). Bei der zweiten M"oglichkeit handelt es sich um alle M"oglichkeiten,
    die sich nicht auf httpd Module beziehen.

    Im folgenden wird kurz beschrieben, wie Erweiterungspakete aufgebaut sein
    m"ussen bzw. was zu beachten ist um ein lauff"ahiges Erweiterungspaket zu
    erstellen.


    \subsection{Erweiterung per httpd-Module}

    F"ur die Erstellung eines Modul Erweiterungspaketes sind im allgemeinen die
    folgenden Schritte notwendig:
    \begin{itemize}
        \item "Ubersetzen des Moduls
        \item Installieren des Moduls
        \item Erstellen der Dateien zum Integrieren/Konfigurieren des Moduls
        \item Implementierung der Funktion check\_httpd
        \item Erstellen der Men"ueintr"age
    \end{itemize}


\subsubsection{"Ubersetzen des Moduls}

    Die f"ur die "Ubersetzung von eigenen Modulen ben"otigten HEADER-Dateien
    k"onnen  mit Hilfe des apache2-dev Paketes installiert werden.


\subsubsection{Installieren des Moduls}

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


\subsubsection{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"ur alle vorhandenen *.load Dateien ein
    symbolischer Link unter /etc/apache2/mods-enabled angelegt. S"amtliche
    *.load und die zugeh"origen Konfigurationsdateien unter
    /etc/apache2/mods-enabled werden beim Start des httpd eingelesen.

    Beispiel <module>.conf:
    \begin{verbatim}
    LoadModule php5_module /usr/local/apache2/modules/libphp5.so
    \end{verbatim}

    Beispiel <module>.conf:
    \begin{verbatim}
    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
    \end{verbatim}


\subsubsection{Implementierung der Funktion check\_httpd}

    Da es zur Zeit unterschiedliche Versionen des apache2 Paketes gibt, die
    nicht zu einander bin"arkompatibel sind (Version 1.2.x enth"alt httpd-2.0.x;
    Version 1.3.x enth"alt httpd-2.2.x) muss jedes Modul Erweiterungspaket
    selbst die Informationen liefern k"onnen, 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"uckliefern, wenn das Erweiterungspaket zu dem
    installierten apache2 Paket passt. Andernfalls muss diese Funktion 1
    zur"uckliefern.\\

    Beispiel f"ur eine Implementierung dieser Funktion:\\
    \begin{verbatim}
    #------------------------------------------------------------------
    # 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
    }
    \end{verbatim}


\subsubsection{Erstellen der Men"ueintr"age}

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


\subsubsection{Sonstiges}

    Um zus"atzliche Eintr"age 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"onnen, 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"amtliche Dateien, die obigem Namensschema entsprechen ausgef"uhrt und die
    Ausgabe dieser Dateien wird in die Konfigurationsdatei httpd.conf
    "ubernommen.\\
    Es ist aber vorzuziehen, dass die Modulkonfiguration "uber die *.conf
    Dateien vorgenommen wird, die unter /etc/apache2/mods-available liegen.


\subsection{Andere Erweiterungen}

    F"ur die Erstellung eines solchen Erweiterungspaketes sind im allgemeinen die
    folgenden Schritte notwendig:
    \begin{itemize}
        \item Installieren der Erweiterungen
        \item Implementierung der Funktion check\_httpd
        \item Erstellen der Men"ueintr"age
    \end{itemize}


\subsubsection{Installieren des Moduls}

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


\subsubsection{Implementierung der Funktion check\_httpd}

    Da es zur Zeit unterschiedliche Versionen des apache2 Paketes gibt, die
    nicht zu einander bin"arkompatibel sind (Version 1.2.x enth"alt httpd-2.0.x;
    Version 1.3.x enth"alt httpd-2.2.x) muss jedes Modul Erweiterungspaket
    selbst die Informationen liefern k"onnen, 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"uckliefern, wenn das Erweiterungspaket zu dem
    installierten apache2 Paket passt. Andernfalls muss diese Funktion 1
    zur"uckliefern.\\
    Auch wenn ein Erweiterungspaket keine Module mitbringt, die von der
    verwendeten httpd Version abh"angen, muss die Funktion innerhalb des
    Erweiterungspaketes implementiert werden. Es reicht dann jedoch leere
    Implementierung.\\

    Beispiel f"ur eine Implementierung dieser Funktion:
    \begin{verbatim}
    #------------------------------------------------------------------
    # check httpd version
    #------------------------------------------------------------------
    check_httpd ()
    {
        retval 0
    }
    \end{verbatim}


\subsubsection{Erstellen der Men"ueintr"age}

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


\subsubsection{Sonstiges}

    Um zus"atzliche Eintr"age 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"onnen, 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"amtliche Dateien, die obigem Namensschema entsprechen ausgef"uhrt und die
    Ausgabe dieser Dateien wird in die Konfigurationsdatei httpd.conf
    "ubernommen.\\
    Es ist aber vorzuziehen, dass die Modulkonfiguration "uber die *.conf
    Dateien vorgenommen wird, die unter /etc/apache2/mods-available liegen.


\section{Verschiedenes}


\subsection{SSL}

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

    Um SSL einsetzten zu k"onnen, m"ussen zwei Zertifikat erstellt werden. Dies
    geschieht mit der Hilfe des Pakets \glqq{}certs\grqq{} von J"urgen 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
    \glqq{}Passphrase\grqq{} einzugeben. Diese Eingabe sollten Sie sich
    unbedingt merken, da sie zu einem sp"ateren Zeitpunkt noch einmal gebraucht
    wird.

    Es folgen weitere Eingaben, wie z.B. die "Ortlichkeit oder Ihre E-Mail-Adresse
    f"ur R"uckfragen (Diese Angaben k"onnen vom Client, der auf Ihrer Website surft
    abgerufen werden)

    WICHTIG: Wenn Sie nach \glqq{}Common Name\grqq{} gefragt werden, m"ussen
    Sie den Namen Ihres Servers eingeben! (z.B. \glqq{}www.karl-egon.eisfair.net\glqq{})
    Ansonsten wird das Zertifikat vom Browser des Clients als Nicht-Vertrauensw"urdig
    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"ur den VirtualHost g"ultig, bei dem der \glqq{}Common Name\grqq{},
    den Sie bei der Erstellung des Zertifikates eingegeben haben,
    gleich dem Servernamen ist.


\subsection{Nimda \& CodeRed}

    Der Nimda-Wurm versucht eine Sicherheitsl"ucke 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"age in der Logdatei. Mehrere Eintr"age pro Minute k"onnen d
    urchaus m"oglich 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/..{\textbackslash}xc1{\textbackslash}x1c../..{\textbackslash}xc1{\textbackslash}x1c../..{\textbackslash}xc1{\textbackslash}x1c../winnt/system32/cmd.exe?/c+dir\\
    GET /scripts/..{\textbackslash}xc1{\textbackslash}x1c../winnt/system32/cmd.exe?/c+dir\\
    GET /scripts/..{\textbackslash}xc0/../winnt/system32/cmd.exe?/c+dir\\
    GET /scripts/..{\textbackslash}xc0{\textbackslash}xaf../winnt/system32/cmd.exe?/c+dir\\
    GET /scripts/..{\textbackslash}xc1{\textbackslash}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"urdige Eintr"age k"onnen durch CodeRed entstehen, ein "ahnlicher Wurm.
    Wenn dies der Fall sein sollte, einfach einen Teil der Logeintr"age bei Google
    eingeben, meist wird dort dann der verursachende Wurm gefunden.
