Einführung
Der Apache HTTP-Server ist der weltweit am häufigsten verwendete Webserver. Es bietet viele leistungsstarke Funktionen, darunter dynamisch ladbare Module, robuste Medienunterstützung und umfangreiche Integration in andere gängige Software.
In diesem Handbuch erklären wir, wie Sie einen Apache-Webserver auf Ihrem Ubuntu 20.04-Server installieren.
Voraussetzungen
Bevor Sie mit diesem Handbuch beginnen, sollten Sie einen regulären, Nicht-Root-Benutzer mit sudo-Rechten auf Ihrem Server konfiguriert haben., Darüber hinaus 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 Initial Server Setup Guide für Ubuntu 20.04 folgen.
Wenn Sie ein Konto zur Verfügung haben, melden Sie sich als Nicht-Root-Benutzer zu beginnen.
Schritt 1-Apache installieren
Apache ist in den Standard-Software-Repositorys von Ubuntu verfügbar und ermöglicht die Installation mit herkömmlichen Paketverwaltungstools.,
Beginnen wir mit der Aktualisierung des lokalen Paketindex, um die neuesten Upstream-Änderungen widerzuspiegeln:
- sudo apt update
Installieren Sie dann das apache2
Paket:
- sudo apt install apache2
Nach 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, um den Zugriff von außen 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.,>
Sie erhalten eine Liste der Anwendungsprofile:
OutputAvailable applications: Apache Apache Full Apache Secure OpenSSH
Wie in der Ausgabe angegeben, stehen für Apache drei Profile zur Verfügung:
- Apache: Dieses Profil öffnet nur Port 80 (normaler, unverschlüsselter Webverkehr)
- Apache Full: Dieses Profil öffnet sowohl Port 80 (normaler, unverschlüsselter Webverkehr) als auch Port 443 (TLS/SSL-verschlüsselter Datenverkehr)
- Apache Sicher: Dieses Profil öffnet nur Port 443 (TLS/SSL-verschlüsselter Datenverkehr)
Es wird empfohlen, das restriktivste Profil zu aktivieren, das den von Ihnen konfigurierten Datenverkehr weiterhin zulässt., Da wir SSL für unseren Server in diesem Handbuch noch nicht konfiguriert haben, müssen wir nur den Datenverkehr auf Port 80 zulassen:
- sudo ufw allow 'Apache'
Sie können die Änderung überprüfen, indem Sie Folgendes eingeben:
- sudo ufw status
Die Ausgabe enthält eine Liste des zulässigen HTTP-Datenverkehrs:
Wie in der Ausgabe angegeben, 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 20.04 Apache. Der Webserver sollte bereits in Betrieb sein.,
Überprüfen Sie mit dem systemd
Init-System, ob der Dienst ausgeführt wird, indem Sie Folgendes eingeben:
- sudo systemctl status apache2
Wie durch diese Ausgabe bestätigt, wurde der Dienst erfolgreich gestartet. Der beste Weg, dies zu testen, besteht jedoch darin, eine Seite von Apache anzufordern.
Sie können auf die standardmäßige Apache-Zielseite 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.,
Versuchen Sie, dies an der Eingabeaufforderung Ihres Servers einzugeben:
- hostname -I
Sie erhalten einige durch Leerzeichen getrennte Adressen zurück. Sie können jeden in Ihrem Webbrowser ausprobieren, um festzustellen, ob er funktioniert.,
Eine weitere Option ist die Verwendung des Icanhazip-Tools, mit dem Sie Ihre öffentliche IP-Adresse von einem anderen Ort im Internet lesen können:
- curl -4 icanhazip.com
Wenn Sie die IP-Adresse Ihres Servers haben, geben Sie sie in die Adressleiste Ihres Browsers ein:
You should see the default Ubuntu 20.04 Apache web page:
This page indicates that Apache is working correctly. It also includes some basic information about important Apache files and directory locations.
Step 4 — Managing the Apache Process
Now that you have your web server up and running, let’s go over some basic management commands using systemctl
.
To stop your web server, type:
- sudo systemctl stop apache2
Um den Webserver beim Stoppen zu starten, geben Sie Folgendes ein:
- sudo systemctl start apache2
Um den Dienst zu stoppen und dann erneut zu starten, geben Sie Folgendes ein:
- sudo systemctl restart apache2
Wenn Sie lediglich Konfigurationsänderungen vornehmen, kann Apache häufig neu laden, ohne Verbindungen abzulegen., Verwenden Sie dazu diesen Befehl:
- sudo systemctl reload apache2
Apache ist standardmäßig so konfiguriert, dass es beim Booten des Servers automatisch gestartet wird. Wenn Sie dies nicht möchten, deaktivieren Sie dieses Verhalten, indem Sie Folgendes eingeben:
- sudo systemctl disable apache2
Um den Dienst beim Booten erneut zu aktivieren, geben Sie Folgendes ein:
- 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. Wir werden eine Domain namens your_domain einrichten, aber Sie sollten diese durch Ihren eigenen Domainnamen ersetzen. Wenn Sie einen Domainnamen mit DigitalOcean einrichten, lesen Sie bitte unsere Netzwerkdokumentation.
Apache auf Ubuntu 20.,04 standardmäßig ist 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 innerhalb von /var/www
für eine your_domain-Site und lassen /var/www/html
als Standardverzeichnis, das bereitgestellt werden soll, wenn eine Clientanforderung nicht mit anderen Sites übereinstimmt.,
Erstellen Sie das Verzeichnis für your_domain wie folgt:
- sudo mkdir /var/www/your_domain
Weisen Sie als nächstes den Besitz des Verzeichnisses mit der Umgebungsvariablen $USER
zu:
- sudo chown -R $USER:$USER /var/www/your_domain
Die Berechtigungen Ihrer Webroots sollten korrekt sein, wenn Sie Ihren umask-Wert nicht geändert haben, der Standarddateiberechtigungen festlegt., Um sicherzustellen, dass Ihre Berechtigungen korrekt sind und der Eigentümer die Dateien lesen, schreiben und ausführen kann, während er nur Lese-und Ausführungsberechtigungen für Gruppen und andere erteilt, können Sie den folgenden Befehl eingeben:
- sudo chmod -R 755 /var/www/your_domain
Erstellen Sie als nächstes ein Beispiel index.html
Seite mit nano
oder Ihrem bevorzugten Editor:
- sudo nano /var/www/your_domain/index.html
Fügen Sie im Inneren das folgende Beispiel-HTML hinzu:
<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.,
Damit Apache diesen Inhalt bereitstellen kann, muss eine virtuelle Hostdatei 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/your_domain.conf
:
- sudo nano /etc/apache2/sites-available/your_domain.conf
Fügen Sie sie in den folgenden Konfigurationsblock ein, der dem Standard ähnelt, aber für unser neues Verzeichnis und unseren neuen Domainnamen aktualisiert wurde:
Beachten Sie, dass wir die DocumentRoot
in unser neues Verzeichnis und ServerAdmin
in eine E-Mail aktualisiert haben, auf die der Administrator der your_domain-Site zugreifen kann. Wir haben auch zwei Direktiven hinzugefügt: ServerName
, die die Basisdomäne festlegt, die mit dieser Definition des virtuellen Hosts übereinstimmen soll, und ServerAlias
, die weitere Namen definiert, die übereinstimmen sollten, als wären sie der Basisname.
Speichern und schließen Sie die Datei, wenn Sie fertig sind.,
Lassen Sie uns die Datei mit dem Werkzeug a2ensite
aktivieren:
- sudo a2ensite your_domain.conf
Deaktivieren Sie die in 000-default.conf
definierte Standard-Site:
- sudo a2dissite 000-default.conf
Als nächstes testen wir auf Konfigurationsfehler:
- sudo apache2ctl configtest
Sie sollten die folgende Ausgabe erhalten:
OutputSyntax OK
Starten Sie Apache neu, um Ihre Änderungen zu implementieren:
- sudo systemctl restart apache2
Apache sollte jetzt Ihren Domainnamen bereitstellen., Sie können dies testen, indem Sie zu navigieren, wo Sie Folgendes sehen sollten:
Schritt 6 – Sich mit wichtigen Apache-Dateien und-Verzeichnissen vertraut machen
Nachdem Sie nun wissen, wie Sie den Apache-Dienst selbst verwalten, sollten Sie sich einige 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 der Apache-Konfigurationsdateien geändert werden.
Serverkonfiguration
-
/etc/apache2
: Das Apache-Konfigurationsverzeichnis. Alle Apache-Konfigurationsdateien befinden sich hier. -
/etc/apache2/apache2.conf
: Die Apache-Hauptkonfigurationsdatei. 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, die Apache abhören wird. Standardmäßig hört Apache auf Port 80 und zusätzlich auf Port 443, wenn ein Modul mit SSL-Funktionen aktiviert ist. -
/etc/apache2/sites-available/
: Das Verzeichnis, in dem virtuelle Hosts pro Site gespeichert werden können. Apache verwendet die in diesem Verzeichnis gefundenen Konfigurationsdateien nur, wenn sie mit dem Verzeichnissites-enabled
verknüpft sind., In der Regel werden alle Serverblockkonfigurationen in diesem Verzeichnis durchgeführt und dann durch Verknüpfung mit dem anderen Verzeichnis mit dem Befehla2ensite
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 im Verzeichnissites-available
mit dera2ensite
erstellt. Apache liest die Konfigurationsdateien und Links, die sich in diesem Verzeichnis befinden, wenn es gestartet oder neu geladen wird, um eine vollständige Konfiguration zu kompilieren., -
/etc/apache2/conf-available/
,/etc/apache2/conf-enabled/
: Diese Verzeichnisse haben die gleiche Beziehung wie die Verzeichnissesites-available
undsites-enabled
, werden jedoch zum Speichern von Konfigurationsfragmenten verwendet, 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/
,/etc/apache2/mods-enabled/
: Diese Verzeichnisse enthalten die verfügbaren und aktivierten Module, respectively., 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 dem Befehl unda2dismod
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., DieLogLevel
– Direktive in der Apache-Konfiguration gibt an, wie viele Details die Fehlerprotokolle enthalten.
Schlussfolgerung
Nachdem Sie Ihren Webserver installiert haben, haben Sie viele Optionen für die Art des Inhalts, den Sie bereitstellen können, und die Technologien, mit denen Sie eine reichhaltigere Erfahrung erstellen können.
Wenn Sie einen vollständigeren Anwendungsstapel erstellen möchten, können Sie diesen Artikel zum Konfigurieren eines LAMP-Stacks unter Ubuntu 20.04 lesen