In unserem vorherigen Artikel „Installieren des Apache-Webservers unter Linux“ haben wir erklärt, wie Apache auf einem Linux-Rechner installiert wird. In diesem Artikel werden wir uns nun mit der grundlegenden Konfiguration von Apache befassen, die
enthalten wird- Apache-Datenverkehr durch die Firewall zulassen
- Apache-Dienste verwalten
- Virtuelle Hosts in Apache einrichten
- Konfigurieren Sie Apache so, dass er auf einem anderen Port lauscht
- Zugriff von bestimmten IP-Adressen zulassen/verweigern
Voraussetzungen
- Ubuntu 20.04-System
- Benutzer mit sudo-Berechtigungen
- Ein installierter Apache-Webserver
Hinweis: Die in diesem Artikel besprochenen Befehle wurden auf Ubuntu 20.04 LTS getestet (Fokusfossa). Dieselben Befehle gelten auch für die Debian-Distribution.
Apache-Datenverkehr durch die Firewall zulassen
Wenn auf Ihrem Betriebssystem eine Firewall aktiviert ist, müssen Sie Apache-Datenverkehr durchlassen. Der Apache-Server lauscht standardmäßig auf Port 80 für HTTP und 443 für https. Um HTTP-Datenverkehr (Port 80) durch die Firewall zuzulassen, führen Sie den folgenden Befehl im Terminal aus:
$ sudo ufw erlaubt 'Apache'
Um HTTPS-Datenverkehr (Port 443) durch die Firewall zuzulassen, führen Sie den folgenden Befehl im Terminal aus:
$ sudo ufw erlaubt 'Apache Secure'
Um sowohl HTTP- (Port 80) als auch HTTPS- (Port 443) Datenverkehr durch die Firewall zuzulassen, führen Sie die folgenden Befehle im Terminal aus:
$ sudo ufw erlaubt 'Apache Full'
Apache-Dienste verwalten
Nach der Installation startet der Apache-Dienst automatisch im Hintergrund. Geben Sie den folgenden Befehl im Terminal ein, um den Status des Apache-Dienstes anzuzeigen:
$ systemctl status apache2
In der folgenden Ausgabe active (running) Status zeigt, dass der Apache-Dienst aktiv ist und ohne Probleme ausgeführt wird.
Verwenden Sie zum manuellen Starten des Apache-Dienstes den folgenden Befehl:
$ sudo systemctl start apache2
Verwenden Sie den folgenden Befehl, um den Apache-Dienst so zu aktivieren, dass er beim Start/Boot automatisch gestartet wird:
$ sudo systemctl enable apache2
Verwenden Sie zum Neustarten des Apache-Dienstes den folgenden Befehl:
$ sudo systemctl reset apache2
Verwenden Sie zum Stoppen des Apache-Dienstes den folgenden Befehl:
$ sudo systemctl stop apache2
Virtuelle Hosts in Apache einrichten
Mit dem virtuellen Host in Apache können Sie eine Reihe von Websites von einem einzigen Apache-Webserver aus ausführen. Im folgenden Abschnitt konfigurieren wir einen virtuellen Host für unsere Domain „test.org“. Führen Sie bei mehreren Domains die gleichen Schritte für jede Domain aus.
Schritt 1:Erstellen Sie ein Verzeichnis für Ihre Domain
Der erste Schritt besteht darin, ein Verzeichnis für Ihre Domain zu erstellen. Wenn Sie mehrere Domänen hosten müssen, erstellen Sie für jede Domäne separate Verzeichnisse. Für unsere Domain test.org , erstellen wir das Verzeichnis mit dem folgenden Befehl:
$ sudo mkdir /var/www/test.org
Stellen Sie sicher, dass Sie test.org ersetzen mit Ihrem Domainnamen.
Schritt 2:Eigentumsrechte und Berechtigungen festlegen
Das Verzeichnis für unsere Domain gehört derzeit dem Root-Benutzer. Damit andere Benutzer die Dateien ändern können, müssen wir den Eigentümer des Verzeichnisses ändern. Verwenden Sie dazu den folgenden Befehl im Terminal:
$ sudo chown -R $USER:$USER /var/www/ test.org
Legen Sie außerdem die erforderlichen Berechtigungen für das Domänenverzeichnis fest. Der 755 im folgenden Befehl weist allen Lese- und Ausführungsberechtigungen zu, während die Lese-, Schreib- und Ausführungsberechtigungen dem Eigentümer der Datei zugeteilt werden.
$ sudo chmod -R 755 /var/www/test.org
Schritt 3:Beispielseite index.html für Ihre Domain erstellen
Erstellen Sie nun eine Beispiel-index.html Seite für Ihre Domain, um Inhalte bereitzustellen. Erstellen Sie eine Datei index.html in /var/www/test.org Verzeichnis.
Dazu verwenden wir den Nano-Editor:
$ sudo nano /var/www/test.org/index.html
Fügen Sie der Datei den folgenden Inhalt hinzu.
Ihr test.org-Serverblock ist aktiviert! Dies ist eine Testseite für die test.org-Website!
Wenn Sie mit der Bearbeitung fertig sind, speichern und schließen Sie die index.html Datei.
Nun das Beispiel index.html Seite wurde für unsere Website erstellt.
Schritt 4:Erstellen Sie eine neue virtuelle Hostdatei
In Apaches gibt es eine standardmäßige virtuelle Hostdatei, die Konfigurationen für den standardmäßigen Webserver enthält. Für unsere Domain test.org , erstellen wir eine separate virtuelle Hostdatei.
Führen Sie den folgenden Befehl im Terminal aus, um die virtuelle Hostdatei für Ihre Domäne zu erstellen:
$ sudo nano /etc/apache2/sites-available/test.org.conf
Fügen Sie den folgenden Inhalt in die Datei ein.
ServerAdmin [email protected]ServerName test.orgServerAlias www.test.orgDocumentRoot /var/www/test.org/htmlErrorLog ${APACHE_LOG_DIR}/error.logCustomLog ${APACHE_LOG_DIR}/access.log kombiniertStellen Sie sicher, dass Sie test.org ersetzen mit Ihrem eigenen Domainnamen.
Wenn Sie mit der Bearbeitung fertig sind, speichern und schließen Sie die Datei.
Schritt 5:Virtuelle Hostdatei aktivieren
Jetzt aktivieren wir die virtuelle Hostdatei, die wir im vorherigen Schritt erstellt haben. Geben Sie dazu den folgenden Befehl im Terminal ein:
$ sudo a2ensite test.org.conf
Wir verwenden nicht die standardmäßige virtuelle Hostdatei, daher können wir sie deaktivieren. Verwenden Sie den folgenden Befehl, um es zu deaktivieren:
$ sudo a2dissite 000-default.conf
Laden Sie nun die Apache-Konfigurationen mit dem folgenden Befehl neu:
$ systemctl apache2 neu laden
Schritt 6:Hosts-Datei konfigurieren (optional)
Wenn Sie keinen tatsächlichen Domainnamen haben und das Verfahren nur mit einer beliebigen Testdomain testen möchten, müssen Sie einen Eintrag für Ihre Domain in /etc/hosts hinzufügen Datei.
Bearbeiten Sie /etc/hosts Datei mit dem folgenden Befehl im Terminal:
$ sudo nano /etc/hostsFügen Sie in dieser Datei den folgenden Eintrag hinzu, der die server_IP ersetzt und domain_name mit der IP-Adresse und dem Domänennamen Ihrer Umgebung.
server_IP DomänennameIn unserem Beispiel wäre der Eintrag:
192.168.72.157 test.orgSpeichern und schließen Sie nun die Datei /etc/hosts.
Schritt 6:Auf Fehler testen
Testen Sie jetzt die Apache-Konfigurationen auf Fehler. Verwenden Sie dazu den folgenden Befehl:
$ sudo apache2ctl configtestWenn alles in Ordnung ist, erhalten Sie die Syntax OK Nachricht in der Ausgabe. Möglicherweise sehen Sie auch die folgende Warnmeldung im Testergebnis.
Um diese Meldung zu unterdrücken, fügen Sie ServerName hinzu Direktive in der /etc/apache2/apache2.conf Datei.
Bearbeiten Sie die /etc/apache2/apache2.conf Datei mit folgendem Befehl im Terminal:
$ sudo nano /etc/apache2/apache2.confFügen Sie den folgenden Eintrag in der Datei hinzu, der test.org ersetzt mit Ihrem Domainnamen:
Servername test.org
Speichern und schließen Sie die Datei.
Testen Sie Apache erneut auf Konfigurationsfehler. Jetzt sehen Sie, dass die Warnung entfernt wurde.
Schritt 7:Testen Sie, ob Apache Ihren Domainnamen bedient
Testen Sie nun die Einrichtung, indem Sie in der Adressleiste Ihres Webbrowsers zu folgender Adresse navigieren.
http://domain_nameIn unserem Beispiel wäre es:
http://test.orgDie folgende Seite zeigt an, dass der virtuelle Host erfolgreich konfiguriert wurde und Apache unseren Domainnamen bedient.
Apache so konfigurieren, dass er auf einem anderen Port lauscht
Standardmäßig überwacht Apache den Webverkehr auf Port 80. Es gibt einige Fälle, in denen Sie den Apache-Port möglicherweise ändern müssen, z. B. wenn ein anderer Dienst Port 80 bereits überwacht, der ISP Port 80 blockiert hat oder Sie Port 80 verhindern möchten Anschläge. Denken Sie jedoch daran, dass Sie nach dem Ändern des Standardports die Browser auf den neuen Port wie http://domain_name:port_nmuber.
verweisen müssen1. Bearbeiten Sie die /etc/apache2/ports.conf Datei mit dem folgenden Befehl:
$ sudo nano /etc/apache2/ports.confDies ist die Standardansicht der ports.conf Datei, in der Sie den als Standardport konfigurierten Port 80 sehen können.
Ändern Sie diese Portnummer in einen beliebigen anderen Wert, auf den der Apache-Server hören soll.
Speichern und schließen Sie die ports.conf-Datei, sobald Sie mit der Bearbeitung fertig sind.
2. Jetzt müssen Sie Ihren virtuellen Host so konfigurieren, dass er auf dem neuen Port lauscht. Um die virtuelle Hostdatei zu bearbeiten, verwenden Sie den folgenden Befehl im Terminal:
$ sudo nano /etc/apache2/sites-avaialble/test.org.conf-DateiStellen Sie im obigen Befehl sicher, dass Sie die test.org.conf ersetzen mit dem Dateinamen Ihres virtuellen Hosts.
Suchen Sie den Eintrag
und ändern Sie den Wert von 80 an eine beliebige Nummer, auf die der Apache hören soll. Zum Beispiel, um die Portnummer in 9090 zu ändern , würde der Eintrag in . geändertHinweis :Um eine Portnummer festzulegen, wählen Sie einen Wert im Bereich von 1024 bis 65535.
Wenn Sie fertig sind, speichern und schließen Sie die Datei.
Apache kann auch so konfiguriert werden, dass es auf mehreren Ports lauscht. Um beispielsweise Port 80 und 9090 als Überwachungsports festzulegen, fügen Sie die folgenden Einträge in /etc/apache2/ports.conf hinzu Datei:
Höre 80Höre 9090Auch in /etc/apache2/sites-avaialble/test.org.conf Datei, fügen Sie einen Eintrag wie folgt hinzu:
Wenn Sie fertig sind, starten Sie den Apache-Dienst mit dem folgenden Befehl im Terminal neu:
$ sudo systemctl reset apache2Zugriff von bestimmten IP-Adressen zulassen/verweigern
Im folgenden Abschnitt erfahren Sie, wie Sie bestimmten IP-Adressen den Zugriff auf unsere Website erlauben/verweigern. Dazu verwenden wir die .htaccess-Datei.
Schritt 1:Apache .htaccess aktivieren
Zuerst müssen wir die .htaccess-Datei aktivieren. Geben Sie dazu im Terminal den folgenden Befehl ein:
$ sudo nano /etc/apache2/sites-available/test.org.confFügen Sie nach dem VirtualHost-Block die folgenden Zeilen in die Datei ein:
Optionen Indizes FollowSymLinksAllowOverride AllRequire alle erteilt Speichern Sie nun die Datei und starten Sie Apache mit dem folgenden Befehl neu:
$ sudo systemctl apache2 neu startenSchritt 2:.htaccess-Datei erstellen
Jetzt müssen wir eine .htaccess-Datei erstellen. Navigieren Sie zum Stammverzeichnis des virtuellen Hosts.
$ cd /var/www/test.orgErstellen Sie dann hier eine .htaccess-Datei mit dem folgenden Befehl:
$ sudo nano .htaccessSchritt 3:IP-Adressen zulassen/ablehnen
leugnen bestimmte IP-Adressen den Zugriff auf Ihre Website verhindern, müssen Sie die Einträge in der .htaccess-Datei wie folgt hinzufügen:
order deny, allow# Verweigern der IP-Adresse 192.168.9.8allow from 192.168.9.8# Verweigern aller IP-Adressen von 192.168.9.0 bis 192.168.9.255allow from 192.168.9To allow Um IP-Adressen vom Zugriff auf Ihre Website zu erhalten, müssen Sie die Einträge in der .htaccess-Datei wie folgt hinzufügen:order deny, allow# Um alle IP-Adressen abzulehnenDeny from all# Erlaubt die IP-Adresse 192.168.9.30allow von 192.168.9.30# Erlaubt alle IP-Adressen von 192.168.9.0 bis 192.168.9.255ab 192.168.9 zulassenDas ist alles, was dazu gehört! In diesem Artikel haben Sie die Grundlagen der Apache-Konfiguration unter Linux erlernt. Dazu gehören die Firewall-Konfiguration, das Verwalten von Apache-Diensten, das Einrichten virtueller Hosts, das Ändern von Standard-Listening-Ports und das Zulassen/Verweigern des Zugriffs auf die Sites durch bestimmte IPs. Weitere Informationen zu Apache-Konfigurationen finden Sie in der offiziellen Apache-Server-Dokumentation unter http://httpd.apache.org/docs/.