Apache auf einem Linux‑Server installieren

Apache HTTP Server gehört seit vielen Jahren zu den am weitesten verbreiteten Webservern. Er ist modular aufgebaut, flexibel konfigurierbar und eignet sich sowohl für kleine Projekte als auch für komplexe Hosting‑Umgebungen mit vielen VirtualHosts.

Hier erfährst du, wie du Apache unter Linux installierst, den Dienst verwaltest, wichtige Verzeichnisse und Logs findest, VirtualHosts einrichtest und den Webserver anschließend mit ein kostenlosen TLS‑Zertifikat von Let’s Encrypt absicherst. Der Schwerpunkt liegt auf Debian‑/Ubuntu‑Systemen.

Was ist Apache?
Kurzbeschreibung
Apache ist ein modularer Open‑Source‑Webserver, dessen Funktionen über Module erweitert werden können. Dazu zählen beispielsweise SSL/TLS‑Unterstützung, Proxy‑Funktionen, URL‑Umschreibungen (mod_rewrite) oder PHP‑Integration per mod_php oder PHP‑FPM.
Typische Einsätze
Apache ist ein klassischer Bestandteil vieler LAMP‑Stacks (Linux, Apache, MySQL/MariaDB, PHP) und bildet die Grundlage für zahlreiche Content‑Management‑Systeme und Webanwendungen. Durch seine modulare Architektur lässt sich Apache an sehr unterschiedliche Szenarien anpassen.
Vorbereitung auf Debian / Ubuntu
System aktualisieren
Vor der Installation von Apache ist es sinnvoll, die Paketlisten und installierten Pakete zu aktualisieren:

sudo apt update
sudo apt upgrade

Dadurch minimierst du Konflikte und stellst sicher, dass du eine aktuelle Apache‑Version erhältst.
Root‑Rechte
Wie bei anderen Systemdiensten benötigst du Root‑Rechte. Entweder arbeitest du als root oder verwendest sudo vor den relevanten Befehlen.
Apache installieren und verwalten
Installation
Unter Debian/Ubuntu installierst du Apache in der Regel mit:

sudo apt install apache2

Dabei werden Konfigurationsverzeichnisse unter /etc/apache2 angelegt und ein Standard‑Webroot, häufig /var/www/html, eingerichtet. Apache startet meist direkt im Anschluss an die Installation.
Dienststeuerung
Der Dienstname lautet üblicherweise apache2. Wichtige systemd‑Befehle sind:

sudo systemctl start apache2
sudo systemctl stop apache2
sudo systemctl restart apache2
sudo systemctl reload apache2
sudo systemctl enable apache2
sudo systemctl status apache2

Für Konfigurationsänderungen empfiehlt sich reload, da laufende Verbindungen nicht abrupt beendet werden.
Funktionstest
Öffne im Browser http://<deine-server-ip>. Wenn du die Apache‑Standardseite („Apache2 Ubuntu Default Page“ o. Ä.) siehst, antwortet der Webserver korrekt auf Port 80.
Firewall, Verzeichnisse und Logs
Firewall
Damit Apache von außen erreichbar ist, müssen HTTP und ggf. HTTPS in der Firewall erlaubt sein. Unter UFW kannst du z. B. einsetzen:

sudo ufw allow 'Apache'
oder
sudo ufw allow 'Apache Full'

Anschließend prüfst du mit sudo ufw status, ob die Regeln aktiv sind.
Konfiguration
Die zentrale Konfiguration liegt in /etc/apache2. Unterverzeichnisse wie sites-available/sites-enabled, mods-available/mods-enabled und conf-available/conf-enabled strukturieren VirtualHosts, Module und zusätzliche Konfigurationsfragmente.
Logfiles
Logs befinden sich üblicherweise in /var/log/apache2, insbesondere access.log für Zugriffe und error.log für Fehlermeldungen. Für einzelne VirtualHosts lassen sich eigene Logdateien konfigurieren, um Traffic und Fehler getrennt auszuwerten.
Eigene VirtualHosts
Grundprinzip
Für jede Domain bzw. jedes Projekt legst du in /etc/apache2/sites-available eine eigene Konfigurationsdatei an, definierst dort ServerName, DocumentRoot und ggf. Logdateien, und aktivierst den VirtualHost anschließend mit a2ensite. Danach lädst du Apache mit sudo systemctl reload apache2 neu.
Konfig‑Check
Vor einem Reload lohnt sich ein Syntaxcheck, zum Beispiel mit:

sudo apachectl configtest

Meldet Apache „Syntax OK“, kannst du die Konfiguration gefahrlos neu laden. Bei Fehlern solltest du die gemeldeten Zeilen in der entsprechenden Konfigurationsdatei prüfen und korrigieren.
TLS mit Let’s Encrypt
Voraussetzungen
Für ein Let’s‑Encrypt‑Zertifikat benötigst du:
– Einen Domainnamen, der auf deinen Server zeigt
– Einen laufenden Apache‑Server, der die Domain auf Port 80 bedient
– Offene Ports 80 und 443 in der Firewall
– Ein Tool wie Certbot, das mit Let’s Encrypt kommuniziert.
Certbot installieren
Unter Debian/Ubuntu installierst du Certbot mit Apache‑Plugin zum Beispiel so:

sudo apt install certbot python3-certbot-apache

Damit kann Certbot VirtualHosts analysieren, Zertifikate anfordern und Apache automatisch für HTTPS konfigurieren.
Zertifikat anfordern
Danach kannst du ein Zertifikat anfordern und Apache direkt konfigurieren lassen, etwa mit:

sudo certbot --apache -d deine-domain.de -d www.deine-domain.de

Certbot fragt dich nach einer E‑Mail‑Adresse, den Nutzungsbedingungen und ob HTTP‑Anfragen automatisch auf HTTPS umgeleitet werden sollen. Bei Erfolg werden die VirtualHost‑Konfigurationen angepasst und Zertifikat sowie Schlüssel nach /etc/letsencrypt/live/... geschrieben.
Erneuerung
Let’s‑Encrypt‑Zertifikate sind üblicherweise 90 Tage gültig. Certbot richtet einen automatischen Renew‑Mechanismus über Cron oder systemd‑Timer ein. Mit:

sudo certbot renew --dry-run

kannst du einen Testlauf durchführen. Wenn keine Fehler auftauchen, werden Zertifikate künftig automatisch verlängert. Es empfiehlt sich, die bei Certbot angegebene E‑Mail‑Adresse zu kontrollieren, um rechtzeitig Hinweise auf Probleme zu erhalten.