So installieren Sie den Apache-Webserver unter Ubuntu 22.04

Einführung

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

In diesem Handbuch erfahren Sie, wie Sie einen Apache-Webserver auf Ihrem Ubuntu 22.04-Server installieren können.

Bereitstellen Sie Ihre Anwendungen von GitHub aus mit DigitalOcean App Platform. Lassen Sie DigitalOcean Ihre App skalieren.

Voraussetzungen

Bevor Sie mit diesem Handbuch beginnen, benötigen Sie einen Ubuntu 22.04-Server, der mit einem nicht-root-Benutzer mit sudo-Berechtigungen eingerichtet ist und eine Firewall aktiviert hat, um nicht notwendige Ports zu blockieren. Sie können lernen, wie dies funktioniert, indem Sie unserem Anleitung zum erstmaligen Einrichten eines Servers für Ubuntu 22.04 folgen.

Wenn Sie dies erledigt haben, melden Sie sich als Ihr 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 Ubuntu verfügbar, sodass es möglich ist, es mithilfe herkömmlicher Paketverwaltungstools zu installieren.

Beginnen Sie mit der Aktualisierung des lokalen Paketindexes, um die neuesten Upstream-Änderungen zu berücksichtigen:

  1. sudo apt update

Dann installieren Sie das Paket apache2:

  1. sudo apt install apache2

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

Schritt 2 — Anpassen der Firewall

Bevor Sie Apache testen, müssen die Firewall-Einstellungen angepasst werden, um den externen Zugriff auf die Standard-Webports zuzulassen. Wenn Sie den Anweisungen in den Voraussetzungen gefolgt sind, sollten Sie eine UFW-Firewall konfiguriert haben, um den Zugriff auf Ihren Server einzuschrä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 aus, indem Sie Folgendes ausführen:

  1. sudo ufw app list

Ihre Ausgabe wird eine Liste der Anwendungsprofile sein:

Output
Available applications: Apache Apache Full Apache Secure OpenSSH

Wie aus der Ausgabe hervorgeht, stehen drei Profile für Apache zur Verfügung:

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

Es wird empfohlen, das restriktivste Profil zu aktivieren, das den konfigurierten Datenverkehr zulässt. Da Sie in dieser Anleitung noch kein SSL für Ihren Server konfiguriert haben, müssen Sie nur den Verkehr auf Port 80 zulassen:

  1. sudo ufw allow 'Apache'

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

  1. sudo ufw status

Die Ausgabe zeigt eine Liste des erlaubten HTTP-Verkehrs an:

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

Wie aus der Ausgabe hervorgeht, 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 Ubuntu 22.04 Apache. Der Webserver wird bereits ausgeführt.

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

  1. sudo systemctl status apache2
Output
● apache2.service - The Apache HTTP Server Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor prese> Active: active (running) since Tue 2022-04-26 15:33:21 UTC; 43s ago Docs: https://httpd.apache.org/docs/2.4/ Main PID: 5089 (apache2) Tasks: 55 (limit: 1119) Memory: 4.8M CPU: 33ms CGroup: /system.slice/apache2.service ├─5089 /usr/sbin/apache2 -k start ├─5091 /usr/sbin/apache2 -k start └─5092 /usr/sbin/apache2 -k start

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

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

Versuchen Sie, folgendes am Befehlszeilenprompt Ihres Servers einzugeben:

  1. hostname -I

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

Eine weitere Option ist die Verwendung des kostenlosen icanhazip.com-Tools. Dies ist eine Website, die beim Zugriff Ihre öffentliche IP-Adresse des Computers zurückgibt, wie sie von einem anderen Ort im Internet gelesen wird:

  1. curl -4 icanhazip.com

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

http://your_server_ip

Sie sehen die Standard-Apache-Webseite von Ubuntu 22.04 wie folgt:

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

Schritt 4 — Verwalten des Apache-Prozesses

Jetzt, da Ihr Webserver läuft, lassen Sie uns einige grundlegende Verwaltungsbefehle mit systemctl überprüfen.

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

  1. sudo systemctl stop apache2

Um den Webserver zu starten, wenn er gestoppt ist, führen Sie aus:

  1. sudo systemctl start apache2

Um den Dienst zu stoppen und dann wieder zu starten, führen Sie aus:

  1. sudo systemctl restart apache2

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

  1. sudo systemctl reload apache2

Standardmäßig ist Apache so konfiguriert, dass er automatisch startet, wenn der Server hochfährt. Wenn dies nicht gewünscht ist, deaktivieren Sie dieses Verhalten durch Ausführen von:

  1. sudo systemctl disable apache2

Um den Dienst wieder so einzurichten, dass er beim Booten startet, führen Sie aus:

  1. sudo systemctl enable apache2

Apache wird jetzt automatisch gestartet, wenn der Server erneut hochfährt.

Bei Verwendung des Apache-Web-Servers 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 zu hosten. Wir werden eine Domain namens your_domain einrichten, aber Sie sollten dies durch Ihren eigenen Domainnamen ersetzen.

Info: Wenn Sie einen Domainnamen bei DigitalOcean einrichten, verweisen Sie bitte auf unsere Netzwerk-Dokumentation.

Apache auf Ubuntu 22.04 hat standardmäßig einen Serverblock aktiviert, der so konfiguriert ist, dass er Dokumente aus dem Verzeichnis /var/www/html bereitstellt. Obwohl dies gut für eine einzelne Website funktioniert, kann es unhandlich werden, wenn Sie mehrere Websites hosten. Anstatt /var/www/html zu ändern, erstellen Sie eine Verzeichnisstruktur innerhalb von /var/www für eine deine_domain-Website und lassen /var/www/html als Standardverzeichnis bestehen, das bereitgestellt wird, wenn eine Clientanfrage mit keiner anderen Website übereinstimmt.

Erstellen Sie das Verzeichnis für deine_domain wie folgt:

  1. sudo mkdir /var/www/your_domain

Danach weisen Sie dem Verzeichnis die Eigentümerschaft des Benutzers zu, unter dem Sie derzeit angemeldet sind, mit der Umgebungsvariable $USER:

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

Die Berechtigungen Ihres Web-Roots sollten korrekt sein, wenn Sie Ihren umask-Wert nicht geändert haben, der die Standarddateiberechtigungen festlegt. Um sicherzustellen, dass Ihre Berechtigungen korrekt sind und dem Eigentümer das Lesen, Schreiben und Ausführen der Dateien erlauben, während nur Lesen und Ausführen für Gruppen und andere gewährt werden, können Sie den folgenden Befehl eingeben:

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

Erstellen Sie als Nächstes eine Beispielseite index.html mit nano oder Ihrem bevorzugten Editor:

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

Fügen Sie folgendes Beispiel-HTML ein:

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

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

Um diesen Inhalt mit Apache zu bedienen, ist es erforderlich, eine virtuelle Host-Datei mit den richtigen Direktiven zu erstellen. Anstatt die Standardkonfigurationsdatei direkt unter /etc/apache2/sites-available/000-default.conf zu ändern, erstellen Sie eine neue unter /etc/apache2/sites-available/deine_domain.conf:

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

Fügen Sie den folgenden Konfigurationsblock ein, der dem Standard ähnelt, aber für Ihr neues Verzeichnis und Ihre Domain 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>

Beachten Sie, dass wir das DocumentRoot auf unser neues Verzeichnis und ServerAdmin auf eine E-Mail aktualisiert haben, auf die der Administrator der deine_domain-Website zugreifen kann. Wir haben auch zwei Direktiven hinzugefügt: ServerName, das die Basisdomain festlegt, die dieser virtuellen Host-Definition entspricht, und ServerAlias, das weitere Namen definiert, die übereinstimmen, als wären sie der Basisname.

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

Aktivieren Sie nun die Datei mit dem a2ensite-Tool:

  1. sudo a2ensite your_domain.conf

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

  1. sudo a2dissite 000-default.conf

Testen Sie als nächstes auf Konfigurationsfehler:

  1. sudo apache2ctl configtest

Sie sollten folgende Ausgabe erhalten:

Output
. . . Syntax OK

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

  1. sudo systemctl restart apache2

Apache bedient nun Ihren Domainnamen. Sie können dies testen, indem Sie zu http://deine_domain navigieren, wo Sie etwas Ähnliches wie folgt sehen werden:

Schritt 6 – Vertrautwerden mit wichtigen Apache-Dateien und Verzeichnissen

Jetzt, da Sie wissen, wie Sie den Apache-Dienst selbst verwalten können, sollten Sie sich ein paar Minuten Zeit nehmen, um sich mit einigen wichtigen Verzeichnissen und Dateien vertraut zu machen.

Inhalt

  • /var/www/html: Der tatsächliche Webinhalt, der standardmäßig nur aus der Standard-Apache-Seite besteht, die Sie zuvor gesehen haben, wird aus dem Verzeichnis /var/www/html bereitgestellt. Dies kann durch Ändern von 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. Diese kann geändert werden, um Änderungen an der globalen Apache-Konfiguration vorzunehmen. Diese Datei ist dafür verantwortlich, viele der anderen Dateien im Konfigurationsverzeichnis zu laden.
  • /etc/apache2/ports.conf: Diese Datei legt die Ports fest, auf denen Apache hört. Standardmäßig hört Apache auf Port 80 und zusätzlich auf Port 443, wenn ein Modul aktiviert ist, das SSL-Fähigkeiten bereitstellt.
  • /etc/apache2/sites-available/: Das Verzeichnis, in dem per-Website-Virtual Hosts gespeichert werden können. Apache verwendet die Konfigurationsdateien in diesem Verzeichnis nicht, es sei denn, sie sind mit dem Verzeichnis sites-enabled verknüpft. Typischerweise erfolgt die gesamte Serverblockkonfiguration in diesem Verzeichnis und wird dann durch Verknüpfen mit dem anderen Verzeichnis mit dem Befehl a2ensite aktiviert.
  • /etc/apache2/sites-enabled/: Das Verzeichnis, in dem aktivierte per-Website-Virtual Hosts gespeichert sind. Normalerweise werden diese durch Verknüpfen mit Konfigurationsdateien im Verzeichnis sites-available erstellt, und Apache liest die Konfigurationsdateien und Verknüpfungen in diesem Verzeichnis beim Starten oder Neuladen, um eine vollständige Konfiguration zu erstellen.
  • /etc/apache2/conf-available/, /etc/apache2/conf-enabled/: Diese Verzeichnisse haben die gleiche Beziehung wie die Verzeichnisse 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 dem Befehl a2disconf deaktiviert werden.
  • /etc/apache2/mods-available/ und /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 jeder Anforderung 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 Direktive LogLevel in der Apache-Konfiguration legt fest, wie viele Details die Fehlerprotokolle enthalten.

Abschluss

Jetzt, da Sie Ihren Webserver installiert haben, haben Sie viele Möglichkeiten für den Typ des Inhalts, den Sie bereitstellen können, und die Technologien, die Sie verwenden können, um ein umfassenderes Erlebnis zu schaffen.

Wenn Sie einen umfassenderen Anwendungsstapel erstellen möchten, können Sie diesen Artikel lesen über wie man einen LAMP-Stack auf Ubuntu 22.04 konfiguriert

Source:
https://www.digitalocean.com/community/tutorials/how-to-install-the-apache-web-server-on-ubuntu-22-04