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 man Apache Web Server auf Debian 11 Bullseye installiert.
Voraussetzungen
- Empfohlenes Betriebssystem: Debian 11 Bullseye
- Benutzerkonto: Ein Benutzerkonto mit sudo-Privilegien oder Root-Zugriff (su-Befehl) .
Betriebssystem aktualisieren
Aktualisieren Sie Ihr Debian 11 Bullseye Betriebssystem, um sicherzustellen, dass alle vorhandenen Pakete auf dem neuesten Stand sind:
sudo apt update && sudo apt upgrade
Root- oder Sudo-Zugriff
Wenn Sie Ihr Konto beim Start mit Debian im Vergleich zu anderen Distributionen erstellen, erhält es standardmäßig nicht automatisch den Sudoers-Status. Sie müssen entweder Zugriff auf das Root-Passwort haben um den su-Befehl zu verwenden oder besuchen Sie unser Tutorial zum Hinzufügen eines Benutzers zu Sudoern unter Debian.
Das Tutorial verwendet den sudo-Befehl und vorausgesetzt, Sie haben den Sudo-Status . Wenn Sie keinen sudo-Benutzer eingerichtet haben, verwenden Sie den folgenden Befehl, um sich bei root anzumelden und fortzufahren.
su
Methode 1. Installieren Sie Apache aus dem Debian-Repository
Die erste Möglichkeit, Apache zu installieren, besteht darin, das Standard-Debian-Repository zu verwenden. 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 apt install apache2 -y
Überprüfen Sie als Nächstes, ob die Installation erfolgreich war, indem Sie die Build-Version von Apache überprüfen:
sudo apache2 --version
Beispielausgabe:
Server version: Apache/2.4.51
Überprüfen Sie mit dem folgendensystemctl, ob Apache2 ordnungsgemäß ausgeführt wird Befehl:
systemctl status apache2
Beispielausgabe, wenn alles in Ordnung ist:
Methode 2. Installieren Sie den neuesten Apache aus dem Ondřej Surý-Repository
Standardmäßig ist Apache in den Debian-Software-Repositories verfügbar , wodurch es einfach zu installieren ist. Wie viele von Debian wissen, kann es jedoch oft hinter dem aktuellen Stand zurückbleiben, nicht so sehr in Bezug auf Sicherheitsrisiken. Dennoch fehlen die neueren Funktionen und Verbesserungen.
Benutzern, die den neuesten Apache haben möchten, wird empfohlen, die Version von Apache 2 von Ondřej Surý zu installieren , das aktuellste und vorgefertigte mit besonders häufig verwendeten Modulen.
Wenn Sie curl nicht installiert haben, verwenden Sie zunächst den folgenden Befehl:
sudo apt install curl -y
Um das Repository hinzuzufügen, verwenden Sie den folgenden Befehl in Ihrem Terminal:
curl -sSL https://packages.sury.org/apache2/README.txt | sudo bash -x
Aktualisieren Sie Ihr Repository, um die neue Änderung widerzuspiegeln:
sudo apt update
Nachdem Sie nun das Apache-Repository installiert haben und die Repository-Liste aktualisiert haben, installieren Sie Apache2 mit dem Folgenden:
sudo apt install apache2 -y
Die Installation installiert alle erforderlichen Abhängigkeiten.
Bestätigen Sie nach der Installation die Version, indem Sie den folgenden Befehl ausführen:
apache2 -v
Beispielausgabe:
Server version: Apache/2.4.51
Beachten Sie, dass sich beide Repositories zum Zeitpunkt des Tutorials aufgrund eines DRINGENDEN CVE-Updates auf derselben Version befinden. Normalerweise ist das Ondřej Surý-Repository dem standardmäßigen Debian 11 jederzeit voraus.
Überprüfen Sie mit dem folgendensystemctl, ob Apache2 ordnungsgemäß ausgeführt wird Befehl:
systemctl status apache2
Beispielausgabe, wenn alles in Ordnung ist:
Optional – Konfigurieren Sie die UFW-Firewall für Apache
Debian-Benutzer, die UFW installiert haben, müssen die UFW-Regeln anpassen um externen Zugriff auf die Standard-Webports zu ermöglichen. Glücklicherweise registriert sich Apache während der Installation selbst bei UFW, um einige Profile bereitzustellen, die verwendet werden können, um den Zugriff zu aktivieren oder zu deaktivieren, was die Konfiguration einfach und schnell macht.
Standardmäßig ist UFW nicht installiert. Wenn Sie UFW installieren möchten, führen Sie den folgenden Befehl in Ihrem Terminal aus:
sudo apt install ufw -y
Als nächstes aktivieren Sie UFW. Wenn Sie die Firewall aktivieren, verweigert sie standardmäßig alle eingehenden und lässt alle ausgehenden zu.
sudo ufw enable
Listen Sie zunächst die Anwendungsprofile auf, um die Apache-Profile anzuzeigen, die mit dem folgenden Befehl verfügbar sind:
sudo ufw app list
Beispielausgabe:
Available applications:
Apache
Apache Full
Apache Secure
Aus der obigen Ausgabe haben Sie drei Profiloptionen zur Auswahl. Um es aufzuschlüsseln, Apache läuft auf Port 80 (HTTP), Apache Secure läuft auf Port 443 (HTTPS) und Apache Full ist eine Kombination aus beiden. Am gebräuchlichsten ist entweder Apache Full oder Apache Secure.
Da wir für das Tutorial kein SSL eingerichtet haben, aktivieren wir das (Apache-)Profil mit dem folgenden Befehl:
sudo ufw allow 'Apache'
Beispielausgabe:
Rule added
Rule added (v6)
Wie oben wurden die Regeln sowohl für IPV4 als auch für IPV6 hinzugefügt. Später können Sie dieses Profil deaktivieren und nur sicher aktivieren oder die Apache-Regel deaktivieren und stattdessen die vollständige Apache-Regel verwenden.
Verifizieren Sie den Apache-Webserver
Nachdem Sie die UFW-Firewall 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 apt 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.
Standardmäßig verfügt Apache unter Debian 11 über einen standardmäßig aktivierten Serverblock, der so konfiguriert ist, dass er Dokumente aus /var/www/html bereitstellt Verzeichnis. Wenn Sie eine Website betreiben, können Sie diesen Serverblock an Ihre Bedürfnisse anpassen. Wenn Sie jedoch mehrere Websites hosten, müssen Sie eine neue Verzeichnisstruktur für Ihre verschiedenen Domains erstellen.
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.</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. Sie können nun mit der Erstellung einer virtuellen Hostdatei fortfahren. Standardmäßig müssen sich alle virtuellen Hostdateien unter /etc/apache2/sites-available/ befinden Verzeichnis.
Verwenden Sie zunächst Ihren bevorzugten Texteditor, um eine Konfigurationsdatei zu erstellen, die sich unter /etc/apache2/sites-available/example_domain.conf befindet wie unten:
sudo nano /etc/apache2/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 ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.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
Nachdem Sie nun Ihre Konfigurationsdatei für den virtuellen Host bereit haben, ist es an der Zeit, sie zu aktivieren. Im Gegensatz zu Nginx, wo Sie mit dem Befehl ln -s einen Symlink erstellen würden, verwendet Apache bei Apache seine Tools, wie das folgende Tutorial zeigt:
Deaktivieren Sie zunächst die vorhandene standardmäßig installierte Serverblockdatei 000-default.conf mit dem a2dissite-Befehl:
sudo a2dissite 000-default.conf
Aktivieren Sie jetzt Ihre virtuelle Hostdatei mit der a2ensite Befehl:
sudo a2ensite example_domain.conf
Jetzt hat Apache, wie die meisten Webserver-Anwendungen, einen Probelauf Funktion. Bevor Sie es live schalten, testen Sie Ihre Konfigurationsdatei mit dem folgenden Befehl:
sudo apache2ctl configtest
Wenn alles richtig funktioniert, sollte die Beispielausgabe so aussehen:
Syntax OK
Starten Sie nun den Apache-Webserver neu, um Ihren neuen virtuellen Host mit dem folgenden Befehl live zu schalten:
sudo systemctl restart apache2
Apache sollte derzeit die Zielseite bereitstellen, die Sie für Ihre neue Domain erstellt haben. Um dies zu testen, ö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 certbot-Paket wie folgt:
sudo apt 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 .
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 befinden sich im Verzeichnis /var/log/apache2/ mit access.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 apache2
So starten Sie den Apache-Webserver:
sudo systemctl start apache2
So starten Sie den Apache-Webserver neu:
sudo systemctl restart apache2
Zum Neuladen des Apache-Webservers (Für kleinere Änderungen, die keinen Neustart erfordern) :
sudo systemctl reload apache2
So deaktivieren Sie Apache beim Serverstart:
sudo systemctl disable apache2
So starten Sie Apache beim Serverstart (wird bei der Installation automatisch aktiviert) :
sudo systemctl enable apache2
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 apt update
Wenn ein Apache-Upgrade verfügbar ist, verwenden Sie den Befehl:
sudo apt 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 apt autoremove apache2 --purge
Dieser Befehl entfernt auch alle ungenutzten Abhängigkeiten, die mit der Installation geliefert wurden.