Ich hoste seit vielen Jahren meine eigenen Websites. Seit ich vor mehr als 20 Jahren von OS/2 auf Linux umgestiegen bin, verwende ich Apache als meine Serversoftware. Apache ist solide, bekannt und für eine Basisinstallation recht einfach zu konfigurieren. Es ist nicht wirklich viel schwieriger, es für ein komplexeres Setup zu konfigurieren, wie z. B. mehrere Websites.
Weitere Linux-Ressourcen
- Spickzettel für Linux-Befehle
- Spickzettel für fortgeschrittene Linux-Befehle
- Kostenloser Online-Kurs:RHEL Technical Overview
- Spickzettel für Linux-Netzwerke
- SELinux-Spickzettel
- Spickzettel für allgemeine Linux-Befehle
- Was sind Linux-Container?
- Unsere neuesten Linux-Artikel
Die Installation und Konfiguration des Apache-Webservers muss als root durchgeführt werden. Die Konfiguration der Firewall muss auch als Root durchgeführt werden. Die Verwendung eines Browsers zum Anzeigen der Ergebnisse dieser Arbeit sollte als Nicht-Root-Benutzer erfolgen. (Ich verwende den Benutzer student
auf meinem virtuellen Host.)
Installation
Hinweis:Dieser Artikel wurde mit Fedora 33 mit Apache 2.4.46 aktualisiert. Wenn Sie eine andere Distribution oder eine andere Version von Fedora verwenden, können Ihre Befehle und die Speicherorte und Inhalte der Konfigurationsdateien unterschiedlich sein. Die Konfigurationszeilen, die Sie ändern müssen, sind jedoch unabhängig von der Distribution gleich.
Der Apache-Webserver ist einfach zu installieren. Mit einem Befehl können Sie es und alle notwendigen Abhängigkeiten installieren:
$ dnf install httpd
Alle Konfigurationsdateien für Apache befinden sich in /etc/httpd/conf
und /etc/httpd/conf.d
. Die Daten für Websites, die Sie mit Apache betreiben, befinden sich in /var/www
standardmäßig, aber Sie können das ändern, wenn Sie möchten.
Konfiguration
Die primäre Apache-Konfigurationsdatei ist /etc/httpd/conf/httpd.conf
. Es enthält viele Konfigurationsanweisungen, die für eine Basisinstallation nicht geändert werden müssen. Tatsächlich müssen nur wenige Änderungen an dieser Datei vorgenommen werden, um eine einfache Website zum Laufen zu bringen. Die Datei ist sehr groß, also zeige ich nur die Anweisungen, die Sie ändern müssen, anstatt diesen Artikel mit vielen unnötigen Dingen zu überladen.
Nehmen Sie sich zunächst etwas Zeit und durchsuchen Sie die httpd.conf
Datei, um sich damit vertraut zu machen. Eines der Dinge, die ich an den Red Hat-Versionen der meisten Konfigurationsdateien mag, ist die Anzahl der Kommentare, die die verschiedenen Abschnitte und Konfigurationsanweisungen in den Dateien beschreiben. Die httpd.conf
Datei ist keine Ausnahme, da sie recht gut kommentiert ist. Verwenden Sie diese Kommentare, um zu verstehen, was die Datei konfiguriert.
Das erste zu ändernde Element ist Listen
-Anweisung, die die IP-Adresse und den Port definiert, auf denen Apache auf Seitenanforderungen lauschen soll. Im Moment müssen Sie diese Website nur für den lokalen Computer verfügbar machen, also verwenden Sie den localhost
die Anschrift. Die Zeile sollte am Ende so aussehen:
Listen 127.0.0.1:80
Mit dieser Direktive auf die IP-Adresse des localhost
gesetzt , hört Apache nur auf Verbindungen vom lokalen Host. Wenn Sie möchten, dass der Webserver Verbindungen von entfernten Hosts überwacht, verwenden Sie die externe IP-Adresse des Hosts.
Der DocumentRoot
Die Direktive gibt den Speicherort der HTML-Dateien an, aus denen die Seiten der Website bestehen. Diese Linie muss nicht geändert werden, da sie bereits auf die Standardposition zeigt. Die Zeile sollte folgendermaßen aussehen:
DocumentRoot "/var/www/html"
Das Apache-Installations-RPM erstellt den /var/www
Verzeichnisbaum. Wenn Sie den Ort ändern möchten, an dem die Website-Dateien gespeichert werden, wird dieses Konfigurationselement dazu verwendet. Beispielsweise möchten Sie möglicherweise einen anderen Namen für www
verwenden Unterverzeichnis, um die Identifizierung der Website eindeutiger zu machen. Das könnte so aussehen:
DocumentRoot "/var/mywebsite/html"
Dies sind die einzigen Apache-Konfigurationsänderungen, die zum Erstellen einer einfachen Website erforderlich sind. Für diese kleine Übung wurde nur eine Änderung an der httpd.conf
vorgenommen Datei – die Listen
Richtlinie. Alles andere ist bereits konfiguriert, um einen funktionierenden Webserver zu erstellen.
Eine weitere Änderung ist jedoch erforderlich:das Öffnen von Port 80 in unserer Firewall. Ich verwende iptables als meine Firewall, also ändere ich /etc/sysconfig/iptables
um eine Anweisung hinzuzufügen, die das HTTP-Protokoll zulässt. Die gesamte Datei sieht folgendermaßen aus:
# sample configuration for iptables service
# you can edit this manually or use system-config-firewall
# please do not ask us to add additional ports/services to this default configuration
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
Die Zeile, die ich hinzugefügt habe, ist die dritte von unten, die eingehenden Datenverkehr auf Port 80 zulässt. Jetzt lade ich die geänderte iptables-Konfiguration neu.
[root@testvm1 ~]# cd /etc/sysconfig/ ; iptables-restore iptables
Erstellen Sie die index.html-Datei
Die index.html
Datei ist die Standarddatei, die ein Webserver bereitstellt, wenn Sie auf die Website nur mit dem Domänennamen und nicht mit einem bestimmten HTML-Dateinamen zugreifen. Im /var/www/html
erstellen Sie eine Datei mit dem Namen index.html
. Fügen Sie den Inhalt Hello World
hinzu . Sie müssen kein HTML-Markup hinzufügen, damit dies funktioniert. Die einzige Aufgabe des Webservers besteht darin, einen Strom von Textdaten bereitzustellen, und der Server hat keine Ahnung, wie das Datum lautet oder wie es wiedergegeben werden soll. Es überträgt einfach den Datenstrom an den anfragenden Host.
Legen Sie nach dem Speichern der Datei den Besitz auf apache.apache
fest .
[root@testvm1 html]# chown apache.apache index.html
Apache starten
Apache ist sehr einfach zu starten. Aktuelle Versionen von Fedora verwenden systemd
. Führen Sie die folgenden Befehle aus, um ihn zu starten und dann den Status des Servers zu überprüfen:
[root@testvm1 ~]# systemctl start httpd
[root@testvm1 ~]# systemctl status httpd
● httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
Active: active (running) since Thu 2018-02-08 13:18:54 EST; 5s ago
Docs: man:httpd.service(8)
Main PID: 27107 (httpd)
Status: "Processing requests..."
Tasks: 213 (limit: 4915)
CGroup: /system.slice/httpd.service
├─27107 /usr/sbin/httpd -DFOREGROUND
├─27108 /usr/sbin/httpd -DFOREGROUND
├─27109 /usr/sbin/httpd -DFOREGROUND
├─27110 /usr/sbin/httpd -DFOREGROUND
└─27111 /usr/sbin/httpd -DFOREGROUND
Feb 08 13:18:54 testvm1 systemd[1]: Starting The Apache HTTP Server...
Feb 08 13:18:54 testvm1 systemd[1]: Started The Apache HTTP Server.
Die Befehle können auf Ihrem Server anders sein. Auf Linux-Systemen, die SystemV-Startskripte verwenden, wären die Befehle:
[root@testvm1 ~]# service httpd start
Starting httpd: [Fri Feb 09 08:18:07 2018] [ OK ]
[root@testvm1 ~]# service httpd status
httpd (pid 14649) is running...
Wenn Sie auf Ihrem Host einen Webbrowser wie Firefox oder Chrome haben, können Sie die URL localhost
verwenden in der URL-Zeile des Browsers, um Ihre Webseite anzuzeigen, so einfach es ist. Sie können auch einen Webbrowser im Textmodus wie Lynx verwenden, um die Webseite anzuzeigen. Installieren Sie zuerst Lynx (falls es noch nicht installiert ist).
[root@testvm1 ~]# dnf -y install lynx
Verwenden Sie dann den folgenden Befehl, um die Webseite anzuzeigen.
[root@testvm1 ~]# lynx localhost
Das Ergebnis sieht in meiner Terminalsitzung so aus. Ich habe viele Leerstellen auf der Seite gelöscht.
Hello World
<snip>
Commands: Use arrow keys to move, '?' for help, 'q' to quit, '<-' to go back.
Arrow keys: Up and Down to move. Right to follow a link; Left to go back.
H)elp O)ptions P)rint G)o M)ain screen Q)uit /=search [delete]=history list
Als nächstes bearbeiten Sie Ihre index.html
Datei und fügen Sie etwas HTML-Markup hinzu, sodass es so aussieht:
<h1>Hello World</h1>
Aktualisieren Sie nun den Browser. Verwenden Sie für Lynx die Tastenkombination Strg+R. Nur die Ergebnisse sehen etwas anders aus. Der Text ist farbig, so zeigt Lynx Überschriften an, wenn Ihr Terminal Farbe unterstützt, und er ist jetzt zentriert. In einem GUI-Browser würde der Text in einer großen Schriftart erscheinen.
Hello World
<snip>
Commands: Use arrow keys to move, '?' for help, 'q' to quit, '<-' to go back.
Arrow keys: Up and Down to move. Right to follow a link; Left to go back.
H)elp O)ptions P)rint G)o M)ain screen Q)uit /=search [delete]=history list
Abschiedsgedanken
Wie Sie dieser kleinen Übung entnehmen können, ist es einfach, einen Apache-Webserver einzurichten. Die Einzelheiten hängen von Ihrer Distribution und der von dieser Distribution bereitgestellten Apache-Version ab. In meiner Umgebung war das eine ziemlich triviale Übung.
Aber es gibt noch mehr, denn Apache ist sehr flexibel und leistungsfähig. Nächsten Monat werde ich das Hosten mehrerer Websites mit einer einzigen Instanz von Apache besprechen.
Dieser Artikel wurde ursprünglich im Jahr 2018 veröffentlicht und vom Herausgeber aktualisiert.