Apache auf Ubuntu und Windows installieren & konfigurieren
Deine Anleitung zur Installation von Apache: Pakete unter Ubuntu, manuelle Installation unter Windows, Virtual Hosts, mod_rewrite und Firewall.
·9 Min. Lesezeit·Aktualisiert am
Auf dieser Seite
Apache unter Ubuntu und Windows installieren & konfigurieren
Apache HTTP Server gibt es schon seit 1995, und er ist nach wie vor einer der am häufigsten genutzten Webserver: Er empfängt Anfragen vom Browser und liefert die Seiten aus – entweder alleine oder zusammen mit PHP und einer Datenbank. Wir schauen uns jetzt die Installation auf beiden Systemen an und danach direkt das, was du gleich brauchst: Firewall, Virtual Hosts und Module.
Die Befehle gelten für Ubuntu 26.04 LTS, die neueste Version mit Long-Term-Support, sowie für die ebenso unterstützten vorherigen LTS-Versionen 24.04 und 22.04. Du benötigst Administratorrechte.
Die Befehle gelten für Ubuntu 26.04 LTS (die neueste Version mit Long-Term-Support) sowie für die vorherigen noch unterstützten LTS-Versionen 24.04 und 22.04. Du benötigst Administratorrechte.
sudo apt update
sudo apt install apache2
Aktualisiere die Paketlisten und installiere den Server:
sudo systemctl status apache2
Wenn du active (running) siehst, ist alles in Ordnung. Ansonsten starte ihn mit sudo systemctl start apache2.
Öffne den Browser unter http://localhost: Es sollte die Standardseite „Apache2 Default Page“ erscheinen. Wenn der Server ein anderes Gerät ist, benötigst du dessen IP-Adresse, die du mit hostname -I (meistens der erste in der Liste) erhältst und dann wie http://indirizzo-ip im Browser eingeben musst.
Öffne im Browsererhältst (meistens die erste in der Liste), und gibst sie im Browser alsein.
Die Befehle, die du von nun an am häufigsten nutzen wirst, sind vier:
sudo systemctl start apache2 # avviasudo systemctl stop apache2 # fermasudo systemctl restart apache2 # riavviasudo systemctl reload apache2 # ricarica la configurazione senza interrompere le connessioni
Nach einer Konfigurationsänderung nutze reload: Laufende Anfragen werden dabei nicht unterbrochen.
Apache startet bei jedem Systemstart automatisch. Wenn du das nicht möchtest, deaktiviere ihn mit sudo systemctl disable apache2 und aktiviere ihn wieder mit sudo systemctl enable apache2.
Die Liste zeigt Apache (nur Port 80), Apache Secure (nur 443) und Apache Full (beide). Ich öffne direkt Apache Full, da du früher oder später ohnehin ein HTTPS-Zertifikat hinzufügen wirst; wenn dir HTTP vorerst reicht, nutze 'Apache':
sudo ufw allow 'Apache Full'sudo ufw enable
sudo ufw status
Vorsicht bei SSH. Wenn du auf einem Remote-Server via SSH arbeitest, autorisiere die SSH-Verbindung zuerst, bevor du die Firewall mit sudo ufw allow OpenSSH aktivierst. Das Aktivieren von UFW ohne diese Regel schließt den Port, über den du verbunden bist, und sperrt dich vom Server aus.
Für Windows stellt das Projekt nur den Quellcode bereit und verweist auf Builds von anderen Entwicklern. Die am häufigsten verwendete und aktuellste Version ist die von Apache Lounge, die auf der offiziellen Download-Seite gelistet ist. Apache Haus, das du in vielen Anleitungen findest, wird seit 2022 nicht mehr aktualisiert: Vergiss es einfach.
Brauchst du nur eine Entwicklungsumgebung? Wenn du lokal mit PHP und MySQL arbeiten willst, erspart dir ein Komplettpaket wie Laragon oder WampServer alle folgenden Schritte. Eine manuelle Installation macht nur Sinn, wenn du Version und Konfiguration selbst bestimmen willst, verstehen möchtest, wie der Server funktioniert, oder ihn dauerhaft stabil laufen lassen willst.
Port 80 freigeben. Falls du IIS aktiviert hast – den Microsoft Webserver, der in den Pro-Editionen enthalten ist –, deaktiviere ihn unter Windows-Features aktivieren oder deaktivieren, indem du das Häkchen bei Internet Information Services entfernst. Weiter unten findest du Informationen dazu, wie du herausfindest, welches andere Programm den Port belegt.
Installiere das für die von dir gewählte Kompilierung erforderliche Visual C++ Redistributable: Es ist auf der Download-Seite angegeben und die häufigste Ursache für fehlgeschlagene Starts.
Lade das 64-Bit-ZIP-Archiv herunter und entpacke den Ordner Apache24 nach C:\, sodass du unter C:\Apache24 landest. Das ist der Pfad, den die Standardkonfiguration erwartet.
Öffne C:\Apache24\conf\httpd.conf mit einem Texteditor. Falls du es woanders entpackt hast, korrigiere die Variable SRVROOT am Anfang der Datei, die alle anderen Direktiven als Basis nutzen – verwende dabei immer normale Schrägstriche:
Define SRVROOT "c:/Apache24"
Öffne ServerName mit einem Texteditor. Falls du es woanders entpackt hast, korrigiere die Variable ServerName localhost:80 am Anfang der Datei, die alle anderen Direktiven als Basis verwenden (immer mit normalen Schrägstrichen):
Öffne die Eingabeaufforderung als Administrator und teste die Konfiguration:
cd C:\Apache24\bin
httpd.exe -t
Die erwartete Antwort ist Syntax OK. Falls ein Fehler auftritt, gibt die Meldung an, welche Datei und Zeile korrigiert werden müssen.
Registriere Apache als Windows-Dienst, damit er bei jedem Systemstart automatisch startet:
httpd.exe -k install
Starte den Dienst und überprüfe es unter http://localhost:
httpd.exe -k start
Zur späteren Verwaltung: httpd.exe -k stop stoppt ihn, httpd.exe -k restart startet ihn neu, httpd.exe -k uninstall entfernt den Dienst. Du findest ihn auch unter den Windows-Diensten (services.msc) unter dem Namen Apache2.4: Mit einem Doppelklick kannst du wählen, ob er automatisch oder manuell starten soll. Im manuellen Modus startest du ihn mit net start Apache2.4 über eine Administrator-Eingabeaufforderung.
Die Installation enthält auch ApacheMonitor.exe, ein kleines Icon im Infobereich (System Tray), mit dem du den Server starten und stoppen kannst, ohne die Konsole zu öffnen.
Falls Port 80 bereits belegt ist
Unter Windows ist Port 80 oft von anderen Programmen belegt: IIS, Skype in älteren Versionen oder bestimmte Systemdienste. Um herauszufinden, wer ihn nutzt, öffne eine Eingabeaufforderung mit Administratorrechten und gib ein:
netstat -aon | findstr :80
Die letzte Zahl in der Zeile ist die Prozess-ID (PID), nach der du im Taskmanager unter dem Reiter Details suchen kannst. Du kannst dieses Programm schließen oder Apache auf einen anderen Port verschieben, indem du httpd.conf änderst:
Listen 8080
In diesem Fall antwortet die Website über http://localhost:8080.
Im Grunde liefert Apache die Dateien von C:\Apache24\htdocs aus. Wenn du deine Websites lieber auf einer anderen Festplatte speichern möchtest, zum Beispiel um Backups zu vereinfachen, ändere sowohl httpd.conf als auch DocumentRoot sowie den folgenden Block <Directory>:
DocumentRoot "D:/Siti"<Directory"D:/Siti">
Lege dann eine Datei vom Typ index.html in den Ordner, starte den Dienst neu und lade http://localhost neu.
macOS hat eine vorinstallierte Apache-Version, aber diese ist oft nicht aktuell. Installiere lieber eine Version mit Homebrew:
brew install httpd
brew services start httpd
Die Konfigurationsdateien liegen unter /opt/homebrew/etc/httpd/ bei Macs mit Apple Silicon, und der Server antwortet standardmäßig auf Port 8080.
Virtuelle Hosts: Mehrere Websites auf demselben Server #
Ein Virtual Host teilt Apache mit, welcher Ordner basierend auf dem angeforderten Website-Namen ausgeliefert werden soll. Es lohnt sich, dies auch bei nur einer einzigen Website zu nutzen, um die Konfiguration von der Standardeinstellung zu trennen.
Um es lokal zu testen, füge die Zeile 127.0.0.1 esempio.test in der Datei /etc/hosts hinzu.
Die Direktive AllowOverride All ist entscheidend dafür, dass Dateien vom Typ .htaccess funktionieren: Ohne sie werden Rewrite-Regeln in Unterordnern ignoriert.
Der Mechanismus ist derselbe, aber die Virtual Hosts liegen in conf/extra/httpd-vhosts.conf. Diese muss zuerst aktiviert werden, indem du das Kommentarzeichen vor der entsprechenden Zeile in httpd.conf entfernst:
Include conf/extra/httpd-vhosts.conf
Danach definierst du die Hosts mit der oben gezeigten Syntax unter Verwendung von Windows-Pfaden (c:/siti/esempio/public_html). Füge zudem den Eintrag in der Datei C:\Windows\System32\drivers\etc\hosts hinzu, die du als Administrator öffnen musst.
mod_rewrite schreibt URLs um: Das nutzen WordPress für seine lesbaren URLs, das Routing von PHP-Frameworks sowie alle Redirects, die in einer Datei vom Typ .htaccess stehen. Standardmäßig ist es deaktiviert.
In beiden Fällen funktioniert mod_rewrite nur, wenn auch AllowOverride All im Block <Directory> des Website-Ordners vorhanden ist. Wenn die Regeln nicht funktionieren, fehlt meistens genau dieser Teil.
Um die Liste der aktiven Module zu sehen: apache2ctl -M unter Ubuntu, httpd.exe -M unter Windows.
Apache startet nicht. Teste die Konfiguration mit apache2ctl configtest oder httpd.exe -t: Die Fehlermeldung gibt die Datei und Zeile an. Überprüfe unter Windows, ob du das erforderliche Visual C++ Redistributable installiert hast.
Fehler 403 Forbidden. Ordnerberechtigungen fehlen oder die Direktive Require all granted im Block <Directory> ist nicht gesetzt. Unter Ubuntu müssen die Dateien für den Benutzer www-data lesbar sein.
Rewrite-Regeln werden ignoriert. Das Modul ist nicht aktiv oder AllowOverride ist auf None eingestellt.
Die Standardseite erscheint statt der Website. Der Virtual Host wurde nicht aktiviert oder der Name in der Datei hosts stimmt nicht mit dem Namen in ServerName überein.
Schau als Erstes immer ins Error-Log: /var/log/apache2/error.log unter Ubuntu, C:\Apache24\logs\error.log unter Windows.
Das kommt auf die Last und deinen Anwendungsfall an. Nginx bewältigt viele gleichzeitige Verbindungen bei geringem Ressourcenverbrauch besser und wird meist für Websites mit hohem Traffic genutzt. Apache ist einfacher für Einsteiger, unterstützt die konfigurationsbasierte Steuerung pro Verzeichnis mit Dateien vom Typ .htaccess (Nginx nicht) und ist der Standard bei den meisten Shared-Hosting-Anbietern. Oft werden beide kombiniert: Nginx als Proxy vorne, Apache dahinter.
Unter Ubuntu reicht ein Befehl: sudo apt install php libapache2-mod-php, gefolgt von einem Neustart des Dienstes. Unter Windows musst du PHP separat in der „Thread Safe“-Version herunterladen und mit Apache verbinden, indem du die Zeilen LoadModule und PHPIniDir in httpd.conf hinzufügst. Achte darauf, eine 64-Bit-Version wie die von Apache zu verwenden.
Muss ich Ports im Router öffnen, um aus dem Internet erreichbar zu sein? #
Ja, um von außen sichtbar zu sein, musst du die Ports 80 und 443 an deinen Computer weiterleiten. Überleg es dir gut: Ein Server, der offen im Netz steht, muss ständig aktualisiert und überwacht werden. Wenn du nur kurz jemandem eine Website zeigen willst, ist ein temporärer Tunnel oder ein kleiner Hosting-Anbieter sicherer.
Stoppe den Dienst mit httpd.exe -k stop und erstelle Kopien von httpd.conf, dem Ordner conf und deinen Website-Dateien. Entpacke dann die neue Version über die alte (ohne deine Konfiguration zu überschreiben), prüfe alles mit httpd.exe -t und starte neu. Der registrierte Dienst bleibt derselbe; eine Neuinstallation ist nicht nötig.
Auf einem öffentlichen Server ist der Standardweg Let’s Encrypt mit dem Tool Certbot, das das Zertifikat automatisch bezieht und Apache konfiguriert. Lokal benötigen Sie keine Zertifizierungsstelle; ein selbstsigniertes Zertifikat genügt. Der Browser kennzeichnet es zwar als nicht vertrauenswürdig, aber Sie können die Website trotzdem über HTTPS aufrufen.
Was ist der Unterschied zwischen restart und reload? #
restart stoppt und startet den Prozess neu und bricht dabei laufende Verbindungen ab. reload sorgt dafür, dass die Konfiguration neu eingelesen wird, während bereits gestartete Anfragen zu Ende geführt werden können: Nutze dies auf einem produktiven Server nach einer Änderung.