So installieren Sie den Apache-Webserver unter Debian 10

Einführung

Der Apache HTTP-Server ist der weltweit am häufigsten verwendete Webserver. Es bietet viele leistungsstarke Funktionen, einschließlich dynamisch ladbarer Module, robuster Medienunterstützung und umfassender Integration in andere gängige Software.

In diesem Handbuch wird erklärt, wie Sie einen Apache-Webserver auf Ihrem Debian 10-Server installieren.

Voraussetzungen

Bevor Sie mit diesem Handbuch beginnen, sollten Sie einen normalen Benutzer ohne Rootberechtigung mit Sudo-Berechtigungen auf Ihrem Server haben. Darüber hinaus müssen Sie eine Basis-Firewall aktivieren, um nicht erforderliche Ports zu blockieren. Informationen zum Konfigurieren eines normalen Benutzerkontos und zum Einrichten einer Firewall für Ihren Server finden Sie unter initial server setup Anleitung für Debian 10.

Wenn Sie über ein Konto verfügen, melden Sie sich als Benutzer ohne Rootberechtigung an, um zu beginnen.

Schritt 1 - Installieren von Apache

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

Beginnen wir mit der Aktualisierung des lokalen Paketindex, um die neuesten Upstream-Änderungen widerzuspiegeln:

sudo apt update

Dann installieren Sie das + apache2 + Paket:

sudo apt install apache2

Nach der Bestätigung der Installation installiert + apt + Apache und alle erforderlichen Abhängigkeiten.

Schritt 2 - Anpassen der Firewall

Vor dem Testen von Apache müssen die Firewall-Einstellungen geändert werden, damit von außen auf die Standard-Webports zugegriffen werden kann. Vorausgesetzt, Sie haben die Anweisungen in den Voraussetzungen befolgt, sollte eine UFW-Firewall konfiguriert sein, um den Zugriff auf Ihren Server einzuschränken.

Während der Installation registriert sich Apache bei UFW, um einige Anwendungsprofile bereitzustellen, mit denen der Zugriff auf Apache über die Firewall aktiviert oder deaktiviert werden kann.

Listen Sie die + ufw + - Anwendungsprofile auf, indem Sie Folgendes eingeben:

sudo ufw app list

Sie sehen eine Liste der Anwendungsprofile:

OutputAvailable applications:
 AIM
 Bonjour
 CIFS
. . .
WWW
WWW Cache
WWW Full
WWW Secure
. . .

Die Apache-Profile beginnen mit WWW:

  • * WWW *: Dieses Profil öffnet nur Port 80 (normaler, unverschlüsselter Webverkehr)

  • * WWW-Cache *: Dieses Profil öffnet nur Port 8080 (manchmal für Caching und Web-Proxys verwendet)

  • * WWW voll *: Dieses Profil öffnet sowohl Port 80 (normaler, unverschlüsselter Webverkehr) als auch Port 443 (TLS / SSL-verschlüsselter Verkehr).

  • * WWW Secure *: Dieses Profil öffnet nur Port 443 (TLS / SSL-verschlüsselter Verkehr)

Es wird empfohlen, das restriktivste Profil zu aktivieren, das den von Ihnen konfigurierten Datenverkehr weiterhin zulässt. Da wir in diesem Handbuch noch kein SSL für unseren Server konfiguriert haben, müssen wir nur den Datenverkehr auf Port 80 zulassen:

sudo ufw allow 'WWW'

Sie können die Änderung überprüfen, indem Sie Folgendes eingeben:

sudo ufw status

In der angezeigten Ausgabe sollte HTTP-Verkehr zulässig sein:

OutputStatus: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
WWW                        ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)
WWW (v6)                   ALLOW       Anywhere (v6)

Wie Sie sehen, wurde das Profil aktiviert, um den Zugriff auf den Webserver zu ermöglichen.

Schritt 3 - Überprüfen Sie Ihren Webserver

Am Ende des Installationsprozesses startet Debian 10 Apache. Der Webserver sollte bereits in Betrieb sein.

Überprüfen Sie mit dem Init-System "+ systemd +", ob der Dienst ausgeführt wird, indem Sie Folgendes eingeben:

sudo systemctl status apache2
Output● apache2.service - The Apache HTTP Server
  Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
  Active: active (running) since Fri 2019-07-19 15:33:01 UTC; 4min 13s ago
    Docs: https://httpd.apache.org/docs/2.4/

. . .

Jul 19 15:33:01 debssh systemd[1]: Starting The Apache HTTP Server...
Jul 19 15:33:01 debssh apachectl[2791]: AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive global
Jul 19 15:33:01 debssh systemd[1]: Started The Apache HTTP Server.

Wie Sie dieser Ausgabe entnehmen können, wurde der Dienst anscheinend erfolgreich gestartet. Der beste Weg, dies zu testen, ist jedoch, eine Seite von Apache anzufordern.

Sie können auf die Standard-Apache-Startseite zugreifen, um zu bestätigen, dass die Software über Ihre IP-Adresse ordnungsgemäß ausgeführt wird. Wenn Sie die IP-Adresse Ihres Servers nicht kennen, können Sie sie auf verschiedene Arten über die Befehlszeile abrufen.

Geben Sie dies an der Eingabeaufforderung Ihres Servers ein:

hostname -I

Sie erhalten einige durch Leerzeichen getrennte Adressen zurück. Sie können jeden in Ihrem Webbrowser ausprobieren, um zu sehen, ob er funktioniert.

Eine Alternative ist die Verwendung des Tools "+ curl +", mit dem Sie Ihre öffentliche IP-Adresse von einem anderen Ort im Internet aus sehen können.

Installieren Sie zuerst + curl + mit + apt +:

sudo apt install curl

Verwenden Sie dann "+ curl +", um icanhazip.com mit IPv4 abzurufen:

curl -4 icanhazip.com

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

http://

Sie sollten die Standard-Debian 10-Apache-Webseite sehen:

image: http: //assets.digitalocean.com/how-to-install-lamp-debian-9/small_apache_default_debian9.png [Apache-Standardseite]

Diese Seite zeigt an, dass Apache korrekt funktioniert. Es enthält auch einige grundlegende Informationen zu wichtigen Apache-Dateien und -Verzeichnissen.

Schritt 4 - Verwalten des Apache-Prozesses

Nachdem Sie Ihren Webserver eingerichtet haben, gehen wir einige grundlegende Verwaltungsbefehle durch.

Geben Sie Folgendes ein, um Ihren Webserver zu stoppen:

sudo systemctl stop apache2

Geben Sie Folgendes ein, um den Webserver nach dem Stoppen zu starten:

sudo systemctl start apache2

Geben Sie Folgendes ein, um den Dienst zu beenden und erneut zu starten:

sudo systemctl restart apache2

Wenn Sie lediglich Konfigurationsänderungen vornehmen, kann Apache häufig neu laden, ohne dass Verbindungen unterbrochen werden. Verwenden Sie dazu diesen Befehl:

sudo systemctl reload apache2

Standardmäßig ist Apache so konfiguriert, dass es automatisch startet, wenn der Server startet. Wenn Sie dies nicht möchten, deaktivieren Sie dieses Verhalten, indem Sie Folgendes eingeben:

sudo systemctl disable apache2

Geben Sie Folgendes ein, um den Dienst wieder für den Start beim Systemstart zu aktivieren:

sudo systemctl enable apache2

Apache sollte jetzt automatisch starten, wenn der Server erneut startet.

Schritt 5 - Einrichten virtueller 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 Domäne von einem einzelnen Server aus zu hosten. In den folgenden Befehlen * ersetzen Sie * + Ihre_Domäne + * durch Ihren eigenen Domainnamen *. Weitere Informationen zum Einrichten eines Domainnamens mit DigitalOcean finden Sie unter Introduction to DigitalOcean DNS.

In Apache unter Debian 10 ist standardmäßig ein Serverblock aktiviert, der für die Bereitstellung von Dokumenten aus dem Verzeichnis "+ / var / www / html " konfiguriert ist. Dies funktioniert zwar gut für eine einzelne Site, kann jedoch unhandlich werden, wenn Sie mehrere Sites hosten. Anstatt " / var / www / html " zu ändern, erstellen wir eine Verzeichnisstruktur in " / var / www " für unsere " your_domain " - Site, wobei " / var / www / html +" als Standardverzeichnis beibehalten wird Wird bedient, wenn eine Client-Anfrage mit keiner anderen Site übereinstimmt.

Erstellen Sie das Verzeichnis für "+ your_domain " wie folgt, indem Sie das Flag " -p +" verwenden, um alle erforderlichen übergeordneten Verzeichnisse zu erstellen:

sudo mkdir -p /var/www/

Ordnen Sie als Nächstes den Besitz des Verzeichnisses mit der Umgebungsvariablen "+ $ USER +" zu:

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

Die Berechtigungen Ihrer Webstammverzeichnisse sollten korrekt sein, wenn Sie Ihren Wert für "+ Unmask +" nicht geändert haben. Sie können dies jedoch sicherstellen, indem Sie Folgendes eingeben:

sudo chmod -R 755 /var/www/

Als nächstes erstellen Sie eine Beispielseite "+ index.html" mit "+ nano +" oder Ihrem bevorzugten Editor:

nano /var/www//index.html

Fügen Sie im Inneren den folgenden Beispiel-HTML-Code hinzu:

/var/www/your_domain/index.html

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

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

Damit Apache diesen Inhalt bereitstellen kann, muss eine virtuelle Host-Datei mit den richtigen Anweisungen erstellt werden. Anstatt die Standardkonfigurationsdatei unter "+ / etc / apache2 / sites-available / 000-default.conf " direkt zu ändern, erstellen wir eine neue unter " / etc / apache2 / sites-available / .conf +":

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

Fügen Sie den folgenden Konfigurationsblock ein, der dem Standardblock ähnelt, jedoch für unser neues Verzeichnis und unseren neuen Domänennamen aktualisiert wurde:

/etc/apache2/sites-available/your_domain.conf

<VirtualHost *:80>
   ServerAdmin
   ServerName
   ServerAlias
   DocumentRoot /var/www/
   ErrorLog ${APACHE_LOG_DIR}/error.log
   CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Beachten Sie, dass wir "+ DocumentRoot " in unserem neuen Verzeichnis und " ServerAdmin " in einer E-Mail aktualisiert haben, auf die der Site-Administrator " Ihre_Domäne " zugreifen kann. Wir haben auch zwei Direktiven hinzugefügt: " ServerName ", mit der die Basisdomäne festgelegt wird, die für diese virtuelle Hostdefinition passen soll, und " ServerAlias ​​+", mit der weitere Namen definiert werden, die übereinstimmen sollen, als wären sie der Basisname.

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

Aktivieren Sie die Datei mit dem Tool "+ a2ensite +":

sudo a2ensite .conf

Deaktivieren Sie die in "+ 000-default.conf +" definierte Standardwebsite:

sudo a2dissite 000-default.conf

Als Nächstes testen wir, ob Konfigurationsfehler vorliegen:

sudo apache2ctl configtest

Sie sollten die folgende Ausgabe sehen:

OutputAH00558: 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 Ihre Änderungen zu implementieren:

sudo systemctl restart apache2

Apache sollte nun Ihren Domainnamen bedienen. Sie können dies testen, indem Sie zu "+ http: // +" navigieren, wo Sie ungefähr Folgendes sehen sollten:

image: https: //assets.digitalocean.com/articles/apache_virt_hosts_1404/example.png [Beispiel für einen virtuellen Apache-Host]

Schritt 6 - Machen Sie sich mit wichtigen Apache-Dateien und -Verzeichnissen vertraut

Nachdem Sie nun wissen, wie der Apache-Dienst selbst verwaltet wird, sollten Sie sich einige Minuten Zeit nehmen, um sich mit einigen wichtigen Verzeichnissen und Dateien vertraut zu machen.

Inhalt

  • + / var / www / html: Der eigentliche Webinhalt, der standardmäßig nur aus der zuvor angezeigten Apache-Standardseite besteht, wird aus dem Verzeichnis` + / var / www / html` bereitgestellt. Dies kann durch Ändern der Apache-Konfigurationsdateien geändert werden.

Serverkonfiguration

  • + / etc / apache2 +: Das Apache-Konfigurationsverzeichnis. Alle Apache-Konfigurationsdateien befinden sich hier.

  • + / etc / apache2 / apache2.conf +: Die Haupt-Apache-Konfigurationsdatei. Dies kann geändert werden, um Änderungen an der globalen Apache-Konfiguration vorzunehmen. Diese Datei ist für das Laden vieler anderer Dateien im Konfigurationsverzeichnis verantwortlich.

  • + / etc / apache2 / ports.conf +: Diese Datei gibt die Ports an, auf denen Apache empfangsbereit ist. Standardmäßig überwacht Apache Port 80 und zusätzlich Port 443, wenn ein Modul aktiviert ist, das SSL-Funktionen bereitstellt.

  • + / 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 durchgeführt und anschließend durch Verknüpfen mit dem Befehl + a2ensite + mit dem anderen Verzeichnis aktiviert.

  • + / etc / apache2 / sites-enabled / +: Das Verzeichnis, in dem aktivierte virtuelle Hosts pro Site gespeichert sind. In der Regel werden diese durch Verknüpfen mit Konfigurationsdateien erstellt, die sich im Verzeichnis "+ sites-available " mit " a2ensite +" befinden. Apache liest die Konfigurationsdateien und Links in diesem Verzeichnis, wenn es startet oder neu lädt, um eine vollständige Konfiguration zu kompilieren.

  • + / etc / apache2 / conf-available / +, + / etc / apache2 / conf-enabled / +: Diese Verzeichnisse haben dieselbe Beziehung wie die Verzeichnisse + sites-available + und + sites-enabled + , werden jedoch zum Speichern von Konfigurationsfragmenten verwendet, die nicht zu einem virtuellen Host gehören. Dateien im Verzeichnis + conf-available + können mit dem Befehl + a2enconf + aktiviert und mit dem Befehl + a2disconf + deaktiviert werden.

  • + / etc / apache2 / mods-available / +, + / etc / apache2 / mods-enabled / +: Diese Verzeichnisse enthalten die verfügbaren bzw. aktivierten Module. Dateien, die auf "+ .load " enden, enthalten Fragmente zum Laden bestimmter Module, während Dateien, die auf " .conf " enden, die Konfiguration für diese Module enthalten. Module können mit den Befehlen ` a2enmod ` und ` a2dismod +` aktiviert und deaktiviert werden.

Server-Protokolle

  • + / var / log / apache2 / access.log +: Standardmäßig wird jede Anfrage an Ihren Webserver in dieser Protokolldatei aufgezeichnet, sofern Apache nicht anders konfiguriert ist.

  • + / var / log / apache2 / error.log +: Standardmäßig werden alle Fehler in dieser Datei aufgezeichnet. Die Anweisung + LogLevel + in der Apache-Konfiguration gibt an, wie viele Details die Fehlerprotokolle enthalten.

Fazit

Nachdem Sie Ihren Webserver installiert haben, stehen Ihnen zahlreiche Optionen für die Art des Inhalts und die Technologien zur Verfügung, mit denen Sie eine umfassendere Erfahrung erzielen können.

Wenn Sie einen vollständigeren Anwendungsstapel erstellen möchten, lesen Sie diesen Artikel unter https://www.digitalocean.com/community/tutorials/how-to-install-linux-apache-mariadb-php-lamp -stack-on-debian-10 [wie man einen LAMP-Stack unter Debian 10 konfiguriert].