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