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 erläutert, wie Sie einen Apache-Webserver auf Ihrem Ubuntu 18.04-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. Sie können lernen, wie Sie ein reguläres Benutzerkonto konfigurieren und eine Firewall für Ihren Server einrichten, indem Sie unsereninitial server setup guide for Ubuntu 18.04 folgen.
Wenn Sie über ein Konto verfügen, melden Sie sich als Benutzer ohne Rootberechtigung an, um zu beginnen.
[[Schritt-1 - Installation von Apache]] == Schritt 1 - Installation von Apache
Apache ist in den Standard-Software-Repositorys von Ubuntu 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
Installieren Sie dann das Paketapache2
:
sudo apt install apache2
Nach Bestätigung der Installation installiertapt
Apache und alle erforderlichen Abhängigkeiten.
[[Schritt-2 - Anpassen der Firewall]] == 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 Anwendungsprofile vonufw
auf, indem Sie Folgendes eingeben:
sudo ufw app list
Sie sehen eine Liste der Anwendungsprofile:
OutputAvailable applications:
Apache
Apache Full
Apache Secure
OpenSSH
Wie Sie sehen, gibt es drei Profile für Apache:
-
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 Verkehr).
-
Apache 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 'Apache'
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
Apache ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Apache (v6) ALLOW Anywhere (v6)
Wie Sie sehen, wurde das Profil aktiviert, um den Zugriff auf den Webserver zu ermöglichen.
[[Schritt-3 -—- Überprüfen Ihres Webservers]] == Schritt 3 - Überprüfen Ihres Webservers
Am Ende des Installationsprozesses startet Ubuntu 18.04 Apache. Der Webserver sollte bereits in Betrieb sein.
Wenden Sie sich an das Init-System vonsystemd
, um sicherzustellen, dass 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)
Drop-In: /lib/systemd/system/apache2.service.d
└─apache2-systemd.conf
Active: active (running) since Tue 2018-04-24 20:14:39 UTC; 9min ago
Main PID: 2583 (apache2)
Tasks: 55 (limit: 1153)
CGroup: /system.slice/apache2.service
├─2583 /usr/sbin/apache2 -k start
├─2585 /usr/sbin/apache2 -k start
└─2586 /usr/sbin/apache2 -k start
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 besteht darin, Folgendes einzugeben:
curl -4 icanhazip.com
Wenn Sie die IP-Adresse Ihres Servers haben, geben Sie diese in die Adressleiste Ihres Browsers ein:
http://your_server_ip
Sie sollten die Standard-Apache-Webseite von Ubuntu 18.04 sehen:
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]] == 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 von virtuellen Hosts empfohlen]] == Schritt 5 - Einrichten von virtuellen Hosts (empfohlen)
Bei Verwendung des Apache-Webservers können Sievirtual hosts (ähnlich wie Serverblöcke in Nginx) verwenden, um Konfigurationsdetails zu kapseln und mehr als eine Domäne von einem einzelnen Server zu hosten. Wir werden eine Domain namensyour_domain einrichten, aber Sie solltenreplace this with your own domain name. Weitere Informationen zum Einrichten eines Domainnamens mit DigitalOcean finden Sie in unserenIntroduction to DigitalOcean DNS.
In Apache unter Ubuntu 18.04 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 innerhalb von/var/www
für eineyour_domain-Site, wobei/var/www/html
als Standardverzeichnis beibehalten wird, das bereitgestellt werden soll, wenn eine Clientanforderung dies nicht tut. Nicht mit anderen Websites übereinstimmen.
Erstellen Sie das Verzeichnis füryour_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 Webstämme sollten korrekt sein, wenn Sie den Wert vonunmask
nicht geändert haben. Sie können dies jedoch sicherstellen, indem Sie Folgendes eingeben:
sudo chmod -R 755 /var/www/your_domain
Erstellen Sie als Nächstes eine Beispielseite fürindex.html
mitnano
oder Ihrem bevorzugten Editor:
nano /var/www/your_domain/index.html
Fügen Sie im Inneren das folgende HTML-Beispiel hinzu:
/var/www/your_domain/index.html
Welcome to Your_domain!
Success! The your_domain virtual host is working!
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 bei/etc/apache2/sites-available/000-default.conf
direkt zu ändern, erstellen wir eine neue bei/etc/apache2/sites-available/your_domain.conf
:
sudo nano /etc/apache2/sites-available/your_domain.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
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
Beachten Sie, dass wir dieDocumentRoot
in unserem neuen Verzeichnis undServerAdmin
in einer E-Mail aktualisiert haben, auf die der Site-Administrator vonyour_domainzugreifen kann. Wir haben außerdem zwei Anweisungen hinzugefügt:ServerName
, mit denen die Basisdomäne festgelegt wird, die für diese virtuelle Hostdefinition übereinstimmen soll, undServerAlias
, 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 Toola2ensite
:
sudo a2ensite your_domain.conf
Deaktivieren Sie die in000-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:
OutputSyntax 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 zuhttp://your_domain
navigieren, wo Sie Folgendes sehen sollten:
[[Schritt-6 -–- sich mit wichtigen Apache-Dateien und -Verzeichnissen vertraut machen]] == 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 Hauptkonfigurationsdatei von Apache. 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ört. 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 Standort 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 wird die gesamte Serverblockkonfiguration in diesem Verzeichnis durchgeführt und anschließend durch Verknüpfen mit dem anderen Verzeichnis mit dem Befehla2ensite
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 im Verzeichnissites-available
mita2ensite
erstellt. 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 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 bzw. 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.
Server-Protokolle
-
/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 AnweisungLogLevel
in der Apache-Konfiguration gibt an, wie detailliert die Fehlerprotokolle sein sollen.
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 zuhow to configure a LAMP stack on Ubuntu 18.04.