Tutorial

So installieren Sie den Apache-Webserver unter Ubuntu 20.04

Published on May 28, 2020
Default avatar

By Erin Glass

Senior Manager, DevEd

Deutsch
So installieren Sie den Apache-Webserver unter Ubuntu 20.04

Einführung

Der Apache-HTTP-Server ist der am häufigsten verwendete Webserver der Welt. Er bietet viele leistungsstarke Funktionen, darunter dynamisch ladbare Module, robuste Medienunterstützung und eine umfassende Integration mit anderer gängiger Software.

In diesem Leitfaden erklären wir, wie Sie einen Apache-Webserver auf Ihrem Ubuntu 20.04-Server installieren können.

Voraussetzungen

Bevor Sie mit diesem Leitfaden beginnen, sollten Sie auf Ihrem Server einen regulären non-root user mit sudo-Berechtigungen konfiguriert haben. Außerdem müssen Sie eine grundlegende Firewall aktivieren, um nicht wesentliche Ports zu blockieren. Sie können lernen, wie Sie ein reguläres Benutzerkonto konfigurieren und eine Firewall für Ihren Server einrichten, indem Sie unserem Leitfaden zur Ersteinrichtung des Servers für Ubuntu 20.04 folgen.

Wenn Sie über ein Konto verfügen, melden Sie sich zunächst als non-root user an.

Schritt 1 — Installieren von Apache

Apache ist innerhalb der Standard-Software-Repositorys von Ubuntu verfügbar und kann mit herkömmlichen Paketverwaltungstools installiert werden.

Beginnen Sie damit, den lokalen Paketindex zu aktualisieren, um alle neuen Änderungen im Upstream widerzuspiegeln:

  1. sudo apt update

Installieren Sie dann das Paket apache2:

  1. sudo apt install apache2

Nach der Bestätigung der Installation wird apt Apache und alle erforderlichen Abhängigkeiten installieren.

Schritt 2 — Anpassen der Firewall

Vor dem Testen von Apache müssen die Firewall-Einstellungen geändert werden, um den externen Zugriff auf die Standard-Webports zu ermöglichen. Angenommen, 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 Anwendungsprofile ufw auf, indem Sie Folgendes eingeben:

  1. sudo ufw app list

Sie erhalten eine Liste der Anwendungsprofile:

Output
Available applications: Apache Apache Full Apache Secure OpenSSH

Wie durch die Ausgabe angezeigt, gibt es drei Profile für Apache:

  • Apache: Dieses Profil öffnet nur Port 80 (normaler, nicht verschlüsselter Webverkehr).
  • Apache Full: Dieses Profil öffnet sowohl Port 80 (normaler, unverschlüsselter Webverkehr) als auch Port 443 (mit TLS/SSL verschlüsselter Verkehr).
  • Apache Secure: Dieses Profil öffnet nur Port 443 (mit TLS/SSL verschlüsselter Verkehr).

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

  1. sudo ufw allow 'Apache'

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

  1. sudo ufw status

Die Ausgabe stellt eine Liste mit erlaubtem HTTP-Datenverkehr bereit:

Output
Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere Apache ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) Apache (v6) ALLOW Anywhere (v6)

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

Schritt 3 — Testen Ihres Webservers

Am Ende des Installationsprozesses startet Ubuntu 20.04 Apache. Der Webserver sollte bereits ausgeführt sein.

Überprüfen Sie mit dem systemd init-System, um sicherzustellen, dass der Dienst ausgeführt wird, indem Sie Folgendes eingeben:

  1. 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 Thu 2020-04-23 22:36:30 UTC; 20h ago Docs: https://httpd.apache.org/docs/2.4/ Main PID: 29435 (apache2) Tasks: 55 (limit: 1137) Memory: 8.0M CGroup: /system.slice/apache2.service ├─29435 /usr/sbin/apache2 -k start ├─29437 /usr/sbin/apache2 -k start └─29438 /usr/sbin/apache2 -k start

Wie durch diese Ausgabe bestätigt, ist der Dienst erfolgreich gestartet. Der beste Weg, dies zu testen, besteht jedoch darin, eine Seite von Apache anzufordern.

Öffnen Sie die Standardstartseite von Apache, 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 von der Befehlszeile auf verschiedene Arten abrufen.

Geben Sie dies bei der Eingabeaufforderung Ihres Servers ein:

  1. hostname -I

Sie erhalten einige Adressen, die durch Leerzeichen getrennt sind. Sie können jede in Ihrem Webbrowser ausprobieren, um zu sehen, ob sie funktionieren.

Eine andere Möglichkeit ist die Verwendung des Icanhazip-Tools, mit dem Sie Ihre öffentliche IP-Adresse erhalten, die von einem anderen Ort im Internet gelesen wurde:

  1. curl -4 icanhazip.com

Wenn Sie über die IP-Adresse Ihres Servers verfügen, geben Sie sie in die Adressleiste Ihres Browsers ein:

http://your_server_ip

Sie sollten die Apache-Standardseite für Ubuntu 20.04 sehen:

Apache Standardseite

Diese Seite zeigt an, dass Apache richtig funktioniert. Sie enthält auch einige grundlegende Informationen zu wichtigen Apache-Dateien und Verzeichnispositionen.

Schritt 4 — Verwalten des Apache-Prozesses

Nachdem Sie Ihren Webserver nun ausgeführt haben, gehen wir nun mit systemctl über einige grundlegende Verwaltungsbefehle.

Um Ihren Webserver zu stoppen, geben Sie Folgendes ein:

  1. sudo systemctl stop apache2

Um den Webserver zu starten, wenn er angehalten wurde, geben Sie Folgendes ein:

  1. sudo systemctl start apache2

Um den Dienst zu stoppen und erneut zu starten, geben Sie Folgendes ein:

  1. sudo systemctl restart apache2

Wenn Sie nur Konfigurationsänderungen vornehmen, kann Apache oft neu laden, ohne Verbindungen zu beseitigen. Dazu verwenden Sie diesen Befehl:

  1. sudo systemctl reload apache2

Standardmäßig ist Apache so konfiguriert, dass es beim Booten des Servers automatisch startet. Wenn Sie dieses Verhalten nicht wünschen, können Sie es durch folgende Eingabe deaktivieren:

  1. sudo systemctl disable apache2

Geben Sie Folgendes ein, um den Dienst beim Booten wieder zu aktivieren:

  1. sudo systemctl enable apache2

Apache sollte jetzt automatisch gestartet werden, wenn der Server erneut gestartet wird.

Schritt 5 — Einrichten von virtuellen Hosts (Empfohlen)

Wenn Sie den Apache-Webserver verwenden, können Sie virtuelle Hosts (ähnlich wie Serverblocks in Nginx) verwenden, um Konfigurationsinformationen mit einzuschließen und mehr als eine Domäne auf einem einzigen Server zu hosten. Wir richten eine Domäne namens your_domain ein, aber Sie sollten diesen Namen durch Ihren eigenen Domänennamen ersetzen. Wenn Sie mit DigitalOcean einen Domänennamen einrichten, lesen Sie bitte unsere Netzwerkdokumentation.

Apache unter Ubuntu 20.04 hat einen Serverblock, der standardmäßig aktiviert und so konfiguriert ist, dass er Dokumente aus dem /var/www/html-Verzeichnis bereitstellt. Das eignet sich gut für eine Site, kann aber umständlich werden, wenn Sie mehrere Sites hosten. Statt /var/www/html zu ändern, erstellen wir eine Verzeichnisstruktur innerhalb /var/www für eine Seite your_domain und lassen dabei /var/www/html als Standardverzeichnis, das bereitgestellt wird, wenn eine Client-Anfrage keine übereinstimmenden Sites hat.

Erstellen Sie das Verzeichnis für your_domain wie folgt:

  1. sudo mkdir /var/www/your_domain

Weisen Sie als Nächstes das Eigentum am Verzeichnis mit der $USER Umgebungsvariablen zu:

  1. sudo chown -R $USER:$USER /var/www/your_domain

Die Berechtigungen Ihrer Webstämme sollten korrekt sein, wenn Sie Ihren umask-Wert nicht geändert haben, wodurch die Standarddateiberechtigungen festgelegt werden. Um sicherzustellen, dass Ihre Berechtigungen korrekt sind und der Eigentümer die Dateien lesen, schreiben und ausführen kann, während Gruppen und anderen nur Lese- und Ausführungsberechtigungen erteilt werden, können Sie den folgenden Befehl eingeben:

  1. sudo chmod -R 755 /var/www/your_domain

Erstellen Sie als Nächstes eine index.html Beispielsseite durch die Verwendung von nano oder Ihrem bevorzugten Texteditor:

  1. sudo nano /var/www/your_domain/index.html

Fügen Sie dann das folgende HTML-Beispiel hinzu:

/var/www/your_domain/index.html
<html>
    <head>
        <title>Welcome to Your_domain!</title>
    </head>
    <body>
        <h1>Success!  The your_domain virtual host is working!</h1>
    </body>
</html>

Wenn Sie fertig sind, speichern und schließen Sie die Datei.

Sie müssen eine virtuelle Host-Datei mit den richtigen Richtlinien erstellen, damit Apache diesen Inhalt bereitstellen kann. Statt die Standardkonfigurationsdatei direkt unter /etc/apache2/sites-available/000-default.conf zu ändern, erstellen wir eine neue in /etc/apache2/sites-available/your_domain.conf:

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

Fügen Sie den folgenden Konfigurationsblock ein, der dem Standard ähnlich ist, aber für unser neues Verzeichnis und den Domänennamen aktualisiert wurde:

/etc/apache2/sites-available/your_domain.conf
<VirtualHost *:80>
    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
</VirtualHost>

Sie werden feststellen, dass wir DocumentRoot auf unser neues Verzeichnis und ServerAdmin auf eine E-Mail aktualisiert haben, auf die der Site-Administator von your_domain zugreifen kann. Wir haben auch zwei Richtlinien hinzugefügt: ServerName, der die Basisdomäne festlegt, die zu dieser virtuellen Host-Definition passen sollte, und ServerAlias, der weitere Namen definiert, die wie der Basisname passen sollten.

Wenn Sie fertig sind, speichern und schließen Sie die Datei.

Aktivieren wir jetzt die Datei über das Tool a2ensite:

  1. sudo a2ensite your_domain.conf

Deaktivieren Sie die unter 000-default.conf definierte Standard-Site:

  1. sudo a2dissite 000-default.conf

Als Nächstes testen wir auf Konfigurationsfehler:

  1. sudo apache2ctl configtest

Sie sollten die folgende Ausgabe sehen:

Output
Syntax OK

Starten Sie Apache neu, um Ihre Änderungen zu implementieren.

  1. sudo systemctl restart apache2

Apache sollte jetzt für Ihren Domänennamen eingerichtet sein. Sie können dies testen, indem Sie zu http://your_domain navigieren, wo Sie etwas Ähnliches wie Folgendes sehen sollten:

Beispiel für einen virtuellen Apache-Host

Schritt 6 – Kennenlernen der wichtigen Apache-Dateien und -Verzeichnisse

Nachdem Sie nun wissen, wie Sie den Apache-Dienst verwalten, nehmen Sie sich einige Minuten Zeit, um sich mit einigen wichtigen Verzeichnissen und Dateien vertraut zu machen.

Inhalt

  • /var/www/html: Der eigentliche Web-Inhalt, der standardmäßig nur aus der Apache-Standardseite besteht, die Sie zuvor gesehen haben, wird aus dem Verzeichnis /var/www/html bedient. Dies kann durch die Anpassung der Konfigurationsdateien von Apache geändert werden.

Server-Konfiguration

  • /etc/apache2: Das Apache-Konfigurationsverzeichnis. Hier befinden sich alle Konfigurationsdateien von Apache.
  • /etc/apache2/apache2.conf: Die Hauptkonfigurationsdatei von Apache. Diese kann modifiziert werden, um die globale Konfiguration von Apache zu ändern. Diese Datei ist für das Laden vieler der anderen Dateien im Konfigurationsverzeichnis verantwortlich.
  • /etc/apache2/ports.conf: Diese Datei gibt die Ports an, die Apache überwacht. Standardmäßig überwacht Apache Port 80 und zusätzlich Port 443, wenn ein Modul mit SSL-Funktionen aktiviert ist.
  • /etc/apache2/sites-available/: Das Verzeichnis, in dem virtuelle Hosts pro Standort gespeichert werden können. Apache verwendet die in diesem Verzeichnis gefundenen Konfigurationsdateien nicht, es sei denn, sie sind mit dem Verzeichnis sites-enabled verknüpft. In der Regel wird die gesamte Serverblockkonfiguration in diesem Verzeichnis durchgeführt und dann durch Verknüpfen mit dem anderen Verzeichnis mit dem Befehl a2ensite aktiviert.
  • /etc/apache2/sites-enabled/: Das Verzeichnis, in dem aktivierte virtuelle Hosts pro Standort 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 gestartet oder neu geladen wird, um eine vollständige Konfiguration zu kompilieren.
  • /etc/apache2/conf-available/, /etc/apache2/conf-enabled/: Diese Verzeichnisse verfügen über die gleiche Beziehung wie die Verzeichnisse sites-available- und sites-enabled, dienen aber zur Speicherung von Konfigurationsfragmenten, die nicht in einen 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 jeweils die verfügbaren und aktivierten Module. Dateien, die in .load enden, enthalten Fragmente zum Laden bestimmter Module, während in .conf endende Dateien die Konfiguration für diese Module enthalten. Module können mit dem Befehl a2enmod und a2dismod aktiviert und deaktiviert werden.

Serverprotokolle

  • /var/log/apache2/access.log: Standardmäßig wird jede Anforderung 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 LogLevel-Anweisung in der Apache-Konfiguration gibt an, wie detailliert die Fehlerprotokolle sein werden.

Zusammenfassung

Nachdem Sie Ihren Webserver installiert haben, haben Sie viele Optionen für die Art des Inhalts und die Technologien, die Sie verwenden möchten, um eine umfassendere Benutzererfahrung zu erzielen.

Wenn Sie einen vollständigeren Anwendungsstapel erstellen möchten, lesen Sie diesen Artikel unter So konfiguriert man einen LAMP-Stapel unter Ubuntu 20.04

Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.

Learn more about us


About the authors
Default avatar

Senior Manager, DevEd

Open source advocate and lover of education, culture, and community.

Still looking for an answer?

Ask a questionSearch for more help

Was this helpful?
 
1 Comments


This textbox defaults to using Markdown to format your answer.

You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!

Awesome, Thanks.

Try DigitalOcean for free

Click below to sign up and get $200 of credit to try our products over 60 days!

Sign up

Join the Tech Talk
Success! Thank you! Please check your email for further details.

Please complete your information!

Get our biweekly newsletter

Sign up for Infrastructure as a Newsletter.

Hollie's Hub for Good

Working on improving health and education, reducing inequality, and spurring economic growth? We'd like to help.

Become a contributor

Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.

Welcome to the developer cloud

DigitalOcean makes it simple to launch in the cloud and scale up as you grow — whether you're running one virtual machine or ten thousand.

Learn more
DigitalOcean Cloud Control Panel