Der Apache HTTP Server, oft einfach als Apache bezeichnet, ist einer der weltweit meistgenutzten Webserver. Entwickelt und gepflegt von der Apache Software Foundation, ist Apache eine Open-Source-Software, die Webinhalte über das Hypertext Transfer Protocol (HTTP) bereitstellt. Apache ist bekannt für seine Zuverlässigkeit, Flexibilität und Leistungsfähigkeit und wird häufig für das Hosten von Websites und Webanwendungen verwendet.
Die Konfiguration von Apache erfolgt hauptsächlich über die
Konfigurationsdateien, insbesondere die httpd.conf und in
vielen modernen Installationen die apache2.conf. Diese
Dateien enthalten die Einstellungen und Anweisungen, die den Betrieb des
Servers steuern.
ServerRoot: Gibt das Verzeichnis an, in dem die Konfigurationsdateien und die Kernmodule des Servers gespeichert sind.
ServerRoot "/etc/httpd"Listen: Definiert, auf welchen IP-Adressen und Ports der Server Anfragen entgegennehmen soll.
Listen 80LoadModule: Aktiviert Module, die zusätzliche Funktionen bereitstellen.
LoadModule dir_module modules/mod_dir.so
LoadModule mime_module modules/mod_mime.soDocumentRoot: Gibt das Verzeichnis an, aus dem der Server die Dateien für die Webseite bereitstellt.
DocumentRoot "/var/www/html"Directory: Definiert Einstellungen für spezifische Verzeichnisse.
<Directory "/var/www/html">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>ErrorLog und CustomLog: Definiert die Pfade zu den Protokolldateien, in denen Fehler und Zugriffe protokolliert werden.
ErrorLog "/var/log/httpd/error_log"
CustomLog "/var/log/httpd/access_log" commonEine der mächtigsten Funktionen von Apache ist die Unterstützung von Virtual Hosts (virtuelle Hosts). Diese ermöglichen es, mehrere Websites auf einem einzigen Server zu hosten, wobei jede Website ihre eigene Domain oder Subdomain hat. Dies wird häufig verwendet, um verschiedene Websites oder Anwendungen auf demselben physischen Server zu betreiben.
<VirtualHost *:80>
ServerName www.example.com
DocumentRoot "/var/www/example.com/public_html"
ErrorLog "/var/www/example.com/logs/error.log"
CustomLog "/var/www/example.com/logs/access.log" combined
</VirtualHost>
<VirtualHost *:80>
ServerName www.anotherdomain.com
DocumentRoot "/var/www/anotherdomain.com/public_html"
ErrorLog "/var/www/anotherdomain.com/logs/error.log"
CustomLog "/var/www/anotherdomain.com/logs/access.log" combined
</VirtualHost>
In diesem Beispiel werden zwei Websites (www.example.com
und www.anotherdomain.com) auf demselben Server gehostet.
Beide Virtual Hosts verwenden den Standard-HTTP-Port 80, aber sie haben
unterschiedliche DocumentRoots und Protokolldateien.