Debian’s default Apache2 Installation

Eine detallierte Beschreibung der Apache2 Konfigration unter Debian (Ubuntu) findet sich in der Datei /usr/share/doc/apache2/README.Debian.gz. Sie besteht aus einer Ordnerstruktur im Ordner /etc/apache2/ und ein paar Tools.

Die WEB-Anwendungen eines HTTP-Servers sind in Sites aufgeteilt, die bei Bedarf aktiviert (enabled a2ensite) oder auch deaktiviert (disabled a2dissite) werden können. In gleicher Weise werden auch die Module des Apache Servers aktiviert (a2enmod) oder deaktiviert (a2dismod). Neben Sites und Modulen gibt es noch Konfigurationen, die sich nicht auf eine Site oder ein Modul beziehen müssen. Meist handelt es sich dabei um Konfigurationen die ein Konzept umsetzen, z.B. bestimmte Sicherheitsaspekte, spezielle Logging- oder Statistik- Konzepte. Diese Konfigurationen können ebenfalls aktiviert (a2enconf) oder deaktiviert (a2disconf) werden.

In der Debian Infrastruktur sind für die Ablage dieser Konfigurationen, Module und Sites die folgenden Ordner vorgesehen.

  • conf-available

  • mods-available

  • sites-available

Zu den Ordner gibt es noch die passenden *-enabled Ordner. Wird eine Konfiguration, ein Modul oder eine Site enabled, dann wird in dem zugehörigen *-enabled Ordner ein entsprechender symbolischer Link auf die Konfiguration angegelgt.

Mit den genannten Toos und der unten gezeigten Ordnerstruktur kann man einen Apache-WEB-Server sehr gut managen. Dieser Debian way of (Apache) live unterscheidet sich von einer standard Apache Installation (die nicht diese Tools bereit stellt). In der Debian Installation gibt es deshalb noch einen Wrapper für das apache2 Binary, das ist das Kommando:

  • apache2ctl: Apache HTTP server control interface

Hierbei handelt es sich um einen Wrapper, der sich eignet um den Server zu administrieren, der aber auch als Ersatz für das apache2 Kommando dient. Bei Letzterem zieht der Wrapper einige Informationen aus der Debian Infrastruktur/Konfiguration, setzt die Umgebung entsprechend und ruft dann das Kommando apache2 auf, wobei die Argumente 1:1 durchgereicht werden. Für eine vollständige Beschreibung des Wrappers apache2ctl muss das Manual zum apache2 Kommando konsultiert werdenxs.

Ordnerstruktur der Debian Apache Installation

In der unten stehenden Abbildung der Ordnerstruktur sind die symbolischen Links vom *-enabled Ordner zum *-available Ordner angedeutet ({name}.conf). Beispiel ist der symbolische Link der default-ssl.conf Site sites-enabled/default-ssl.conf -> ../sites-available/default-ssl.conf.

/etc/apache2/
   │
   ├── apache2.conf             # Main Config für serverweite Einstellungen
   │
   ├── conf-available           # zusätzliche verfügbare Konfigurationen
   │   │
   │   ├── security.conf        # Konfiguration zur Absicherung des WEB-Servers
   │   └── {name}.conf
   │
   ├── conf-enabled             # aktivierte zusätzliche Konfiguration
   │   │                        # Links auf die Dateien im Ordner ../conf-available/
   │   ├── security.conf -----> ../conf-available/security.conf
   │   └── {name}.conf -------> ../conf-available/{name}.conf
   │
   ├── envvars                  # Umgebungsvariablen wie 'group' und 'user'
   │                            # des Serverprozess
   ├── magic                    # magic(5) Pattern
   │
   ├── mods-available           # verfügbare Module mit ihren Basiskonfigurationen
   │   │
   │   ├── *.load
   │   └── {name}.conf
   │
   ├── mods-enabled             # Aktivierte Module
   │   │                        # Links auf die Dateien im Ordner ../mods-available/
   │   ├── *.load ------------> ../mods-available/*.load
   │   └── {name}.conf -------> ../mods-available/{name}.conf
   │
   ├── ports.conf               # Ports und IPs auf die der Server *lauscht*
   │
   ├── sites-available          # verfügbare *Sites*
   │   ├── default-ssl.conf
   │   └── {name}.conf
   │
   └── sites-enabled            # aktivierte *Sites*
       │                        # Links auf Dateien im Ordner ../sites-available
       ├── default-ssl.conf --> ../sites-available/default-ssl.conf
       └── {name}.conf -------> ../sites-available/{name}.conf