Was ist Apache und wie funktioniert es?
Autor: Redaktion Domeny.ForSale Veröffentlicht
Kurz erklärt: Apache HTTP Server ist eine kostenlose Webserver-Software, die Anfragen von Browsern entgegennimmt und Seiteninhalte, Dateien oder Antworten von Anwendungen zurücksendet. Sie kann einfache HTML-Seiten bereitstellen, Websites mit WordPress im Zusammenspiel mit PHP betreiben und Anfragen an andere Anwendungen weiterleiten. Apache ist weder eine Domain noch Hosting, sondern eines der Programme, die auf einem Hosting-Server laufen können.
Wozu dient Apache und wie funktioniert es?
Ein Webserver ist ein Programm, das die Kommunikation über HTTP oder HTTPS abwickelt. Diese Protokolle werden zur Übertragung von Webseiten verwendet. Das Wort „Server“ kann auch einen Computer bezeichnen, doch Apache ist Software und kein Gerät. Das Projekt Apache HTTP Server wird im Rahmen der Apache Software Foundation entwickelt und hat einen offenen Quellcode.
Wenn du eine Webadresse im Browser eingibst, hilft das DNS-System dabei, die Serveradresse für die jeweilige Domain zu ermitteln. Anschließend verbindet sich der Browser mit dem Server und sendet eine Anfrage, etwa zum Abrufen der Startseite. Apache erkennt die Website und den angeforderten Pfad, wendet die Konfigurationsregeln an und liefert dann eine Antwort zurück.
Wie diese Antwort entsteht, hängt von der angeforderten Ressource ab:
- Eine statische Datei, etwa ein Bild oder ein HTML-Dokument, kann Apache von der Festplatte lesen und direkt übertragen.
- Eine dynamische Seite, etwa ein Beitrag in WordPressie, erfordert die Ausführung von Anwendungscode. Apache arbeitet dabei mit einer Komponente zusammen, die PHP ausführt. Das fertige Ergebnis wird an den Browser gesendet.
- Eine Anfrage an eine separate Anwendung kann weitergeleitet werden. Apache fungiert dann als Reverse Proxy, also als Vermittler zwischen dem Besucher und einem anderen Anwendungsserver.
Apache liefert auch HTTP-Statuscodes zurück, beispielsweise 404, wenn eine Ressource nicht gefunden wurde. Der Fehlercode allein sagt jedoch noch nichts über die Ursache aus: Die Antwort kann auch von einer Anwendung stammen, die hinter Apache läuft.
Apache, Domain, Hosting und PHP – unterschiedliche Aufgaben
Eine Domain ist der Name, der in der Adresse einer Website verwendet wird. Hosting stellt die Ressourcen bereit, die für deren Betrieb benötigt werden. Apache verarbeitet den Webverkehr auf diesen Ressourcen. PHP ist eine Programmiersprache samt Laufzeitumgebung zur Ausführung des Codes. Eine Datenbank wiederum speichert die Informationen, die die Anwendung verwendet.
Ein Shop auf Basis von WordPressie kann beispielsweise die Domain shop.example, ein Hosting-Konto, Apache, PHP und eine MariaDB-Datenbank nutzen. Der Browser fordert eine Produktseite an, Apache leitet die Anfrage zur Verarbeitung durch PHP weiter, und WordPress ruft die Produktdaten aus der Datenbank ab. Beim Client kommt das erzeugte HTML an, nicht der PHP-Code oder der direkte Inhalt der Datenbank.
Diese Bestandteile sind nicht untrennbar miteinander verbunden. WordPress kann auch mit einem anderen Webserver laufen, und Apache kann eine einfache HTML-Seite ohne PHP und Datenbank bereitstellen. Die Angabe „Das Hosting unterstützt Apache“ beschreibt deshalb noch nicht die gesamte Umgebung, die eine bestimmte Website benötigt.
Die wichtigsten Funktionen von Apache
Apache kann dank der VirtualHost-Konfiguration mehrere Websites auf einem Rechner betreiben. Diese legt die Einstellungen für eine bestimmte Website fest, darunter ihren Domainnamen, das Verzeichnis mit den Dateien und den Speicherort der Protokolle. Die Registrierung einer Domain allein erstellt diese Konfiguration nicht. Beim Hosting übernimmt das normalerweise das Verwaltungspanel, nachdem die Domain hinzugefügt wurde.
Module erweitern die Funktionen des Servers. Beispielsweise ermöglicht mod_rewrite das Umschreiben von Adressen und die Weiterleitung von Anfragen nach bestimmten Regeln. mod_ssl unterstützt TLS, also die Verschlüsselung, die HTTPS verwendet. Um HTTPS einzurichten, sind außerdem eine korrekte Konfiguration und ein Zertifikat für die Domain erforderlich.
Apache schreibt Protokolle, auch Logs genannt. Das Zugriffsprotokoll erfasst bearbeitete Anfragen, während das Fehlerprotokoll bei der Suche nach Problemen mit der Konfiguration und dem Serverbetrieb hilft. Wenn eine Website ausfällt, sind die Logs meist hilfreicher als die Meldung im Browser allein.
Was ist die Datei .htaccess und wann nutzt man sie?
.htaccess ist eine Datei, mit der sich ein Teil der Apache-Einstellungen für ein bestimmtes Verzeichnis und dessen Unterverzeichnisse ändern lässt. Das funktioniert nur in dem Umfang, den der Serveradministrator zulässt. Beim Shared Hosting lassen sich damit mitunter Weiterleitungen, Regeln für Adressen oder Zugriffsbeschränkungen festlegen, ohne die Hauptkonfiguration zu bearbeiten.
Ein Beispiel sind die Regeln von WordPressa, die Anfragen für lesbare Beitragsadressen an die Datei weiterleiten, über die die Anwendung ausgeführt wird. Werden diese Regeln gelöscht oder fehlerhaft geändert, kann die Startseite weiterhin funktionieren, während Unterseiten 404-Fehler zurückgeben.
Erstelle vor der Bearbeitung von .htaccess eine Sicherungskopie, nimm Änderungen einzeln vor und prüfe mehrere Adressen der Website. Eine unzulässige Direktive oder ein Syntaxfehler kann eine Antwort mit dem Statuscode 500 auslösen, der einen internen Serverfehler bezeichnet. Wenn du den gesamten Server verwaltest, solltest du die Einstellungen in der Regel besser in der Hauptkonfiguration hinterlegen. Das erleichtert die Kontrolle und macht das zusätzliche Einlesen von .htaccess-Dateien überflüssig.
Brauchst du Apache für deine Website?
Bei Shared Hosting oder Managed Hosting installierst du Apache normalerweise nicht selbst. Der Anbieter wählt den Webserver aus und hält ihn in Betrieb, während du die Domain und die Anwendung konfigurierst. Die Hosting-Dokumentation sollte angeben, welche Software der Dienst verwendet, ob er .htaccess unterstützt und welche Direktiven er zulässt.
Bei einem eigenen VPS, also einem virtuellen Server, können die Auswahl und Wartung der Software in deiner Verantwortung liegen. Apache ist eine sinnvolle Wahl, wenn die Anwendung oder deine Art der Serververwaltung seine Module und Regeln nutzt. Eine Alternative ist unter anderem Nginx, das keine .htaccess-Dateien einliest. Bei einer Migration müssen die entsprechenden Regeln daher in dessen Konfiguration übertragen werden.
Es gibt keine allgemeingültige Regel, nach der einer dieser Server immer schneller wäre. Entscheidend sind die Konfiguration, die Anwendung, der Cache und die verfügbaren Ressourcen. Prüfe vor der Wahl eines Hosting-Angebots vor allem die Anforderungen deiner Anwendung und wer für Updates und die Konfiguration des Webservers verantwortlich ist.
Siehe auch: Was ist 2FA?
