GNU/Linux >> LINUX-Kenntnisse >  >> Linux

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


Linux
  1. So konfigurieren Sie mehrere Websites mit dem Apache-Webserver

  2. So installieren Sie Apache Webserver auf Centos 8

  3. So installieren Sie den Apache-Webserver unter Ubuntu

  4. So installieren und konfigurieren Sie den Apache-Webserver unter Ubuntu 13.10

  5. Wie überprüfe ich meine Apache-Webserverkonfiguration auf Syntaxfehler?

So installieren Sie den Apache-Webserver unter Alpine Linux

So installieren Sie den Apache-Webserver unter Debian 11

So installieren Sie den Apache-Webserver unter Ubuntu 18.04

So installieren Sie den Apache-Webserver unter Ubuntu 20.04

Wie optimiere ich den Apache-Webserver?

So installieren und konfigurieren Sie einen LAMP-Webserver unter Ubuntu 18.04