3.3.1 Strukturierung der Konfigurationsdatei

Wir konnten bisher sehen, dass der Apache Webserver viele Module und Konfigurationseinstellungen besitzt. Schon alleine die Hauptkonfigurationsdatei apache2.conf bietet viele Möglichkeiten, die hier nicht alle behandelt werden sollen.

Damit die apache2.conf in der Struktur lesbarer wird, wurden die Kommentarzeilen entfernt und es wurde eine kleine Umsortierung vorgenommen. Auch wurde anstelle des letzten Eintrags IncludeOptional sites-enabled/*.conf die darin enthaltenen Daten direkt in die apache2.conf kopiert und die Kommentare entfernt.

Wie im letzten Kapitel schon beschrieben, ist im Verzeichnis sites-enabled/ nur ein Link auf eine Datei 000-default.conf im Verzeichnis sites-available/. Somit wurden genau genommen die Daten aus der Datei sites-available/000-default.conf verwendet.

Umstrukturierte apache2.conf und 000-default.conf

#####################################################
# Globale Konfigurationseinstellungen
#####################################################
DefaultRuntimeDir ${APACHE_RUN_DIR}
PidFile ${APACHE_PID_FILE}

Timeout 300
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5

User ${APACHE_RUN_USER}
Group ${APACHE_RUN_GROUP}

HostnameLookups Off
Include ports.conf


#####################################################
# Externe Module und Konfigurationen laden
#####################################################
IncludeOptional mods-enabled/*.load
IncludeOptional mods-enabled/*.conf
IncludeOptional conf-enabled/*.conf

AccessFileName .htaccess
<FilesMatch "^\.ht">
    Require all denied
</FilesMatch>


#####################################################
# Globale Einstellungen für Logdateien
#####################################################
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
LogFormat "%h %l %u %t \"%r\" %>s %O" common


#####################################################
# Globale Einstellungen für Verzeichnisse und Dateien
#####################################################
<Directory />
    Options FollowSymLinks
    AllowOverride None
    Require all denied
</Directory>

<Directory /usr/share>
    AllowOverride None
    Require all granted
</Directory>

<Directory /var/www/>
    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>


#####################################################
# Spezielle Einstellungen für Websites laden
#####################################################
<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log common
</VirtualHost>

Man könnte nun die Konfiguration noch weiter reduzieren und weitere unnötige Module vermeiden. Der Apache Webserver braucht aber zumindest ein MPM-Modul. Somit ist das Modul mpm_prefork auf jeden Fall notwendig.

Bevor Sie Ihre Konfigurationsdateien verändern, sollten Sie auf jeden Fall eine Kopie anlegen!!!

Hinweis

Auf der Website von "a-coding-project.de" werden die Direktiven der Grundkonfiguration gut beschrieben.