Installieren des Apache-Webservers auf Debian 11

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.

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:

Installieren Sie dann das Paket 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:

Ihre Ausgabe wird eine Liste der Anwendungsprofile sein:

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:

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

Die Ausgabe zeigt eine Liste des erlaubten HTTP-Verkehrs:

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:

sudo systemctl status apache2

Ausgabe:

● 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:

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:

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

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

Sie sollten die Standardseite von Debian 11 Apache sehen:

Standard-Apache-Seite

Diese 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:

sudo systemctl stop apache2

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

sudo systemctl start apache2

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

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:

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:

sudo systemctl disable apache2

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

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:

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:

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:

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:

nano /var/www/your_domain/index.html

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

<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:

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:

    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:

sudo a2ensite your_domain.conf

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

sudo a2dissite 000-default.conf

Testen Sie als Nächstes die Konfiguration auf Fehler:

sudo apache2ctl configtest

Sie sollten die folgende Ausgabe erhalten:

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:

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.

Kostenlosen Account erstellen

Registrieren Sie sich jetzt und erhalten Sie Zugang zu unseren Cloud Produkten.

Das könnte Sie auch interessieren: