Advertisements

So konfigurieren Sie einen Apache-Webserver

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, wie z. B. mehrere Websites, zu konfigurieren.

Weitere Linux-Ressourcen

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 erforderlichen 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 ausführen, befinden sich in /var/www standardmäßig, aber Sie können das ändern, wenn Sie möchten.

Aufbau

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 stöbern Sie durch 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. Der 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 Element, das sich ändert, ist die 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 die localhost die Anschrift. Die Zeile sollte am Ende so aussehen:

Listen 127.0.0.1:80

Mit dieser Anweisung auf die IP-Adresse des localhost, 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 so aussehen:

DocumentRoot "/var/www/html"

Das Apache-Installations-RPM erstellt die /var/www Verzeichnisbaum. Wenn Sie den Speicherort ändern möchten, an dem die Website-Dateien gespeichert werden, wird dieses Konfigurationselement dazu verwendet. Beispielsweise möchten Sie vielleicht einen anderen Namen für die verwenden www 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 vorgenommen httpd.conf Datei – die Listen Richtlinie. Alles andere ist bereits so konfiguriert, dass ein funktionierender Webserver entsteht.

Eine weitere Änderung ist jedoch erforderlich: das Öffnen von Port 80 in unserer Firewall. Ich benutze iptables als meine Firewall, also wechsle ich /etc/sysconfig/iptables um eine Anweisung hinzuzufügen, die das HTTP-Protokoll zulässt. Die gesamte Datei sieht so 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.

[[email protected] ~]# cd /etc/sysconfig/ ; iptables-restore iptables

Erstellen Sie die Datei index.html

Der 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 Verzeichnis, erstellen Sie eine Datei mit dem Namen index.html. Fügen Sie den Inhalt hinzu Hello World. 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 Eigentümer fest auf apache.apache.

[[email protected] 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 es zu starten und dann den Status des Servers zu überprüfen:

[[email protected] ~]# systemctl start httpd
[[email protected] ~]# 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:

[[email protected] ~]# service httpd start
Starting httpd: [Fri Feb 09 08:18:07 2018]          [  OK  ]
[[email protected] ~]# 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 verwenden localhost 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).

[[email protected] ~]# dnf -y install lynx

Verwenden Sie dann den folgenden Befehl, um die Webseite anzuzeigen.

[[email protected] ~]# lynx localhost

Das Ergebnis sieht in meiner Terminalsitzung so aus. Ich habe einen Großteil des leeren Raums 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äre der Text in einer großen Schriftart.

                                   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 meinem Umfeld 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.

So konfigurieren Sie einen Apache-Webserver

Leave a Reply

Your email address will not be published. Required fields are marked *

Scroll to top