One place for hosting & domains

      So installieren Sie den Apache Webserver unter CentOS 8


      Einführung

      Der Apache-HTTP-Server ist der am häufigsten verwendete Webserver der Welt. Er bietet viele leistungsstarke Funktionen, darunter dynamisch ladbare Module, robuste Medienunterstützung und eine umfassende Integration mit anderer gängiger Software.

      In diesem Leitfaden installieren Sie einen Apache-Webserver mit virtuellen Hosts auf Ihrem CentOS 8-Server.

      Voraussetzungen

      Zur Absolvierung dieses Leitfadens benötigen Sie Folgendes:

      Schritt 1 — Installieren von Apache

      Apache ist in den Standard-Software-Repositorys von CentOS verfügbar und kann mit dem dnf-Paketmanager installiert werden.

      Installieren Sie das Apache-Paket als der non-root sudo user, der in den Voraussetzungen konfiguriert wurde:

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

      Wenn Sie dem im Abschnitt Voraussetzungen erwähnten Schritt 4 des Leitfadens Ersteinrichtung des Servers unter CentOS 8 gefolgt sind, haben Sie bereits firewalld auf Ihrem Server installiert, um Anforderungen über HTTP zu bedienen.

      Wenn Sie Apache so konfigurieren möchten, dass er auch Inhalte über HTTPS bedient, sollten Sie zudem Port 443 öffnen, indem Sie den https-Dienst aktivieren:

      • sudo firewall-cmd --permanent --add-service=https

      Laden Sie als Nächstes die Firewall neu, um diese neuen Regeln anzuwenden:

      • sudo firewall-cmd --reload

      Nach dem Neuladen der Firewall können Sie den Dienst starten und den Webserver überprüfen.

      Schritt 2 — Prüfen Ihres Webservers

      Apache startet beim Abschluss der Installation nicht automatisch auf CentOS, sodass Sie den Apache-Prozess manuell starten müssen:

      • sudo systemctl start httpd

      Überprüfen Sie mit dem folgenden Befehl, ob der Dienst ausgeführt wird:

      • sudo systemctl status httpd

      Wenn der Dienst ausgeführt wird, erhalten Sie einen active-Status:

      Output

      ● httpd.service - The Apache HTTP Server Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disa> Active: active (running) since Thu 2020-04-23 22:25:33 UTC; 11s ago Docs: man:httpd.service(8) Main PID: 14219 (httpd) Status: "Running, listening on: port 80" Tasks: 213 (limit: 5059) Memory: 24.9M CGroup: /system.slice/httpd.service ├─14219 /usr/sbin/httpd -DFOREGROUND ├─14220 /usr/sbin/httpd -DFOREGROUND ├─14221 /usr/sbin/httpd -DFOREGROUND ├─14222 /usr/sbin/httpd -DFOREGROUND └─14223 /usr/sbin/httpd -DFOREGROUND ...

      Die Ausgabe zeigt an, dass der Dienst erfolgreich gestartet wurde. Der beste Weg, dies zu testen, besteht jedoch darin, eine Seite von Apache anzufordern.

      Sie können auf die Standardstartseite von Apache zugreifen, um zu bestätigen, dass die Software ordnungsgemäß über Ihre IP-Adresse ausgeführt wird. Wenn Sie die IP-Adresse Ihres Servers nicht kennen, können Sie sie von der Befehlszeile auf verschiedene Arten abrufen.

      Geben Sie q ein, um zur Eingabeaufforderung zurückzukehren, und geben Sie dann Folgendes ein:

      Dieser Befehl zeigt alle Netzwerkadressen des Hosts an, wodurch Sie einige IP-Adressen erhalten, die durch Leerzeichen getrennt sind. Sie können jede in Ihrem Webbrowser ausprobieren, um zu sehen, ob sie funktionieren.

      Alternativ können Sie curl verwenden, um Ihre IP von icanhazip.com anzufordern. Dadurch erhalten Sie Ihre öffentliche IPv4-Adresse, wie sie von einem anderen Ort im Internet gelesen wird:

      Wenn Sie über die IP-Adresse Ihres Servers verfügen, geben Sie sie in die Adressleiste Ihres Browsers ein:

      http://your_server_ip
      

      Sie sehen dann die Standardwebsite von CentOS 8 Apache:

      Standardseite Apache für CentOS 8

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

      Schritt 3 — Verwalten des Apache-Prozesses

      Nachdem der Dienst nun installiert ist und ausgeführt wird, können Sie jetzt verschiedene systemctl-Befehle verwenden, um den Dienst zu verwalten.

      Um Ihren Webserver anzuhalten, geben Sie Folgendes ein:

      • sudo systemctl stop httpd

      Um den Webserver zu starten, wenn er angehalten wurde, geben Sie Folgendes ein:

      • sudo systemctl start httpd

      Um den Dienst anzuhalten und erneut zu starten, geben Sie Folgendes ein:

      • sudo systemctl restart httpd

      Wenn Sie nur Konfigurationsänderungen vornehmen, kann Apache oft neu geladen werden, ohne Verbindungen zu trennen. Dazu verwenden Sie diesen Befehl:

      • sudo systemctl reload httpd

      Standardmäßig ist Apache so konfiguriert, dass er beim Booten des Servers automatisch startet. Wenn Sie dieses Verhalten nicht wünschen, können Sie es durch folgende Eingabe deaktivieren:

      • sudo systemctl disable httpd

      Geben Sie Folgendes ein, um den Dienst beim Booten wieder zu aktivieren:

      • sudo systemctl enable httpd

      Apache wird jetzt automatisch gestartet, wenn der Server erneut gebootet wird.

      Die Standardkonfiguration für Apache ermöglicht Ihrem Server, eine einzelne Website zu hosten. Wenn Sie mehrere Domänen auf Ihrem Server hosten möchten, müssen Sie virtuelle Hosts auf Ihrem Apache-Webserver konfigurieren.

      Schritt 4 — Einrichten eines virtuellen Hosts (Empfohlen)

      Bei Verwendung des Apache-Webservers können Sie virtuelle Hosts verwenden (diese sind ähnlich wie Serverblocks in Nginx), um Konfigurationsdetails einzuschließen und mehr als eine Domäne auf einem einzelnen Server zu hosten. In diesem Schritt richten wir eine Domäne namens example.com ein, aber Sie sollten diesen Namen durch Ihren eigenen Domänennamen ersetzen. Wenn Sie mit DigitalOcean einen Domänennamen einrichten, lesen Sie bitte unsere Netzwerkdokumentation.

      Apache unter CentOS 8 hat einen virtuellen Host, der standardmäßig aktiviert und so konfiguriert ist, dass er Dokumente aus dem /var/www/html-Verzeichnis bereitstellt. Das eignet sich gut für eine Site, kann aber umständlich werden, wenn Sie mehrere Sites hosten. Statt /var/www/html zu ändern, erstellen Sie eine Verzeichnisstruktur innerhalb von /var/www für die Site example.com und lassen dabei /var/www/html als Standardverzeichnis stehen, das bereitgestellt wird, wenn eine Client-Anforderung keine übereinstimmenden Sites hat.

      Erstellen Sie das html-Verzeichnis für example.com wie folgt und verwenden Sie das -p-Flag, um alle notwendigen übergeordneten Verzeichnisse zu erstellen:

      • sudo mkdir -p /var/www/example.com/html

      Erstellen Sie ein zusätzliches Verzeichnis, um Protokolldateien für die Site zu speichern:

      • sudo mkdir -p /var/www/example.com/log

      Weisen Sie als Nächstes das Eigentum am html-Verzeichnis mit der Umgebungsvariablen $USER zu:

      • sudo chown -R $USER:$USER /var/www/example.com/html

      Stellen Sie sicher, dass Ihre Webroot über die Standardberechtigungen verfügt:

      • sudo chmod -R 755 /var/www

      Erstellen Sie als Nächstes eine index.html-Seite durch die Verwendung von vi oder Ihrem bevorzugten Texteditor:

      • sudo vi /var/www/example.com/html/index.html

      Drücken Sie i, um zum INSERT-Modus zu wechseln, und fügen Sie der Datei folgende Beispiel-HTML hinzu:

      /var/www/example.com/html/index.html

      <html>
        <head>
          <title>Welcome to Example.com!</title>
        </head>
        <body>
          <h1>Success! The example.com virtual host is working!</h1>
        </body>
      </html>
      

      Speichern und schließen Sie die Datei, indem Sie ESC drücken, :wq eingeben und ENTER drücken.

      Mit dem fertig erstellten Siteverzeichnis und der Beispiel-Indexdatei sind Sie nun fast bereit, die virtuellen Host-Dateien zu erstellen. Virtuelle Host-Dateien legen die Konfiguration Ihrer einzelnen Sites fest und weisen den Apache-Webserver an, wie er auf verschiedene Domänenanforderungen reagieren soll.

      Vor der Erstellung Ihrer virtuellen Hosts müssen Sie ein sites-available-Verzeichnis erstellen, in der diese gespeichert werden. Sie erstellen auch ein sites-enabled-Verzeichnis, welches Apache anweist, dass ein virtueller Host verfügbar ist, um Besucher zu bedienen. Das sites-enabled-Verzeichnis enthält symbolische Links zu virtuellen Hosts, die wir veröffentlichen möchten. Erstellen Sie beide Verzeichnisse mit dem folgenden Befehl:

      • sudo mkdir /etc/httpd/sites-available /etc/httpd/sites-enabled

      Als Nächstes weisen Sie Apache an, im sites-enabled-Verzeichnis nach virtuellen Hosts zu suchen. Bearbeiten Sie dazu die Hauptkonfigurationsdatei von Apache mit vi oder Ihrem bevorzugten Texteditor und fügen Sie eine Zeile hinzu, die ein optionales Verzeichnis für zusätzliche Konfigurationsdateien deklariert:

      • sudo vi /etc/httpd/conf/httpd.conf

      Drücken Sie den Großbuchstaben G, um zum Ende der Datei zu navigieren. Drücken Sie dann i, um zum INSERT-Modus zu wechseln, und fügen Sie die folgende Zeile am Ende der Datei hinzu:

      /etc/httpd/conf/httpd.conf

      ...
      # Supplemental configuration
      #
      # Load config files in the "/etc/httpd/conf.d" directory, if any.
      IncludeOptional conf.d/*.conf
      IncludeOptional sites-enabled/*.conf
      

      Nach dem Hinzufügen der Zeile speichern und schließen Sie die Datei. Nachdem Sie nun die virtuellen Host-Verzeichnisse eingerichtet haben, erstellen Sie die virtuelle Host-Datei.

      Zuerst erstellen Sie eine neue Datei im sites-available-Verzeichnis:

      • sudo vi /etc/httpd/sites-available/example.com.conf

      Fügen Sie folgenden Konfigurationsblock hinzu und ändern Sie example.com auf Ihren Domänennamen:

      /etc/httpd/sites-available/example.com.conf

      <VirtualHost *:80>
          ServerName www.example.com
          ServerAlias example.com
          DocumentRoot /var/www/example.com/html
          ErrorLog /var/www/example.com/log/error.log
          CustomLog /var/www/example.com/log/requests.log combined
      </VirtualHost>
      

      Hierdurch wird Apache mitgeteilt, wo das Rootverzeichnis mit den öffentlich zugänglichen Webdokumenten zu finden ist. Außerdem wird Apache angewiesen, wo die Fehler- und Anforderungsprotokolle für die jeweilige Site zu speichern sind.

      Wenn Sie fertig sind, speichern und schließen Sie die Datei.

      Die virtuellen Host-Dateien sind nun erstellt und können aktiviert werden, damit Apache sie für Besucher bereitstellen kann. Erstellen Sie hierzu einen symbolischen Link für jeden virtuellen Host im sites-enabled-Verzeichnis:

      • sudo ln -s /etc/httpd/sites-available/example.com.conf /etc/httpd/sites-enabled/example.com.conf

      Ihr virtueller Host ist nun konfiguriert und bereit, Inhalte bereitzustellen. Vor dem Neustart des Apache-Dienstes prüfen wir, ob SELinux über die richtigen Richtlinien für Ihre virtuellen Hosts verfügt.

      Schritt 5 — Anpassen von SELinux-Berechtigungen für virtuelle Hosts (empfohlen)

      SELinux ist ein Sicherheitsmodul des Linux-Kernels, das eine höhere Sicherheit für Linux-Systeme bietet. CentOS 8 ist mit SELinux ausgestattet und konfiguriert, um mit der Apache-Konfiguration zu arbeiten. Da Sie durch Einrichten eines benutzerdefinierten Protokollverzeichnisses in der Konfigurationsdatei der virtuellen Hosts die Standardkonfiguration geändert haben, erhalten Sie beim Versuch, den Apache-Dienst zu starten, eine Fehlermeldung. Zur Lösung des Problems müssen Sie die Richtlinien von SELinux aktualisieren, damit Apache in die erforderlichen Dateien schreiben kann.

      Es gibt verschiedene Möglichkeiten, Richtlinien entsprechend den Anforderungen Ihrer Umgebung festzulegen, da SELinux Ihnen die Möglichkeit bietet, Ihre Sicherheitsstufe anzupassen. Dieser Schritt behandelt zwei Methoden zur Anpassung der Richtlinien von Apache: universell und in einem bestimmten Verzeichnis. Da es sicherer ist, Richtlinien von Verzeichnissen anzupassen, wird dieser Ansatz empfohlen.

      Universelles Anpassen der Apache-Richtlinien

      Wenn die Apache-Richtlinien universell festgelegt werden, wird SELinux angewiesen, alle Apache-Prozesse mit dem booleschen Argument httpd_unified identisch zu behandeln. Dieser Ansatz ist zwar bequemer, gibt Ihnen aber nicht das gleiche Maß an Kontrolle wie ein Ansatz, der sich auf eine Datei- oder Verzeichnisrichtlinie konzentriert.

      Führen Sie den folgenden Befehl aus, um universelle Apache-Richtlinien festzulegen:

      • sudo setsebool -P httpd_unified 1

      Der Befehl setsebool ändert boolesche SELinux-Werte. Das -P-Flag aktualisiert den Bootzeitwert, sodass diese Änderung auch bei Neustarts erhalten bleibt. httpd_unified ist das boolesche Argument, das SELinux anweist, alle Apache-Prozesse als den gleichen Typ zu behandeln. Sie haben es mit dem Wert von 1 aktiviert.

      Anpassen von Apache-Richtlinien in einem Verzeichnis

      Das individuelle Einrichten von SELinux-Berechtigungen für das Verzeichnis /var/www/example.com/log gibt Ihnen mehr Kontrolle über die Apache-Richtlinien, kann aber wartungsintensiver sein. Da es sich bei dieser Option nicht um eine universelle Festlegung von Richtlinien handelt, müssen Sie den Kontexttyp für alle neuen Protokollverzeichnisse, die in Ihren virtuellen Host-Konfigurationen angegeben sind, manuell festlegen.

      Überprüfen Sie zunächst den Kontexttyp, den SELinux dem Verzeichnis /var/www/example.com/log gegeben hat:

      • sudo ls -dlZ /var/www/example.com/log/

      Dieser Befehl listet den SELinux-Kontext des Verzeichnisses auf und gibt ihn aus. Sie werden eine Ausgabe sehen, die etwa folgendermaßen aussieht:

      Output

      drwxr-xr-x. 2 root root unconfined_u:object_r:httpd_sys_content_t:s0 6 Apr 23 23:51 /var/www/example.com/log/

      Der aktuelle Kontext ist httpd_sys_content_t, der SELinux mitteilt, dass der Apache-Prozess nur Dateien lesen kann, die in diesem Verzeichnis erstellt wurden. In diesem Leitfaden ändern Sie den Kontexttyp des Verzeichnisses /var/www/example.com/log zu httpd_log_t. Dieser Typ ermöglicht Apache, Protokolldateien von Web-Anwendungen zu generieren und an diese anzuhängen:

      • sudo semanage fcontext -a -t httpd_log_t "/var/www/example.com/log(/.*)?"

      Verwenden Sie als Nächstes den Befehl restorecon, um diese Änderungen anzuwenden und sie bei Neustarts beizubehalten:

      • sudo restorecon -R -v /var/www/example.com/log

      Das Flag -R führt diesen Befehl rekursiv aus. Das bedeutet, dass alle vorhandenen Dateien aktualisiert werden, um den neuen Kontext zu verwenden. Das Flag -v gibt die Kontextänderungen aus, die der Befehl vorgenommen hat. Sie erhalten die folgende Ausgabe, die die Änderungen bestätigt:

      Output

      Relabeled /var/www/example.com/log from unconfined_u:object_r:httpd_sys_content_t:s0 to unconfined_u:object_r:httpd_log_t:s0

      Sie können die Kontexte erneut auflisten, um die Änderungen zu sehen:

      • sudo ls -dlZ /var/www/example.com/log/

      Die Ausgabe zeigt den aktualisierten Kontexttyp an:

      Output

      drwxr-xr-x. 2 root root unconfined_u:object_r:httpd_log_t:s0 6 Apr 23 23:51 /var/www/example.com/log/

      Das Verzeichnis /var/www/example.com/log verwendet nun den Typ httpd_log_t​​​​​​ und Sie können jetzt die Konfiguration des virtuellen Hosts testen.

      Schritt 6 — Testen des virtuellen Hosts (empfohlen)

      Sobald der SELinux-Kontext mit einer der beiden Methoden aktualisiert wurde, kann Apache in das Verzeichnis /var/www/example.com/log schreiben.  Sie können jetzt den Apache-Dienst erfolgreich neu starten:

      • sudo systemctl restart httpd

      Listen Sie den Inhalt des Verzeichnisses /var/www/example.com/log auf, um zu sehen, ob Apache die Protokolldateien erstellt hat:

      • ls -lZ /var/www/example.com/log

      Sie erhalten eine Bestätigung, dass Apache die in der Konfiguration des virtuellen Hosts angegebenen Dateien error.log und requests.log erstellen konnte:

      Output

      -rw-r--r--. 1 root root system_u:object_r:httpd_log_t:s0 0 Apr 24 00:06 error.log -rw-r--r--. 1 root root system_u:object_r:httpd_log_t:s0 0 Apr 24 00:06 requests.log

      Nachdem Sie nun Ihren virtuellen Host eingerichtet und die Berechtigungen von SELinux aktualisiert haben, stellt Apache Ihren Domänennamen bereit. Sie können dies testen, indem Sie zu http://example.com navigieren, wo Sie etwas Ähnliches sehen sollten wie:

      Erfolg!  Der virtuelle Host example.com funktioniert!

      Das bestätigt, dass Ihr virtueller Host erfolgreich konfiguriert ist und Inhalte bereitstellt. Wiederholen Sie die Schritte 4 und 5, um neue virtuelle Hosts mit SELinux-Berechtigungen für zusätzliche Domänen zu erstellen.

      Zusammenfassung

      In diesem Leitfaden haben Sie den Apache-Webserver installiert und verwaltet. Nachdem Sie Ihren Webserver nun installiert haben, haben Sie viele Möglichkeiten für die Art des Inhalts und die Technologien, die Sie verwenden möchten, um eine umfassendere Benutzererfahrung zu erzielen.

      Wenn Sie einen vollständigeren Anwendungsstapel erstellen möchten, lesen Sie den Artikel Konfigurieren eines LAMP-Stacks unter CentOS 8.



      Source link

      So installieren Sie den Apache-Webserver unter Ubuntu 20.04 [Schnellstart]


      Einführung

      Der Apache-HTTP-Server ist der am häufigsten verwendete Webserver der Welt. Er bietet viele leistungsfähige Funktionen, einschließlich dynamisch ladbarer Module, robuster Medienunterstützung und umfassender Integration mit anderen beliebten Programmen.

      In diesem Leitfaden erklären wir, wie Sie einen Apache-Webserver auf Ihrem Ubuntu 20.04-Server installieren können. Eine ausführlichere Version dieses Tutorials finden Sie in Installieren des Apache-Webservers unter Ubuntu 20.04.

      Voraussetzungen

      Bevor Sie mit diesem Leitfaden beginnen, benötigen Sie Folgendes:

      • Einen Ubuntu 20.04-Server und einen regulären non-root user mit Sudo-Berechtigungen. Außerdem 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 Leitfaden zur Ersteinrichtung des Servers für Ubuntu 20.04 folgen.

      Wenn Sie über ein Konto verfügen, melden Sie sich zunächst als non-root user an.

      Schritt 1 — Installieren von Apache

      Apache ist in den Standard-Software-Repositorys von Ubuntu verfügbar, sodass Sie es mit herkömmlichen Paketverwaltungstools installieren können.

      Aktualisieren Sie Ihren lokalen Paketindex:

      Installieren Sie das Paket apache2:

      Schritt 2 — Anpassen der Firewall

      Überprüfen Sie die verfügbaren ufw-Anwendungsprofile:

      Output

      Available applications: Apache Apache Full Apache Secure OpenSSH

      Aktivieren Sie das restriktivste Profil, das den von Ihnen konfigurierten Datenverkehr weiterhin und den Datenverkehr auf Port 80 zulässt (normaler, unverschlüsselter Webdatenverkehr):

      Überprüfen Sie die Änderung:

      Output

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

      Schritt 3 — Testen Ihres Webservers

      Überprüfen Sie mit dem systemd init-System, 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 prese> Active: active (running) since Tue 2020-04-28 23:06:40 UTC; 56s ago Docs: https://httpd.apache.org/docs/2.4/ Main PID: 13785 (apache2) Tasks: 55 (limit: 1137) Memory: 5.3M CGroup: /system.slice/apache2.service ├─13785 /usr/sbin/apache2 -k start ├─13787 /usr/sbin/apache2 -k start └─13788 /usr/sbin/apache2 -k start

      Öffnen Sie die Standardstartseite von Apache, um zu bestätigen, dass die Software über Ihre IP-Adresse ordnungsgemäß ausgeführt wird.

      http://your_server_ip
      

      Sie sollten die Standard-Webseite von Apache für Ubuntu 20.04 erhalten:

      Apache Standardseite

      Schritt 4 — Einrichten eines virtuellen Hosts (Empfohlen)

      Wenn Sie den Apache-Webserver verwenden, können Sie virtuelle Hosts (ähnlich wie Serverblocks in Nginx) verwenden, um Konfigurationsinformationen mit einzuschließen und mehr als eine Domäne auf einem einzigen Server zu hosten. Wir richten eine Domäne namens your_domain ein, aber Sie sollten diesen Namen durch Ihren eigenen Domänennamen ersetzen. Um mehr über das Einrichten eines Domänennamens mit DigitalOcean zu erfahren, lesen Sie bitte unsere Einführung zu DigitalOcean DNS.

      Erstellen Sie das Verzeichnis für your_domain:

      sudo mkdir /var/www/your_domain
      

      Erteilen Sie den Besitz des Verzeichnisses:

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

      Die Berechtigungen Ihrer Web-roots sollten korrekt sein, wenn Sie Ihren unmask-Wert nicht geändert haben, aber Sie können das durch die folgende Eingabe prüfen:

      • sudo chmod -R 755 /var/www/your_domain

      Erstellen Sie als Nächstes eine index.html-Beispielsseite durch die Verwendung von nano oder Ihrem bevorzugten Texteditor:

      • nano /var/www/your_domain/index.html

      Fügen Sie dann das folgende HTML-Beispiel hinzu:

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

      Wenn Sie fertig sind, speichern und schließen Sie die Datei.

      Erstellen Sie eine neue virtuelle Host-Datei in /etc/apache2/sites-available/your_domain.conf:

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

      Fügen Sie den folgenden Konfigurationsblock ein, der für unser neues Verzeichnis und den Domänennamen aktualisiert wird:

      /etc/apache2/sites-available/your_domain.conf

      <VirtualHost *:80>
          ServerAdmin webmaster@localhost
          ServerName your_domain
          ServerAlias your_domain
          DocumentRoot /var/www/your_domain
          ErrorLog ${APACHE_LOG_DIR}/error.log
          CustomLog ${APACHE_LOG_DIR}/access.log combined
      </VirtualHost>
      

      Wenn Sie fertig sind, speichern und schließen Sie die Datei.

      Aktivieren Sie die Datei mit a2ensite:

      • sudo a2ensite your_domain.conf

      Deaktivieren Sie die unter 000-default.conf definierte Standard-Site:

      • sudo a2dissite 000-default.conf

      Testen Sie die Konfigurationsfehler:

      • sudo apache2ctl configtest

      Sie sollten die folgende Ausgabe sehen:

      Output

      Syntax OK

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

      • sudo systemctl restart apache2

      Apache sollte jetzt für Ihren Domänennamen eingerichtet sein. Sie können dies testen, indem Sie zu http://your_domain navigieren, wo Sie etwas Ähnliches wie Folgendes sehen sollten:

      Beispiel für einen virtuellen Apache-Host

      Zusammenfassung

      Nachdem Sie Ihren Webserver installiert haben, haben Sie viele Optionen für die Art des Inhalts und die Technologien, die Sie verwenden möchten, um eine umfassendere Benutzererfahrung zu erzielen.

      Wenn Sie einen vollständigeren Anwendungsstapel erstellen möchten, lesen Sie diesen Artikel unter So konfiguriert man einen LAMP-Stapel unter Ubuntu 20.04.



      Source link

      So installieren Sie den Apache-Webserver unter Ubuntu 20.04


      Einführung

      Der Apache-HTTP-Server ist der am häufigsten verwendete Webserver der Welt. Er bietet viele leistungsstarke Funktionen, darunter dynamisch ladbare Module, robuste Medienunterstützung und eine umfassende Integration mit anderer gängiger Software.

      In diesem Leitfaden erklären wir, wie Sie einen Apache-Webserver auf Ihrem Ubuntu 20.04-Server installieren können.

      Voraussetzungen

      Bevor Sie mit diesem Leitfaden beginnen, sollten Sie auf Ihrem Server einen regulären non-root user mit sudo-Berechtigungen konfiguriert haben. Außerdem 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 Leitfaden zur Ersteinrichtung des Servers für Ubuntu 20.04 folgen.

      Wenn Sie über ein Konto verfügen, melden Sie sich zunächst als non-root user an.

      Schritt 1 — Installieren von Apache

      Apache ist innerhalb der Standard-Software-Repositorys von Ubuntu verfügbar und kann mit herkömmlichen Paketverwaltungstools installiert werden.

      Beginnen Sie damit, den lokalen Paketindex zu aktualisieren, um alle neuen Änderungen im Upstream widerzuspiegeln:

      Installieren Sie dann das Paket apache2:

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

      Schritt 2 — Anpassen der Firewall

      Vor dem Testen von Apache müssen die Firewall-Einstellungen geändert werden, um den externen Zugriff 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.

      Listen Sie die Anwendungsprofile ufw auf, indem Sie Folgendes eingeben:

      Sie erhalten eine Liste der Anwendungsprofile:

      Output

      Available applications: Apache Apache Full Apache Secure OpenSSH

      Wie durch die Ausgabe angezeigt, gibt es drei Profile für Apache:

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

      Es wird empfohlen, das restriktivste Profil zu aktivieren, das den von Ihnen konfigurierten Datenverkehr immer noch zulässt. Da wir in diesem Leitfaden noch kein SSL für unseren Server konfiguriert haben, müssen wir nur den Datenverkehr auf Port 80 zulassen:

      Sie können die Änderung überprüfen, indem Sie Folgendes eingeben:

      Die Ausgabe stellt eine Liste mit erlaubtem HTTP-Datenverkehr bereit:

      Output

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

      Wie durch die Ausgabe angezeigt, wurde das Profil aktiviert, um den Zugriff auf den Apache-Webserver zu ermöglichen.

      Schritt 3 — Testen Ihres Webservers

      Am Ende des Installationsprozesses startet Ubuntu 20.04 Apache. Der Webserver sollte bereits ausgeführt sein.

      Überprüfen Sie mit dem systemd init-System, 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) Active: active (running) since Thu 2020-04-23 22:36:30 UTC; 20h ago Docs: https://httpd.apache.org/docs/2.4/ Main PID: 29435 (apache2) Tasks: 55 (limit: 1137) Memory: 8.0M CGroup: /system.slice/apache2.service ├─29435 /usr/sbin/apache2 -k start ├─29437 /usr/sbin/apache2 -k start └─29438 /usr/sbin/apache2 -k start

      Wie durch diese Ausgabe bestätigt, ist der Dienst erfolgreich gestartet. Der beste Weg, dies zu testen, besteht jedoch darin, eine Seite von Apache anzufordern.

      Öffnen Sie die Standardstartseite von Apache, 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 von der Befehlszeile auf verschiedene Arten abrufen.

      Geben Sie dies bei der Eingabeaufforderung Ihres Servers ein:

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

      Eine andere Möglichkeit ist die Verwendung des Icanhazip-Tools, mit dem Sie Ihre öffentliche IP-Adresse erhalten, die von einem anderen Ort im Internet gelesen wurde:

      Wenn Sie über die IP-Adresse Ihres Servers verfügen, geben Sie sie in die Adressleiste Ihres Browsers ein:

      http://your_server_ip
      

      Sie sollten die Apache-Standardseite für Ubuntu 20.04 sehen:

      Apache Standardseite

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

      Schritt 4 — Verwalten des Apache-Prozesses

      Nachdem Sie Ihren Webserver nun ausgeführt haben, gehen wir nun mit systemctl über einige grundlegende Verwaltungsbefehle.

      Um Ihren Webserver zu stoppen, geben Sie Folgendes ein:

      • sudo systemctl stop apache2

      Um den Webserver zu starten, wenn er angehalten wurde, geben Sie Folgendes ein:

      • sudo systemctl start apache2

      Um den Dienst zu stoppen und erneut zu starten, geben Sie Folgendes ein:

      • sudo systemctl restart apache2

      Wenn Sie nur Konfigurationsänderungen vornehmen, kann Apache oft neu laden, ohne Verbindungen zu beseitigen. Dazu verwenden Sie diesen Befehl:

      • sudo systemctl reload apache2

      Standardmäßig ist Apache so konfiguriert, dass es beim Booten des Servers automatisch startet. Wenn Sie dieses Verhalten nicht wünschen, können Sie es durch folgende Eingabe deaktivieren:

      • sudo systemctl disable apache2

      Geben Sie Folgendes ein, um den Dienst beim Booten wieder zu aktivieren:

      • sudo systemctl enable apache2

      Apache sollte jetzt automatisch gestartet werden, wenn der Server erneut gestartet wird.

      Schritt 5 — Einrichten von virtuellen Hosts (Empfohlen)

      Wenn Sie den Apache-Webserver verwenden, können Sie virtuelle Hosts (ähnlich wie Serverblocks in Nginx) verwenden, um Konfigurationsinformationen mit einzuschließen und mehr als eine Domäne auf einem einzigen Server zu hosten. Wir richten eine Domäne namens your_domain ein, aber Sie sollten diesen Namen durch Ihren eigenen Domänennamen ersetzen. Wenn Sie mit DigitalOcean einen Domänennamen einrichten, lesen Sie bitte unsere Netzwerkdokumentation.

      Apache unter Ubuntu 20.04 hat einen Serverblock, der standardmäßig aktiviert und so konfiguriert ist, dass er Dokumente aus dem /var/www/html-Verzeichnis bereitstellt. Das eignet sich gut für eine Site, kann aber umständlich werden, wenn Sie mehrere Sites hosten. Statt /var/www/html zu ändern, erstellen wir eine Verzeichnisstruktur innerhalb /var/www für eine Seite your_domain und lassen dabei /var/www/html als Standardverzeichnis, das bereitgestellt wird, wenn eine Client-Anfrage keine übereinstimmenden Sites hat.

      Erstellen Sie das Verzeichnis für your_domain wie folgt:

      • sudo mkdir /var/www/your_domain

      Weisen Sie als Nächstes das Eigentum am Verzeichnis mit der $USER Umgebungsvariablen zu:

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

      Die Berechtigungen Ihrer Webstämme sollten korrekt sein, wenn Sie Ihren umask-Wert nicht geändert haben, wodurch die Standarddateiberechtigungen festgelegt werden. Um sicherzustellen, dass Ihre Berechtigungen korrekt sind und der Eigentümer die Dateien lesen, schreiben und ausführen kann, während Gruppen und anderen nur Lese- und Ausführungsberechtigungen erteilt werden, können Sie den folgenden Befehl eingeben:

      • sudo chmod -R 755 /var/www/your_domain

      Erstellen Sie als Nächstes eine index.html Beispielsseite durch die Verwendung von nano oder Ihrem bevorzugten Texteditor:

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

      Fügen Sie dann das folgende HTML-Beispiel hinzu:

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

      Wenn Sie fertig sind, speichern und schließen Sie die Datei.

      Sie müssen eine virtuelle Host-Datei mit den richtigen Richtlinien erstellen, damit Apache diesen Inhalt bereitstellen kann. Statt die Standardkonfigurationsdatei direkt unter /etc/apache2/sites-available/000-default.conf zu ändern, erstellen wir eine neue in /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 Standard ähnlich ist, aber für unser neues Verzeichnis und den Domänennamen 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>
      

      Sie werden feststellen, dass wir DocumentRoot auf unser neues Verzeichnis und ServerAdmin auf eine E-Mail aktualisiert haben, auf die der Site-Administator von your_domain zugreifen kann. Wir haben auch zwei Richtlinien hinzugefügt: ServerName, der die Basisdomäne festlegt, die zu dieser virtuellen Host-Definition passen sollte, und ServerAlias, der weitere Namen definiert, die wie der Basisname passen sollten.

      Wenn Sie fertig sind, speichern und schließen Sie die Datei.

      Aktivieren wir jetzt die Datei über das Tool a2ensite:

      • sudo a2ensite your_domain.conf

      Deaktivieren Sie die unter 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 sehen:

      Output

      Syntax OK

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

      • sudo systemctl restart apache2

      Apache sollte jetzt für Ihren Domänennamen eingerichtet sein. Sie können dies testen, indem Sie zu http://your_domain navigieren, wo Sie etwas Ähnliches wie Folgendes sehen sollten:

      Beispiel für einen virtuellen Apache-Host

      Schritt 6 – Kennenlernen der wichtigen Apache-Dateien und -Verzeichnisse

      Nachdem Sie nun wissen, wie Sie den Apache-Dienst verwalten, nehmen Sie sich einige Minuten Zeit, um sich mit einigen wichtigen Verzeichnissen und Dateien vertraut zu machen.

      Inhalt

      • /var/www/html: Der eigentliche Web-Inhalt, der standardmäßig nur aus der Apache-Standardseite besteht, die Sie zuvor gesehen haben, wird aus dem Verzeichnis /var/www/html bedient. Dies kann durch die Anpassung der Konfigurationsdateien von Apache geändert werden.

      Server-Konfiguration

      • /etc/apache2: Das Apache-Konfigurationsverzeichnis. Hier befinden sich alle Konfigurationsdateien von Apache.
      • /etc/apache2/apache2.conf: Die Hauptkonfigurationsdatei von Apache. Diese kann modifiziert werden, um die globale Konfiguration von Apache zu ändern. Diese Datei ist für das Laden vieler der anderen Dateien im Konfigurationsverzeichnis verantwortlich.
      • /etc/apache2/ports.conf: Diese Datei gibt die Ports an, die Apache überwacht. Standardmäßig überwacht Apache Port 80 und zusätzlich Port 443, wenn ein Modul mit SSL-Funktionen aktiviert ist.
      • /etc/apache2/sites-available/: Das Verzeichnis, in dem virtuelle Hosts pro Standort gespeichert werden können. Apache verwendet die in diesem Verzeichnis gefundenen Konfigurationsdateien nicht, es sei denn, sie sind mit dem Verzeichnis sites-enabled verknüpft. In der Regel wird die gesamte Serverblockkonfiguration in diesem Verzeichnis durchgeführt und dann durch Verknüpfen mit dem anderen Verzeichnis mit dem Befehl a2ensite 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 erstellt, die sich im Verzeichnis sites-available mit a2ensite befinden. Apache liest die Konfigurationsdateien und Links in diesem Verzeichnis, wenn es gestartet oder neu geladen wird, um eine vollständige Konfiguration zu kompilieren.
      • /etc/apache2/conf-available/, /etc/apache2/conf-enabled/: Diese Verzeichnisse verfügen über die gleiche Beziehung wie die Verzeichnisse sites-available– und sites-enabled, dienen aber zur Speicherung von Konfigurationsfragmenten, die nicht in einen 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/, /etc/apache2/mods-enabled/: Diese Verzeichnisse enthalten jeweils die verfügbaren und aktivierten Module. Dateien, die in .load enden, enthalten Fragmente zum Laden bestimmter Module, während in .conf endende Dateien die Konfiguration für diese Module enthalten. Module können mit dem Befehl a2enmod und a2dismod 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. Die LogLevel-Anweisung in der Apache-Konfiguration gibt an, wie detailliert die Fehlerprotokolle sein werden.

      Zusammenfassung

      Nachdem Sie Ihren Webserver installiert haben, haben Sie viele Optionen für die Art des Inhalts und die Technologien, die Sie verwenden möchten, um eine umfassendere Benutzererfahrung zu erzielen.

      Wenn Sie einen vollständigeren Anwendungsstapel erstellen möchten, lesen Sie diesen Artikel unter So konfiguriert man einen LAMP-Stapel unter Ubuntu 20.04



      Source link