Tutorials  /  Linux Basics

Apache Webserver auf Debian 11 installieren – Schritt-für-Schritt-Anleitung

Ccentron Redaktion · Januar 2025 ·12 Min. Lesezeit ·Linux Basics, Tutorial

Der Apache HTTP-Server ist der am weitesten verbreitete Webserver der Welt. Er bietet viele leistungsstarke Funktionen, darunter dynamisch ladbare Module, robuste Medienunterstützung und umfangreiche Integration mit anderer beliebter Software.

In dieser Anleitung installieren Sie einen Apache-Webserver auf einem Debian 11-Server.

Voraussetzungen

Bevor Sie mit dieser Anleitung beginnen, benötigen Sie einen Debian 11-Server, der mit einem Nicht-Root-Benutzer mit sudo-Rechten und einer aktivierten Firewall eingerichtet ist, um nicht wesentliche Ports zu blockieren.

Sobald Sie dies eingerichtet haben, melden Sie sich als Nicht-Root-Benutzer an und fahren Sie mit dem ersten Schritt fort.

VM

Passende Infrastruktur bei centron

Zum Ausprobieren braucht es keine eigene Hardware: ccloud³ VMs mit vollem Root-Zugriff gibt es ab 3,12 € im Monat, stundengenau abgerechnet und in Sekunden bereit. Cloud Server mieten →

Schritt 1 — Installation von Apache

Apache ist in den Standard-Software-Repositories von Debian verfügbar, sodass es mit herkömmlichen Paketverwaltungstools installiert werden kann.

Beginnen Sie damit, die lokale Paketliste zu aktualisieren, um die neuesten Änderungen des Upstreams widerzuspiegeln:

Konsole
sudo apt update

Installieren Sie dann das Paket apache2:

Konsole
sudo apt install apache2

Nachdem Sie die Installation bestätigt haben, installiert apt Apache und alle erforderlichen Abhängigkeiten.

Schritt 2 — Anpassen der Firewall

Bevor Sie Apache testen, müssen Sie die Firewall-Einstellungen anpassen, um den Zugriff von außen auf die Standard-Webports zu ermöglichen. Wenn Sie den Anweisungen in den Voraussetzungen gefolgt sind, sollten Sie eine UFW-Firewall eingerichtet haben, um den Zugriff auf Ihren Server zu beschränken.

Während der Installation registriert sich Apache bei UFW, um einige Anwendungsprofile bereitzustellen, die verwendet werden können, um den Zugriff auf Apache über die Firewall zu aktivieren oder zu deaktivieren.

Listen Sie die UFW-Anwendungsprofile auf, indem Sie den folgenden Befehl ausführen:

Konsole
sudo ufw app list

Ihre Ausgabe wird eine Liste der Anwendungsprofile sein:

Code
Verfügbare Anwendungen:
  AIM
  Bonjour
  CIFS
  ...
  WWW
  WWW Cache
  WWW Full
  WWW Secure
  ...

Die Apache-Profile beginnen mit WWW:

  • WWW: Öffnet nur Port 80 (normaler, unverschlüsselter Webverkehr)
  • WWW Cache: Öffnet nur Port 8080 (manchmal für Caching und Webproxies verwendet)
  • WWW Full: Öffnet sowohl Port 80 (normaler, unverschlüsselter Webverkehr) als auch Port 443 (TLS/SSL-verschlüsselter Verkehr)
  • WWW Secure: Öffnet nur Port 443 (TLS/SSL-verschlüsselter Verkehr)

Da Sie in dieser Anleitung noch kein SSL für Ihren Server konfiguriert haben, müssen Sie nur den Verkehr auf Port 80 zulassen:

Konsole
sudo ufw allow 'WWW'

Sie können die Änderung überprüfen, indem Sie den Status überprüfen:

Konsole
sudo ufw status

Die Ausgabe zeigt eine Liste des erlaubten HTTP-Verkehrs:

Code
Status: aktiv

Zu                         Aktion      Von
--                         ------      ----
OpenSSH                    ERLAUBEN    Überall
WWW                        ERLAUBEN    Überall
OpenSSH (v6)               ERLAUBEN    Überall (v6)
WWW (v6)                   ERLAUBEN    Überall (v6)

Wie die Ausgabe zeigt, wurde das Profil aktiviert, um den Zugriff auf den Apache-Webserver zu ermöglichen.

Schritt 3 — Überprüfen Ihres Webservers

Am Ende des Installationsprozesses startet Debian 11 Apache. Der Webserver sollte bereits aktiv und funktionsfähig sein.

Stellen Sie sicher, dass der Dienst aktiv ist, indem Sie den folgenden Befehl für das systemd-Init-System ausführen:

Konsole
sudo systemctl status apache2

Ausgabe:

YAML
● apache2.service - The Apache HTTP Server
     Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor prese>
     Active: active (running) since Wed 2022-07-06 22:05:45 UTC; 23s ago
       Docs: https://httpd.apache.org/docs/2.4/
   Main PID: 2796 (apache2)
      Tasks: 55 (limit: 9509)
     Memory: 21.0M
        CPU: 67ms
     CGroup: /system.slice/apache2.service
             ├─2796 /usr/sbin/apache2 -k start
             ├─2798 /usr/sbin/apache2 -k start
             └─2799 /usr/sbin/apache2 -k start

Diese Ausgabe bestätigt, dass der Dienst erfolgreich gestartet wurde. Die beste Möglichkeit, dies zu testen, besteht jedoch darin, eine Seite von Apache anzufordern.

Sie können die Standard-Apache-Startseite aufrufen, um zu bestätigen, dass die Software ordnungsgemäß läuft, indem Sie die IP-Adresse Ihres Servers verwenden. Wenn Sie die IP-Adresse Ihres Servers nicht kennen, können Sie diese auf verschiedene Arten über die Befehlszeile abrufen.

Versuchen Sie, den folgenden Befehl in der Befehlszeile Ihres Servers einzugeben:

Code
hostname -I

Sie erhalten eine Liste von Adressen, die durch Leerzeichen getrennt sind. Sie können jede dieser Adressen in Ihrem Webbrowser ausprobieren, um festzustellen, ob sie funktioniert.

Eine andere Möglichkeit ist die Verwendung des Tools icanhazip.com, einer Website, die beim Aufrufen die öffentliche IP-Adresse Ihrer Maschine zurückgibt, wie sie von einem anderen Ort im Internet aus gelesen wird. Wenn curl nicht bereits installiert ist, können Sie es mit folgendem Befehl installieren:

Konsole
sudo apt install curl

Verwenden Sie anschließend curl, um icanhazip.com unter Verwendung von IPv4 abzurufen:

Konsole
curl -4 icanhazip.com

Nachdem Sie die IP-Adresse Ihres Servers erhalten haben, geben Sie diese in die Adressleiste Ihres Browsers ein:

Code
http://your_server_ip

Sie sollten die Standardseite von Debian 11 Apache sehen:

Small apache default debian9 e1738581277930Diese Seite zeigt an, dass Apache korrekt funktioniert. Sie enthält auch einige grundlegende Informationen über wichtige Apache-Dateien und Verzeichnisstandorte.

Schritt 4 — Verwalten des Apache-Prozesses

Nachdem Ihr Webserver nun läuft, überprüfen wir einige grundlegende Verwaltungsbefehle mit systemctl.

Um Ihren Webserver zu stoppen, führen Sie aus:

Konsole
sudo systemctl stop apache2

Zum starten des Webservers, wenn er gestoppt ist, führen Sie folgendes aus:

Konsole
sudo systemctl start apache2

Um den Dienst zu stoppen und anschließend erneut zu starten, führen Sie aus:

Konsole
sudo systemctl restart apache2

Wenn Sie nur Konfigurationsänderungen vornehmen, kann Apache oft neu geladen werden, ohne Verbindungen zu unterbrechen. Verwenden Sie dazu den folgenden Befehl:

Konsole
sudo systemctl reload apache2

Standardmäßig ist Apache so konfiguriert, dass es beim Serverstart automatisch gestartet wird. Wenn dies nicht gewünscht ist, deaktivieren Sie dieses Verhalten mit folgendem Befehl:

Konsole
sudo systemctl disable apache2

Um den Dienst wieder zu aktivieren, damit er beim Start des Servers automatisch gestartet wird, führen Sie aus:

Konsole
sudo systemctl enable apache2

Apache wird nun wieder automatisch gestartet, wenn der Server neu startet.

Schritt 5 — Einrichten von virtuellen Hosts (empfohlen)

Wenn Sie den Apache-Webserver verwenden, können Sie virtuelle Hosts (ähnlich wie Serverblöcke in Nginx) verwenden, um Konfigurationsdetails zu kapseln und mehr als eine Domain von einem einzigen Server aus zu hosten. Wir richten eine Domain namens your_domain ein, aber Sie sollten diese durch Ihren eigenen Domainnamen ersetzen.

Apache auf Debian 11 hat standardmäßig einen Serverblock aktiviert, der so konfiguriert ist, dass er Dokumente aus dem Verzeichnis /var/www/html bereitstellt. Während dies für eine einzelne Website gut funktioniert, kann es unübersichtlich werden, wenn Sie mehrere Websites hosten. Statt /var/www/html zu ändern, erstellen Sie eine Verzeichnisstruktur innerhalb von /var/www für eine your_domain-Website und belassen /var/www/html als Standardverzeichnis, das bereitgestellt wird, wenn eine Clientanfrage keine anderen Websites zugeordnet werden kann.

Erstellen Sie das Verzeichnis für your_domain wie folgt:

Konsole
sudo mkdir -p /var/www/your_domain

Weisen Sie als Nächstes dem aktuellen Benutzer, mit dem Sie angemeldet sind, die Besitzrechte für das Verzeichnis zu:

Konsole
sudo chown -R $USER:$USER /var/www/your_domain

Die Berechtigungen Ihres Web-Root-Verzeichnisses sollten korrekt sein, wenn Sie den Standardwert für umask nicht geändert haben, der die Standarddateiberechtigungen festlegt. Um sicherzustellen, dass die Berechtigungen korrekt sind und dem Eigentümer Lese-, Schreib- und Ausführungsrechte gewährt werden, während Gruppen und andere nur Lese- und Ausführungsrechte erhalten, geben Sie folgenden Befehl ein:

Konsole
sudo chmod -R 755 /var/www/your_domain

Virtuellen Host konfigurieren

Erstellen Sie anschließend eine Beispiel-index.html-Seite mit Ihrem bevorzugten Texteditor. In diesem Beispiel verwenden wir nano:

Code
nano /var/www/your_domain/index.html

Fügen Sie den folgenden HTML-Beispielcode in die Datei ein:

Code
<html>
    <head>
        <title>Welcome to your_domain!</title>
    </head>
    <body>
        <h1>Success!  The your_domain virtual host is working!</h1>
    </body>
</html>

Speichern und schließen Sie die Datei, wenn Sie fertig sind. Wenn Sie nano verwenden, können Sie dies tun, indem Sie CTRL + X, dann Y und ENTER drücken.

Damit Apache diesen Inhalt bereitstellen kann, ist es erforderlich, eine virtuelle Host-Datei mit den richtigen Anweisungen zu erstellen. Anstatt die Standardkonfigurationsdatei im Verzeichnis /etc/apache2/sites-available/000-default.conf direkt zu ändern, erstellen Sie eine neue Datei im Verzeichnis /etc/apache2/sites-available/your_domain.conf:

Konsole
sudo nano /etc/apache2/sites-available/your_domain.conf

Fügen Sie den folgenden Konfigurationsblock ein, der dem Standard ähnlich ist, jedoch für Ihr neues Verzeichnis und Ihren neuen Domainnamen aktualisiert wurde:

Code
ServerAdmin webmaster@localhost
ServerName your_domain
ServerAlias www.your_domain
DocumentRoot /var/www/your_domain
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined

Beachten Sie, dass wir DocumentRoot auf unser neues Verzeichnis und ServerAdmin auf eine E-Mail-Adresse aktualisiert haben, die der Administrator der Website your_domain abrufen kann. Wir haben auch zwei Direktiven hinzugefügt: ServerName, die die Basisdomain festlegt, die dieser Definition des virtuellen Hosts zugeordnet ist, und ServerAlias, die zusätzliche Namen definiert, die wie der Basisname behandelt werden.

Speichern und schließen Sie die Datei, wenn Sie fertig sind.

Aktivieren Sie die Datei jetzt mit dem Tool a2ensite:

Konsole
sudo a2ensite your_domain.conf

Deaktivieren Sie die Standardseite, die in 000-default.conf definiert ist:

Konsole
sudo a2dissite 000-default.conf

Testen Sie als Nächstes die Konfiguration auf Fehler:

Konsole
sudo apache2ctl configtest

Sie sollten die folgende Ausgabe erhalten:

Code
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
Syntax OK

Starten Sie Apache neu, um die Änderungen zu übernehmen:

Konsole
sudo systemctl restart apache2

Apache stellt jetzt Ihren Domainnamen bereit. Sie können dies testen, indem Sie zu http://your_domain navigieren, wo Sie die angepasste Seite sehen sollten.

Schritt 6 — Wichtige Apache-Dateien und -Verzeichnisse

Nachdem Sie nun wissen, wie Sie den Apache-Dienst verwalten, sollten Sie sich mit einigen wichtigen Verzeichnissen und Dateien vertraut machen.

Inhalt

  • /var/www/html: Das eigentliche Webinhaltsverzeichnis. Standardmäßig enthält es nur die Standard-Apache-Seite, die Sie zuvor gesehen haben. Dieses Verzeichnis kann geändert werden, indem Sie die Apache-Konfigurationsdateien anpassen.

Serverkonfiguration

  • /etc/apache2: Das Apache-Konfigurationsverzeichnis. Alle Apache-Konfigurationsdateien befinden sich hier.
  • /etc/apache2/apache2.conf: Die Hauptkonfigurationsdatei von Apache. Diese kann geändert werden, um globale Apache-Einstellungen anzupassen. Diese Datei ist dafür verantwortlich, viele andere Dateien im Konfigurationsverzeichnis zu laden.
  • /etc/apache2/ports.conf: Diese Datei gibt die Ports an, auf denen Apache lauscht. Standardmäßig lauscht Apache auf Port 80 und zusätzlich auf Port 443, wenn ein Modul mit SSL-Fähigkeiten aktiviert ist.
  • /etc/apache2/sites-available/: Das Verzeichnis, in dem virtuelle Hosts pro Site gespeichert werden können. Apache verwendet die Konfigurationsdateien in diesem Verzeichnis nur, wenn sie mit dem Verzeichnis sites-enabled verknüpft sind. In der Regel wird die gesamte Serverblockkonfiguration in diesem Verzeichnis vorgenommen und dann mit dem Befehl a2ensite aktiviert.
  • /etc/apache2/sites-enabled/: Das Verzeichnis, in dem aktivierte virtuelle Hosts pro Site gespeichert werden. Diese werden in der Regel erstellt, indem sie mit Konfigurationsdateien im Verzeichnis sites-available verknüpft werden, wobei der Befehl a2ensite verwendet wird. Apache liest die Konfigurationsdateien und Links in diesem Verzeichnis beim Start oder beim Neuladen, um eine vollständige Konfiguration zu erstellen.
  • /etc/apache2/conf-available/, /etc/apache2/conf-enabled/: Diese Verzeichnisse haben das gleiche Verhältnis wie sites-available und sites-enabled, werden jedoch verwendet, um Konfigurationsfragmente zu speichern, die nicht zu einem virtuellen Host gehören. Dateien im Verzeichnis conf-available können mit dem Befehl a2enconf aktiviert und mit a2disconf deaktiviert werden.
  • /etc/apache2/mods-available/, /etc/apache2/mods-enabled/: Diese Verzeichnisse enthalten die verfügbaren und aktivierten Module. Dateien mit der Endung .load enthalten Fragmente zum Laden bestimmter Module, während Dateien mit der Endung .conf die Konfiguration für diese Module enthalten. Module können mit den Befehlen a2enmod und a2dismod aktiviert und deaktiviert werden.

Serverprotokolle

  • /var/log/apache2/access.log: Standardmäßig wird jede Anfrage an Ihren Webserver in dieser Protokolldatei aufgezeichnet, es sei denn, Apache ist anders konfiguriert.
  • /var/log/apache2/error.log: Standardmäßig werden alle Fehler in dieser Datei aufgezeichnet. Die LogLevel-Direktive in der Apache-Konfiguration legt fest, wie detailliert die Fehlerprotokolle sein sollen.

Fazit

Jetzt, da Sie Ihren Webserver installiert haben, stehen Ihnen viele Optionen für die Art der Inhalte zur Verfügung, die Sie bereitstellen möchten, sowie für die Technologien, die Sie verwenden können, um ein reichhaltigeres Erlebnis zu schaffen.

Apache ist ein äußerst flexibler und leistungsstarker Webserver, der sich an Ihre spezifischen Anforderungen anpassen lässt. Experimentieren Sie mit virtuellen Hosts, Modulen und anderen Funktionen, um die Funktionalität Ihrer Website zu erweitern.

Jetzt 200 € Guthaben sichern

Testen Sie Ihr Setup auf ccloud³

Registrieren Sie sich in der ccloud³ und erhalten Sie 200 € Startguthaben für Ihr Projekt – z. B. für eine PostgreSQL-VM mit automatischen Backups.

centron Redaktion Technische Redaktion

Das Redaktionsteam von centron schreibt Anleitungen aus dem Betriebsalltag: getestet auf unserer eigenen Plattform, betrieben im Rechenzentrum in Hallstadt bei Bamberg.

Kategorie Linux Basics
Teilen
Noch offene Fragen?

Unser Team hilft Ihnen bei Ihrem konkreten Setup weiter – von Menschen, die die Plattform selbst betreiben.

War dieses Tutorial hilfreich?

Ihre Antwort wird anonym gespeichert und hilft uns, die Tutorials zu verbessern.

Kommentare

Noch keine Kommentare – stellen Sie die erste Frage zu diesem Tutorial.

Zum Kommentieren anmelden

Kommentare stehen centron-Kunden offen. Melden Sie sich in Ihrem Konto an, um eine Frage zu diesem Tutorial zu stellen.

Weiterlesen

Das könnte Sie auch interessieren

Jetzt kostenlos anfangen

Melden Sie sich an und erhalten Sie in den ersten 60 Tagen ein Guthaben von 200 € bei centron.

Dieses Werbeangebot gilt nur für neue Konten. Angebot ausschließlich für Gewerbetreibende.

Jetzt loslegen Sales kontaktieren