GNU/Linux >> LINUX-Kenntnisse >  >> Cent OS

So installieren Sie Apache mit virtuellem Host unter CentOS 8

Der Apache webserver ist ein Open-Source- und beliebter HTTP-Webserver, der weiterhin einen massiven Marktanteil in der Hosting-Branche genießt. Es wird mit vielen Funktionen geliefert, darunter Modulverbesserungen, Unterstützung mehrerer Protokolle, vereinfachte Konfiguration und Unterstützung mehrerer Sprachen, um nur einige zu nennen.

Lesen Sie auch :So installieren Sie Nginx unter CentOS 8

In dieser Anleitung führen wir Sie durch die Installation des Apache Webserver auf CentOS 8 und RHEL 8 mit einer virtuellen Hostumgebung. Zum Zeitpunkt der Erstellung dieses Tutorials ist die neueste Apache-Version Apache 2.2.43 .

Apache-Webserver installieren

Aktualisieren Sie zunächst Ihr CentOS 8 oder RHEL 8 Systempaketliste mit dem folgenden dnf-Befehl.

$ sudo dnf update

Sobald das Update abgeschlossen ist, installieren Sie Apache Webserver durch Ausführen des folgenden Befehls.

$ sudo dnf install httpd

Nach der Installation können Sie die Version von Apache überprüfen, indem Sie den Befehl rpm ausführen.

$ rpm -qi httpd

Überprüfen Sie die Apache-Version

Der Befehl gibt eine Reihe von Informationen wie Version, Veröffentlichungsdatum, Build und Architektur des Pakets aus.

Um den Apache HTTP-Webdienst zu starten, führen Sie den Befehl systemctl aus.

$ sudo systemctl start httpd

Führen Sie Folgendes aus, um zu bestätigen, ob der Dienst ausgeführt wird.

$ sudo systemctl status httpd

Überprüfen Sie den Apache-Dienststatus

Aus der Ausgabe wird die Datei „active ’-Status in Grün zeigt an, dass der Apache-Webserver betriebsbereit ist.

Um alle Zweifel auszuräumen, dass der Webserver läuft, fordern Sie eine Testseite von Apache an, indem Sie die IP-Adresse oder den Domänennamen Ihres Servers wie gezeigt durchsuchen.

http://server-ip  

Sie können Ihre Server-IP abrufen, indem Sie den Befehl ifconfig ausführen. Wenn Ihr Server in der Cloud gehostet wird, können Sie die öffentliche IP abrufen, indem Sie den curl-Befehl ausführen.

$ curl ifconfig.me 
OR
$ curl -4 icanhazip.com

Finden Sie die IP-Adresse des CentOS-Servers

Wenn Sie die IP-Adresse des Servers durchsuchen, sollten Sie die folgende Webseite angezeigt bekommen.

Überprüfen Sie die Apache-Webseite

Dies ist eine sichere Bestätigung, dass der Webserver läuft.

Apache-Webserver verwalten

Mit Apache installiert und ausgeführt wird, können Sie die systemctl verwenden Inspektionstool zur Verwaltung von Apache.

Um beispielsweise Apache zu stoppen, führen Sie den folgenden Befehl aus:

$ sudo systemctl stop httpd

Um den Dienst erneut zu starten, führen Sie Folgendes aus:

$ sudo systemctl start httpd

Wenn Sie Änderungen an einer der Konfigurationsdateien vorgenommen haben und neu starten müssen, um die Änderungen zu übernehmen, führen Sie den folgenden Befehl aus:

$ sudo systemctl restart httpd

Das Neustarten des Dienstes führt normalerweise zu einer Dienstunterbrechung. Eine bessere Alternative ist, einfach ohne Unterbrechung der Verbindung neu zu laden.

$ sudo systemctl reload httpd

Führen Sie den folgenden Befehl aus, um den Apache-Webserver beim Booten oder Neustarten automatisch zu starten. Dadurch wird sichergestellt, dass Apache ohne Ihr Eingreifen automatisch gestartet wird.

$ sudo systemctl enable httpd

Wenn Sie den Dienst nicht automatisch beim Booten starten möchten, führen Sie Folgendes aus:

$ sudo systemctl disable httpd

Virtuelle Apache-Hosts einrichten

Standardmäßig ist der Apache-Webserver so konfiguriert, dass er nur eine Website bereitstellt oder hostet. Wenn Sie nur eine Website hosten möchten, ist dieser Schritt nicht erforderlich. Falls Sie jedoch mehrere Domänen auf Ihrem Server hosten möchten, müssen Sie virtuelle Apache-Hosts konfigurieren.

Ein virtueller Host ist eine separate Datei, die Konfigurationen enthält, mit denen Sie eine andere Domäne als die Standarddomäne einrichten können. Für diese Anleitung richten wir einen virtuellen Host für die Domain crazytechgeek.info ein .

Der standardmäßige virtuelle Host befindet sich unter /var/www/html Verzeichnis. Dies funktioniert nur für eine einzelne Website. Um einen separaten virtuellen Host für unsere Domain zu erstellen, erstellen wir eine weitere Verzeichnisstruktur innerhalb von /var/www Verzeichnis wie gezeigt.

$ sudo mkdir -p /var/www/crazytechgeek.info/html

Zusätzlich können Sie auch ein Verzeichnis zum Speichern von Protokolldateien erstellen.

$ sudo mkdir -p /var/www/crazytechgeek.info/log

Bearbeiten Sie als Nächstes die Dateiberechtigungen mit $USER Umgebungsvariable wie gezeigt.

$ sudo chown -R $USER:$USER /var/www/crazytechgeek.info/html

Passen Sie auch die Berechtigungen des Webroot-Verzeichnisses wie gezeigt an.

$ sudo chmod -R 755 /var/www

Als nächstes erstellen Sie ein Beispiel index.html Datei wie gezeigt.

$ sudo vim /var/www/crazytechgeek.info/html/index.html

Drücken Sie den Buchstaben 'i' auf der Tastatur und fügen Sie einige Beispielinhalte wie gezeigt ein, die beim Testen des virtuellen Hosts im Webbrowser angezeigt werden.

<html>
  <head>
    <title>Welcome to crazytechgeek.info!</title>
  </head>
  <body>
    <h1>Success! The crazytechgeek.info virtual host is up and perfectly working!</h1>
  </body>
</html>

Speichern und beenden Sie die Konfigurationsdatei.

Nachdem die Beispiel-Indexdatei und das Site-Verzeichnis erstellt wurden, können Sie nun fortfahren und die virtuelle Hostdatei erstellen. Die virtuelle Hostdatei enthält die Site-Konfiguration Ihrer Domain und weist Apache an, wie es auf Client-Anfragen reagieren wird.

Die virtuelle Hostdatei enthält die Site-Konfiguration Ihrer Domain und weist Apache an, wie es auf Client-Anfragen reagieren wird. Aber um fortzufahren, müssen Sie zwei Verzeichnisse erstellen:sites-available und sites-enabled Verzeichnisse.

Die virtuelle Hostdatei wird in sites-available gespeichert Verzeichnis während der sites-enabled das Verzeichnis enthält den symbolischen Link zum virtuellen Host.

Erstellen Sie beide Verzeichnisse wie gezeigt.

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

Ändern Sie als Nächstes die Hauptkonfigurationsdatei des Apache-Webservers und weisen Sie Apache an, wo der virtuelle Host im Verzeichnis „sites-enabled“ zu finden ist.

$ sudo vim /etc/httpd/conf/httpd.conf

Fügen Sie die Zeile wie gezeigt ganz am Ende der Konfigurationsdatei an.

IncludeOptional sites-enabled/*.conf

Speichern und beenden.

Erstellen Sie nun eine virtuelle Hostdatei wie gezeigt:

$ sudo vim /etc/httpd/sites-available/crazytechgeek.info

Fügen Sie den Inhalt unten ein und ersetzen Sie crazytechgeek.info mit Ihrem eigenen Domainnamen.

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

Speichern und beenden Sie die Datei.

Aktivieren Sie nun die virtuelle Hostdatei, indem Sie einen symbolischen Link in sites-enabled erstellen Verzeichnis.

$ sudo ln -s /etc/httpd/sites-available/crazytechgeek.info.conf /etc/httpd/sites-enabled/crazytechgeek.info.conf

Anpassen von SELinux-Berechtigungen für virtuelle Hosts

CentOS 8 und RHEL 8 wird mit SELinux ausgeliefert Dies ist ein Sicherheitsmodul zur Verstärkung der Sicherheit des Linux-Systems. Da Sie ein benutzerdefiniertes Protokoll konfiguriert haben Verzeichnis im vorherigen Schritt müssen Sie einige SELinux-Richtlinien aktualisieren, um den Apache-Webserver anzuweisen, in das Verzeichnis zu schreiben.

Es gibt zwei Ansätze zum Anpassen von SELinux-Apache-Richtlinien:Universelles Anpassen von Anpassungsrichtlinien und der Richtlinien für ein Verzeichnis. Letzteres wird bevorzugt, weil es bevorzugter ist.

Anpassen von SELinux-Richtlinien für ein Verzeichnis

Bearbeiten von SELinux Berechtigungen für das Protokollverzeichnis gibt Ihnen die absolute Kontrolle über die Richtlinien des Apache-Webservers. Diese Methode ist ziemlich langwierig und erfordert, dass Sie den Kontexttyp für zusätzliche Verzeichnisse manuell konfigurieren, die in der Konfigurationsdatei des virtuellen Hosts angegeben sind.

Bevor Sie beginnen, bestätigen Sie zunächst den Kontexttyp, der dem Protokollverzeichnis von SELinux zugewiesen wurde:

$ sudo ls -dlZ /var/www/crazytechgeek.info/log/

Die Ausgabe sollte ähnlich wie unten aussehen.

Legen Sie SELinux-Richtlinien im Apache-Protokollverzeichnis fest

Aus der Ausgabe ist der festgelegte Kontext httpd_sys_content_t . Dies zeigt an, dass der Webserver nur Dateien im Protokollverzeichnis lesen kann. Sie müssen diesen Kontext in httpd_log_t ändern um es Apache zu ermöglichen, Protokolleinträge zu generieren und dem Verzeichnis hinzuzufügen.

Führen Sie daher den Befehl aus:

$ sudo semanage fcontext -a -t httpd_log_t "/var/www/crazytechgeek.info/log(/.*)?"

Wenn Sie den folgenden Fehler erhalten:„semanage:command not found“.

Es impliziert, dass die Pakete, die für die Semanage sorgen Befehl sind nicht installiert. Um diesen Fehler zu beheben, müssen Sie diese Pakete installieren. Aber überprüfen Sie zuerst, welche Pakete den Semanage-Befehl bereitstellen, indem Sie Folgendes ausführen:

$ sudo dnf whatprovides /usr/sbin/semanage

Die Ausgabe liefert uns das Paket, das Semanage bereitstellt, nämlich policycoreutils-python-utils .

Installieren Sie nun das Paket wie gezeigt mit dem DNF-Paketmanager.

$ sudo dnf install policycoreutils-python-utils

Der Befehl zum Ändern des Kontexts sollte jetzt funktionieren.

$ sudo semanage fcontext -a -t httpd_log_t "/var/www/crazytechgeek.info/log(/.*)?"

Um die Änderungen zu speichern und dauerhaft zu machen, führen Sie restorecon aus Befehl wie gezeigt:

$ sudo restorecon -R -v /var/www/crazytechgeek.info/log

Sie können die Änderungen bestätigen, indem Sie den Befehl erneut ausführen:

$ sudo ls -dlZ /var/www/crazytechgeek.info/log/

Überprüfen Sie den SELinux-Kontexttyp

Beachten Sie unbedingt, dass sich der Kontexttyp in httpd_log_t geändert hat wie in der Ausgabe zu sehen.

Starten Sie Apache neu, damit die Änderungen übernommen werden.

$ sudo systemctl restart httpd

Sie können jetzt bestätigen, ob Apache Protokolldateien im Protokollverzeichnis speichert, indem Sie deren Inhalt wie gezeigt auflisten:

$ ls -l /var/www/crazytechgeek.info/log/

Sie sollten in der Lage sein, zwei Protokolldateien wie gezeigt zu sehen:Fehlerprotokoll und Anforderungsprotokolldateien.

Überprüfen Sie die Apache-Protokolldateien

Apache Virtual Host testen

Schließlich müssen Sie sicher sein, dass der Apache-Webserver Ihre virtuelle Hostdatei bereitstellt. Öffnen Sie dazu Ihren Browser und rufen Sie die IP-Adresse oder den Domainnamen Ihres Servers auf:

http://domain-name

Überprüfen Sie Apache Virtual Host für Website

Perfekt! Dies zeigt an, dass alles gut gelaufen ist und unser virtueller Host wie erwartet bedient wird.

Schlussfolgerung

In dieser Anleitung haben wir gelernt, wie man den Apache installiert Webserver auf CentOS 8 und RHEL 8 und auch, wie man eine virtuelle Hostdatei konfiguriert, um Inhalte für eine zusätzliche Domäne bereitzustellen. Fühlen Sie sich frei, mehrere virtuelle Hostdateien zu konfigurieren, wie Sie es für angemessen halten, um zusätzliche Domains aufzunehmen.

Wenn Sie einen vollständigen Hosting-Stack einrichten möchten, empfehle ich Ihnen, einen LAMP-Stack auf CentOS 8 zu installieren.

Sharing is Caring…
Auf Facebook teilenAuf Twitter teilenAuf Linkedin teilenAuf Reddit teilen
Cent OS
  1. So installieren Sie Apache Cassandra unter CentOS 8

  2. So installieren Sie Apache unter CentOS 7

  3. So installieren Sie Apache Maven unter CentOS 7

  4. So installieren Sie WordPress mit Apache auf CentOS 7

  5. So installieren Sie Let’s Encrypt mit Apache unter CentOS 7

So installieren Sie phpMyAdmin mit Apache unter CentOS 7 / RHEL 7

So installieren Sie phpMyAdmin mit Apache unter CentOS 8 / RHEL 8

So richten Sie den virtuellen Host Apache unter CentOS 8 ein

So installieren Sie Drupal auf CentOS 7 mit Apache

So installieren Sie WordPress auf CentOS 7.1 mit Apache

So installieren Sie Apache mit PHP-FPM auf CentOS 8