Zuletzt aktualisiert am 8. Dezember 2025 von Lars
Inhaltsverzeichnis
Apache Webserver installieren
sudo apt updatesudo apt install apache2UFW Firewall installieren
sudo apt update
sudo apt install ufwUFW Firewall konfigurieren
Um Apache auf Ubuntu richtig zu konfigurieren, solltest du die Uncomplicated Firewall (UFW) aktivieren. Nachdem du Apache installiert hast, erstellt Apache automatisch Anwendungsprofile in UFW, die den Datenverkehr zu den Webports steuern.
Zeige dir als Nächstes die Anwendungsprofile an:
sudo ufw app listAusgabe
$ sudo ufw app list
Available applications:
Apache
Apache Full
Apache Secure
OpenSSHApache: TCP-Port 80 HTTP unverschlüsselt
Apache Full: TCP-Port 80 HTTP unverschlüsselt und TCP-Port 443 HTTPS verschlüsselt
Apache Secure: TCP-Port 443 HTTPS verschlüsselt
Wir setzen zunächst nur Apache.
sudo ufw allow 'Apache'Ausserdem benötigen wir OpenSSH, damit wir uns nicht aussperren.
sudo ufw allow OpenSSHDann enablen wir die Firewall.
sudo ufw enableAnschliessend kontrollieren wir, ob die Firewall läuft.
sudo ufw statusAls Nächstes kontrollieren wir, ob Apache läuft.
sudo systemctl status apache2Wenn der Apache Server läuft, dann sollte unter der IP bereits eine Default-Website erscheinen

Virtuelle Hosts
Apache hostet Dokumente standardmässig in /var/www/html. Um mehrere Domains auf einem Server zu nutzen, kannst du virtuelle Hosts einrichten. Ein virtueller Host reagiert nicht nach Prüfung der aufgerufenen URL mit der passenden Website.
Beachte ausserdem, dass Apache standardmässig mit dem User www-data läuft. Du kannst das überprüfen mit
ps -eo pid,user,comm | grep apache2Daten ablegen
Lege innerhalb von /var/www/ eine Verzeichnisstruktur für deine eigene Domain an.
Beispiel:
sudo mkdir /var/www/cloud.test.chErsetze cloud.test.ch mit deiner tatsächlichen Domain.
Eigentümer www-data setzen
Damit Apache (der unter dem System‑Benutzer www-data läuft) auf die Dateien zugreifen kann, musst du das Verzeichnis diesem Benutzer zuweisen:
sudo chown -R www-data:www-data /var/www/cloud.test.chFalls du selbst (z.B. Benutzer lars) später Dateien dort bearbeiten willst, füge dich zur Gruppe www-data hinzu und gib der Gruppe Schreibrechte:
Beispiel lars zur www-data Gruppe hinzufügen
sudo usermod -aG www-data larsGruppen-Schreibrechte erlauben
sudo chmod -R 775 /var/www/cloud.test.chNach dem Hinzufügen zur Gruppe musst du dich neu anmelden, damit die neue Gruppenzugehörigkeit wirksam wird.
Test‑Webseite anlegen
Erstelle eine einfache index.html im neuen Verzeichnis:
cat <<'EOF' | sudo tee /var/www/cloud.test.ch/index.html
<html>
<head>
<title>Welcome</title>
</head>
<body>
<h1>Welcome to this Website</h1>
</body>
</html>
EOFVHost‑Konfigurationsdatei erstellen
Lege die Datei /etc/apache2/sites-available/cloud.test.ch.conf an:
sudo tee /etc/apache2/sites-available/cloud.test.ch.conf > /dev/null <<'EOF'
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName cloud.test.ch
ServerAlias www.cloud.test.ch
DocumentRoot /var/www/cloud.test.ch
ErrorLog ${APACHE_LOG_DIR}/cloud.test.ch_error.log
CustomLog ${APACHE_LOG_DIR}/cloud.test.ch_access.log combined
<Directory /var/www/cloud.test.ch>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
EOFKonfiguration aktivieren
sudo a2ensite cloud.test.ch.confAusgabe (Beispiel):
Enabling site cloud.test.ch.
To activate the new configuration, you need to run:
systemctl reload apache2Standard‑Site deaktivieren (optional)
sudo a2dissite 000-default.confApache Konfiguration prüfen
sudo apache2ctl configtestErwartete Ausgabe:
Syntax OKApache neu laden bzw. neustarten
Wenn nur vHost-Datei geändert wurde:
sudo systemctl reload apache2 Kompletter Neustart
sudo systemctl restart apache2Log-Dateien des Apache Webserver
Die Logs des Apache-Webservers befinden sich normalerweise im Verzeichnis /var/log/apache2/ auf einem Ubuntu-System.
Zugriffsprotokoll (access log)
Diese Datei enthält Informationen über alle Anfragen, die an den Webserver gestellt wurden. Die Standarddatei ist /var/log/apache2/access.log Einträge in dieser Datei enthalten Details wie die IP-Adresse des Clients, das Datum und die Uhrzeit der Anfrage, die angeforderte Ressource, den HTTP-Statuscode und mehr.
Fehlerprotokoll (error log)
Diese Datei enthält Informationen über Fehler und diagnostische Informationen, die beim Betrieb des Webservers auftreten. Die Standarddatei ist: /var/log/apache2/error.log Einträge in dieser Datei können Hinweise auf Konfigurationsprobleme, Berechtigungsfehler und andere Probleme enthalten.
Zugriff auf die Log-Dateien
Du kannst die Log-Dateien mit einem Texteditor öffnen oder mit Befehlen wie cat, less, more oder tail ansehen. Zum Beispiel:
sudo cat /var/log/apache2/access.logsudo cat /var/log/apache2/error.logsudo tail -f /var/log/apache2/error.logLog-Dateien für spezifische Virtual Hosts
Wenn du spezifische Log-Dateien für verschiedene Virtual Hosts konfiguriert hast, findest du diese möglicherweise an anderen Orten. Hier ist ein Beispiel für eine Virtual Host-Konfiguration, die eigene Log-Dateien definiert:
<VirtualHost *:80>
ServerAdmin webmaster@deine_domain
ServerName deine_domain
ServerAlias www.deine_domain
DocumentRoot /var/www/deine_domain
ErrorLog /var/log/apache2/deine_domain_error.log
CustomLog /var/log/apache2/deine_domain_access.log combined
</VirtualHost>Apache Webserver mit systemctl verwalten
Starten des Apache Webserver
sudo systemctl start apache2Stoppen des Apache-Webservers
sudo systemctl stop apache2Stoppen und Neustarten des Apache-Webservers
sudo systemctl restart apache2Neustart von Apache und erneutes Laden der Konfiguration
sudo systemctl reload apache2Automatischen Neustart von Apache aktivieren und deaktivieren
Wenn du Apache unter Ubuntu installierst, startet der Webserver nach der Einrichtung beim Booten automatisch. So kannst du das deaktivieren.
sudo systemctl disable apache2Und so wieder aktivieren.
$ sudo systemctl enable apache2Allgemeines Troubleshooting
UFW
Aktiviere UFW
sudo ufw enableErlaube SSH-Verbindungen
sudo ufw allow OpenSSHErlaube HTTP und HTTPS
sudo ufw allow 'Apache Full'Überprüfe den Status von UFW
sudo ufw status
Die Ausgabe sollte etwas Ähnliches zeigen:
Falls erforderlich, spezifische Ports erlauben
Falls du spezifische Ports oder Dienste erlauben möchtest, kannst du das ebenfalls tun. Zum Beispiel, um nur HTTP-Verkehr zu erlauben:
sudo ufw allow http
sudo ufw allow https
Regeln verwalten und überprüfen
Um eine Liste aller aktiven Regeln anzuzeigen, verwende:
sudo ufw status verbose
Port 80 oder 443 frei?
Überprüfe, ob deine Firewall den HTTP- (Port 80) und HTTPS-Verkehr (Port 443) zulässt. Du kannst dies mit ufw überprüfen und ggf. freischalten.
sudo ufw status sudo ufw allow 'Apache Full'Apache Config deaktivieren und wieder aktivieren
sudo a2dissite file.confsudo a2ensite file.confsystemctl reload apache2Teste die Konfiguration auf Fehler
sudo apache2ctl configtestApache Konfiguration
Stelle sicher, dass deine Apache-Konfiguration korrekt ist. Überprüfe die Konfigurationsdateien für die virtuelle Hosts in /etc/apache2/sites-available und /etc/apache2/sites-enabled.
Weiter oben im Artikel siehst du, wie eine typische Datei aussieht.
Stelle sicher, dass die Datei in sites-enabled verlinkt ist. Linke, falls nötig, erneut.
sudo ln -s /etc/apache2/sites-available/yourdomain.conf /etc/apache2/sites-enabled/yourdomain.confNach Änderungen die Apache-Konfiguration diese neu laden.
sudo systemctl reload apache2Debug-Level erhöhen
sudo vim /etc/apache2/apache2.confHier kannst du Loglevel zum Beispiel auf debug setzen.
DNS-Konfiguration
Stelle sicher, dass der globale DNS-Eintrag korrekt ist und auf die öffentliche IP-Adresse deines Servers verweist. Überprüfe das mit Tools wie nslookup oder dig.
nslookup yourdomain.com dig yourdomain.comServer IP-Adresse
Stelle sicher, dass dein Server eine öffentliche IP-Adresse hat und diese korrekt konfiguriert ist. Prüfe dies mit:
ip aRouter/Modem
Wenn dein Server hinter einem Router/Modem steht, stelle sicher, dass die Portweiterleitung (Port Forwarding) korrekt eingerichtet ist, um Anfragen von aussen an deinen Server weiterzuleiten.
Apache Logs
Überprüfe die Apache-Logs auf Fehler oder Hinweise, die dir bei der Fehlersuche helfen können.
sudo tail -f /var/log/apache2/error.log sudo tail -f /var/log/apache2/access.logSonstiges
Updates
Mache regelmässig Updates. Gerade bei einem Server, der direkt im Internet hängt, ist das ganz besonders wichtig.
sudo apt update
sudo apt upgradeMit Geo IP Apache Zugriff aus bestimmten Ländern konfigurieren
Um den Zugriff auf den Apache-Server für bestimmte Länder zu beschränken, kann das Modul mod_geoip verwendet werden.
Installation
sudo apt-get update
sudo apt-get install libapache2-mod-geoip geoip-databaseAktivierung
sudo a2enmod geoip
sudo service apache2 restartKonfiguration
sudo vim /etc/apache2/mods-available/geoip.confFügen die folgenden Zeilen hinzu, um die GeoIP-Datenbank zu verwenden:
GeoIPEnable On
GeoIPDBFile /usr/share/GeoIP/GeoIP.datAktivieren des Verwendens der .htaccess Datei in der Apache-Konfigurationsdatei
sudo vim /etc/apache2/sites-available/domain.confErgänzen von...
<Directory /var/www/domain-root>
AllowOverride All
</Directory>...innerhalb der <Virtual Host> Sektion.
Erstellen einer .htaccess
sudo vim /var/www/domain-root/.htaccessErgänzen der Direktive. Diese erlaubt zum Beispiel nur den Zugriff aus DE und CH.
<IfModule mod_geoip.c>
SetEnvIf GEOIP_COUNTRY_CODE DE AllowCountry
SetEnvIf GEOIP_COUNTRY_CODE CH AllowCountry
Deny from all
Allow from env=AllowCountry
</IfModule>Zeit gespart? Dann unterstütze doch it-zeugs.de
Wenn dieser Tipp dir geholfen hat, Zeit zu sparen, überlege bitte, eine kleine Spende zu hinterlassen. Dein Beitrag hilft mir, weiterhin wertvolle Inhalte zu erstellen. Du kannst unter diesem Linke spenden: Spende it-zeugs.de
Falld du nicht spenden willst oder kannst, dann wäre es toll, wenn du deinen nächsten Amazon Einkauf mit diesem Link beginnen würdest: Amazon Link. Für dich wird es nicht teurer, ich bekomme aber einen kleinen Beitrag.
Vielen herzlichen Dank ❤️

Hallo, hier schreibt Lars. Dipl-Ing. Ingenieurinformatik (FH). Seit Jahrzehnten in der IT tätig. Geprüfter (und begeisterter) Webmaster. Ebenso begeisterter Windows-, Apple-, und Office-User. Ich schreibe über alle möglichen Themen rund um IT. Mehr über mich erfährst du hier: Über mich. Danke für deinen Besuch!
