So installieren Sie den Apache-Webserver unter Ubuntu 18.04

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 vonufwauf, 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:

Apache default page

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/htmlkonfiguriert 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$USERzu:

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

Die Berechtigungen Ihrer Webstämme sollten korrekt sein, wenn Sie den Wert vonunmasknicht 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.htmlmitnano 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:

Apache virtual host example

[[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-enabledverknü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.