Apache , auch bekannt als Apache HTTP-Server, war in den letzten Jahrzehnten weltweit eine der am häufigsten verwendeten Webserver-Anwendungen. Es ist eine kostenlose Open-Source-Webanwendungssoftware, die von der Apache Software Foundation verwaltet wird . Apache bietet neben anderen beliebten Funktionen einige leistungsstarke Funktionen mit dynamisch ladbaren Modulen, einfacher Integration mit anderer Software und Handhabung statischer Dateien.
Im folgenden Tutorial erfahren Sie, wie Sie Apache Web Server auf AlmaLinux 8 installieren.
Voraussetzungen
- Empfohlenes Betriebssystem: AlmaLinux 8.
- Benutzerkonto: Ein Benutzerkonto mit sudo-Privilegien oder Root-Zugriff (su-Befehl) .
Betriebssystem aktualisieren
Aktualisieren Sie Ihr AlmaLinux Betriebssystem, um sicherzustellen, dass alle vorhandenen Pakete auf dem neuesten Stand sind:
sudo dnf update && sudo dnf upgrade -y
Das Tutorial verwendet den sudo-Befehl und vorausgesetzt, Sie haben den Sudo-Status . So überprüfen Sie den Sudo-Status Ihres Kontos:
sudo whoami
Beispielausgabe, die den Sudo-Status zeigt:
[joshua@localhost ~]$ sudo whoami
root
Wenn Sie noch kein sudo-Benutzerkonto eingerichtet haben und dies gerne tun würden, besuchen Sie unser Tutorial zum So fügen Sie einen Benutzer zu Sudoern auf AlmaLinux hinzu .
So verwenden Sie das Root-Konto verwenden Sie den folgenden Befehl mit dem Root-Passwort, um sich anzumelden.
su
Installieren Sie Apache (HTTPD)
Apache befindet sich standardmäßig im AlmaLinux 8 App-Stream. Dies ist für die meisten Benutzer praktischer, da es sehr stabil und sicher ist. Um Apache zu installieren, öffnen Sie Ihr Terminal und führen Sie den folgenden Befehl aus:
sudo dnf install httpd
Beispielausgabe:
Geben Sie "Y" ein , und drücken Sie dann die "ENTER-TASTE" um fortzufahren.
Als nächstes standardmäßig Apache (HTTPD) kommt deaktiviert und nicht aktiviert. Starten Sie zuerst den Dienst.
sudo systemctl start httpd
Aktivieren Sie optional Apache beim Systemstart.
sudo systemctl enable httpd
Beispielausgabe bei Erfolg:
Created symlink /etc/systemd/system/multi-user.target.wants/httpd.service → /usr/lib/systemd/system/httpd.service.
Überprüfen Sie mit dem folgendensystemctl, ob Apache2 ordnungsgemäß ausgeführt wird Befehl:
systemctl status httpd
Beispielausgabe, wenn alles in Ordnung ist:
Firewall-Regeln konfigurieren
Es fügt bei der Installation von Apache nicht automatisch Firewall-Regeln zu den Standardports 80 oder 443 hinzu. Bevor Sie fortfahren, sollten Sie die folgenden Regeln festlegen, dies hängt davon ab, welche Ports Sie verwenden werden, aber alle Optionen sind aufgelistet.
Port 80 oder HTTP öffnen:
sudo firewall-cmd --permanent --zone=public --add-service=http
Port 443 oder HTTPS öffnen:
sudo firewall-cmd --permanent --zone=public --add-service=https
Firewall neu laden, damit die Änderungen wirksam werden
sudo firewall-cmd --reload
Verifizieren Sie den Apache-Webserver
Nachdem Sie nun installiert und konfiguriert haben, können Sie testen, ob Apache 2 erreichbar ist und ordnungsgemäß funktioniert, indem Sie eine Seite anfordern.
Sie können auf die standardmäßige Apache-Zielseite zugreifen, um zu überprüfen, ob die Software über die IP-Adresse Ihres Servers korrekt ausgeführt wird. Um dies herauszufinden, wenn Sie es nicht wissen, verwenden Sie den folgenden Befehl:
hostname -I
Sie sollten als Beispiel die interne IP-Adresse zurückerhalten, auf der sich der Server befindet:
###EXAMPLE ONLY###
192.168.50.15
Sie erhalten möglicherweise 2 bis 3 Ergebnisse zurück. Probieren Sie jede aus, bis Sie die richtige IP-Adresse gefunden haben.
Wenn Sie Ihre öffentliche IP-Adresse (extern) benötigen, verwenden Sie stattdessen den folgenden Befehl:
curl -4 icanhazip.com
Möglicherweise müssen Sie das CURL-Paket installieren, falls es fehlt. Führen Sie dazu den folgenden Befehl aus:
sudo dnf install curl -y
Sobald Sie die IP-Adresse Ihres Servers haben, öffnen Sie Ihren bevorzugten Internetbrowser und geben Sie Folgendes ein:
http://your_server_ip
Sie sollten die folgende Seite in Ihrem Internetbrowser erhalten:
Herzlichen Glückwunsch, Sie haben den Apache 2-Webserver installiert und arbeiten derzeit.
Der nächste Schritt besteht darin, virtuelle Hosts einzurichten.
Virtuelle Hosts für Apache erstellen und/oder konfigurieren
Mit dem Apache-Webserver können Sie virtuelle Hosts erstellen, um Konfigurationen für mehr als eine Domäne zu verwalten, die auf einem einzelnen Server ausgeführt werden. Wenn Sie zuvor Nginx verwendet haben, ist dies das Äquivalent zu Serverblöcken. Im folgenden Beispiel erstellt das Tutorial eine Domain example-domain.com, die Sie durch Ihren Domainnamen ersetzen.
Verzeichnisse erstellen und/oder konfigurieren
Verlassen Sie zunächst /var/www/html Verzeichnis intakt als Standardverzeichnis, erstellen Sie dann ein neues Verzeichnis, zum Beispiel-domain.com, wie unten:
sudo mkdir /var/www/example_domain
Der nächste Schritt besteht darin, den Besitz des Verzeichnisses mit der Umgebungsvariable $USER zuzuweisen:
sudo chown -R $USER:$USER /var/www/example_domain
Normalerweise sollten die Webroot-Berechtigungen korrekt eingestellt sein, und Sie können dies mit dem Befehl -ls l überprüfen :
ls -l /var/www/example_domain
Beispielausgabe:
drwxr-xr-x 2 joshua joshua 4096 Oct 10 11:46 example_domain
Wie Sie sehen können, haben wir die Erlaubnis von drwxr-xr-x, das entspricht chmod 755 . Wenn Sie diesen Berechtigungssatz nicht haben, führen Sie den folgenden Befehl aus:
sudo chmod -R 755 /var/www/example_domain
Erstellen Sie jetzt mit Ihrem bevorzugten Texteditor eine Beispielseite index.html. Das Tutorial verwendet Nano wie folgt:
sudo nano /var/www/example_domain/index.html
Kopieren Sie in der Datei den folgenden Code und fügen Sie ihn ein:
<html>
<head>
<title>Welcome to Website!</title>
</head>
<body>
<h1>Success! The virtual host is working! You did not mess it up thanks to Linuxcapable.com</h1>
</body>
</html>
Speichern Sie die Datei (STRG+O) , dann beenden (STRG+X) .
Virtuellen Host erstellen
Nun, da Sie eine Zielseite erstellt und die richtigen Eigentümer und Berechtigungen festgelegt haben. Standardmäßig müssen die erforderlichen Verzeichnisse erstellt und eingerichtet werden.
Machen Sie zunächst die für Sites erforderlichen Verzeichnisse verfügbar und für Sites aktiviert. Nginx-Benutzer wären auch mit diesem Setup vertraut.
sudo mkdir /etc/httpd/sites-available
sudo mkdir /etc/httpd/sites-enabled
Als Nächstes müssen Sie Apache anweisen, nach virtuellen Hostdateien zu suchen, die sich unter /etc/httpd/sites-available befinden müssen Verzeichnis.
Öffnen Sie die Konfigurationsdatei.
sudo nano /etc/httpd/conf/httpd.conf
Fügen Sie am Ende der Datei Folgendes hinzu.
IncludeOptional sites-enabled/*.conf
Optional können Sie den Standardordner deaktivieren, in dem Apache nach virtuellen Hostdateien sucht, was möglicherweise Verwirrung vermeiden wollte. Platzieren Sie einfach einen Kommentar neben IncludeOptional conf.d/*.conf .
Beispiel:
#IncludeOptional conf.d/*.conf
IncludeOptional sites-enabled/*.conf
Speichern Sie die Datei (STRG+O), Beenden Sie dann (STRG+X) .
Verwenden Sie als Nächstes Ihren bevorzugten Texteditor, um eine Konfigurationsdatei für virtuelle Hosts zu erstellen, die sich unter /etc/httpd/sites-available/example_domain.conf befindet wie unten:
sudo nano /etc/httpd/sites-available/example_domain.conf
Kopieren Sie nun Folgendes und fügen Sie es in die Konfigurationsblockdatei ein. Beachten Sie, dass Sie Ihren ServerName, ServerAlias ersetzen müssen und Dokumentenstamm mit Ihrem eigenen:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName example_domain
ServerAlias www.example_domain
DocumentRoot /var/www/example_domain
ErrorLog /var/www/example_domain/error.log
CustomLog /var/www/example_domain/requests.log combined
</VirtualHost>
Beachten Sie, dass Sie nicht vergessen, die erforderlichen Server-Direktiven in Ihre eigenen zu ändern.
Speichern Sie die Konfigurationsdatei mit (STRG+O) und mit (CTRL+X) beenden .
Virtuellen Host aktivieren
Der nächste Schritt besteht darin, den virtuellen Host zu aktivieren. Zunächst haben Sie zwei Verzeichnisse erstellt, sites-available und sites-enabled. Jetzt müssen Sie einen symlink erstellen zu sites-enabled um den virtuellen Host zu aktivieren.
Um einen Symlink zu erstellen, verwenden Sie das folgende Beispiel in Ihrem Terminal.
sudo ln -s /etc/httpd/sites-available/example_domain.conf /etc/httpd/example_domain.conf
Wenn Sie fertig sind, starten Sie den Apache-Dienst neu.
sudo systemctl restart httpd
Öffnen Sie Ihren Internetbrowser und geben Sie Ihren Domainnamen HTTP://example_domain ein wo Sie die folgende Zielseite erhalten sollten, die Sie in der Datei index.html erstellt haben:
Herzlichen Glückwunsch, Sie haben Ihren virtuellen Host erfolgreich erstellt und auf Ihrer Domain erfolgreich zum Laufen gebracht.
Apache mit Let’s Encrypt SSL Free Certificate sichern
Idealerweise möchten Sie Ihren Apache auf HTTPS mit einem SSL-Zertifikat ausführen . Verwenden Sie dazu am besten Let’s Encrypt eine kostenlose, automatisierte und offene Zertifizierungsstelle, die von der gemeinnützigen Internet Security Research Group (ISRG) betrieben wird .
Installieren Sie zuerst das EPEL -Repository und das mod_ssl Paket für besser aktualisierte Pakete und Sicherheit.
sudo dnf install epel-release mod_ssl -y
Installieren Sie als Nächstes das certbot-Paket wie folgt:
sudo dnf install python3-certbot-apache -y
Führen Sie nach der Installation den folgenden Befehl aus, um die Erstellung Ihres Zertifikats zu starten:
sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d www.example.com
Dies ist das ideale Setup, das erzwungene HTTPS-301-Umleitungen, Strict-Transport-Security-Header und OCSP-Stapling umfasst. Passen Sie einfach E-Mail und Domainnamen an Ihre Anforderungen an.
Jetzt lautet Ihre URL https://www.example.com statt HTTP://www.example.com .
Beachten Sie, wenn Sie die alte HTTP-URL verwenden , wird automatisch auf HTTPS umgeleitet .
Optional können Sie einen Cronjob einrichten, um die Zertifikate automatisch zu erneuern. Certbot bietet ein Skript an, das dies automatisch durchführt, und Sie können zuerst testen, ob alles funktioniert, indem Sie einen Probelauf durchführen.
sudo certbot renew --dry-run
Wenn alles funktioniert, öffnen Sie Ihr Crontab-Fenster mit dem folgenden Terminalbefehl.
sudo crontab -e
Geben Sie als Nächstes die Zeit an, zu der es automatisch verlängert werden soll. Dies sollte mindestens täglich überprüft werden, und wenn das Zertifikat erneuert werden muss, aktualisiert das Skript das Zertifikat nicht. Wenn Sie Hilfe dabei benötigen, einen guten Zeitpunkt zum Einstellen zu finden, verwenden Sie das kostenlose Tool crontab.guru.
00 00 */1 * * /usr/sbin/certbot-auto renew
Speichern (STRG+O) Beenden Sie dann (STRG+X), und der Cronjob wird automatisch aktiviert.
Verwalten des Apache-Dienstes
Nachdem Sie nun Apache erfolgreich auf Ihrem Server ausgeführt haben, lauten einige Management-Keynotes wie folgt.
Apache-Serverprotokolle
Apache-Serverprotokolle finden Sie im Verzeichnis var/www/example_domain mit custom.log und error.log Dabei handelt es sich respektvoll um die angegebenen Standardzugriffs- und Fehlernamen. Dies kann in Zukunft in Ihrer virtuellen Host-Konfigurationsdatei in andere Namen geändert werden.
Apache-Befehle
Die folgenden Befehle, die Sie zweifellos in Ihrer täglichen Verwaltung verwenden werden, wenn Sie mit Apache arbeiten. Einige der häufigsten sind:
So stoppen Sie den Apache-Webserver:
sudo systemctl stop httpd
So starten Sie den Apache-Webserver:
sudo systemctl start httpd
So starten Sie den Apache-Webserver neu:
sudo systemctl restart httpd
Zum Neuladen des Apache-Webservers (Für kleinere Änderungen, die keinen Neustart erfordern) :
sudo systemctl reload httpd
So deaktivieren Sie Apache beim Serverstart:
sudo systemctl disable httpd
So starten Sie Apache beim Serverstart (wird bei der Installation automatisch aktiviert) :
sudo systemctl enable httpd
Apache aktualisieren
Um Apache in Zukunft zu aktualisieren, geschieht dies mit dem Befehl, mit dem Sie überprüft haben, ob Ihr System auf dem neuesten Stand ist. Beachten Sie, dass Sie immer Backups oder Images erstellen, wenn Sie einen Apache-Dienst haben, der kritische Dienste ausführt. Normalerweise ist ein Upgrade ziemlich sicher, aber manchmal können wie bei jedem Software-Upgrade Fehler auftreten.
Um Apache zu aktualisieren, verwenden Sie den folgenden Befehl:
sudo dnf update
Wenn ein Apache-Upgrade verfügbar ist, verwenden Sie den Befehl:
sudo dnf upgrade
Wie man Apache entfernt (deinstalliert)
Um Apache zu entfernen, wenn Sie es nicht mehr verwenden, können Sie dies mit dem folgenden Befehl tun:
sudo dnf autoremove httpd
Dieser Befehl entfernt auch alle ungenutzten Abhängigkeiten, die mit der Installation geliefert wurden.