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:
Dann installieren Sie das Paket 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:
Ihre Ausgabe wird eine Liste der Anwendungsprofile sein:
OutputAvailable 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 Port80
(normaler, unverschlüsselter Webverkehr).Apache Full
: Dieses Profil öffnet sowohl den Port80
(normaler, unverschlüsselter Webverkehr) als auch den Port443
(TLS/SSL-verschlüsselter Verkehr).Apache Secure
: Dieses Profil öffnet nur den Port443
(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:
Sie können die Änderung überprüfen, indem Sie den Status überprüfen:
Die Ausgabe zeigt eine Liste des erlaubten HTTP-Verkehrs an:
OutputStatus: 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:
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:
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:
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:
Um den Webserver zu starten, wenn er gestoppt ist, führen Sie aus:
Um den Dienst zu stoppen und dann wieder zu starten, führen Sie aus:
Wenn Sie nur Konfigurationsänderungen vornehmen, kann Apache oft neu geladen werden, ohne Verbindungen zu trennen. Verwenden Sie dazu den folgenden Befehl:
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:
Um den Dienst wieder so einzurichten, dass er beim Booten startet, führen Sie aus:
Apache wird jetzt automatisch gestartet, wenn der Server erneut hochfährt.
Schritt 5 — Einrichten von Virtuellen Hosts (Empfohlen)
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:
Danach weisen Sie dem Verzeichnis die Eigentümerschaft des Benutzers zu, unter dem Sie derzeit angemeldet sind, mit der Umgebungsvariable $USER
:
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:
Erstellen Sie als Nächstes eine Beispielseite index.html
mit nano
oder Ihrem bevorzugten Editor:
Fügen Sie folgendes Beispiel-HTML ein:
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
:
Fügen Sie den folgenden Konfigurationsblock ein, der dem Standard ähnelt, aber für Ihr neues Verzeichnis und Ihre Domain aktualisiert wurde:
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:
Deaktivieren Sie die Standardseite, die in 000-default.conf
definiert ist:
Testen Sie als nächstes auf Konfigurationsfehler:
Sie sollten folgende Ausgabe erhalten:
Output. . .
Syntax OK
Starten Sie Apache neu, um Ihre Änderungen zu implementieren:
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 Port80
und zusätzlich auf Port443
, 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 Verzeichnissites-enabled
verknüpft. Typischerweise erfolgt die gesamte Serverblockkonfiguration in diesem Verzeichnis und wird dann durch Verknüpfen mit dem anderen Verzeichnis mit dem Befehla2ensite
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 Verzeichnissites-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 Verzeichnissesites-available
undsites-enabled
, werden jedoch verwendet, um Konfigurationsfragmente zu speichern, die nicht zu einem virtuellen Host gehören. Dateien im Verzeichnisconf-available
können mit dem Befehla2enconf
aktiviert und mit dem Befehla2disconf
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 Befehlena2enmod
unda2dismod
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 DirektiveLogLevel
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