Apache HTTP-Server ist der beliebteste Webserver der Welt. Es ist ein kostenloser, quelloffener und plattformübergreifender HTTP-Server, der leistungsstarke Funktionen bietet, die durch eine Vielzahl von Modulen erweitert werden können. Die folgende Anleitung beschreibt, wie Sie den Apache-Webserver auf Ihrem CentOS 7-Rechner installieren und verwalten.
Voraussetzungen #
Bevor Sie mit dem Tutorial beginnen, vergewissern Sie sich, dass Sie als Benutzer mit sudo-Berechtigungen angemeldet sind.
Installieren von Apache #
Apache ist in den standardmäßigen CentOS-Repositories verfügbar und die Installation ist ziemlich einfach.
Unter CentOS und RHEL heißen das Apache-Paket und der Dienst httpd
. Um das Paket zu installieren, führen Sie den folgenden Befehl aus:
sudo yum install httpd
Aktivieren und starten Sie nach Abschluss der Installation den Apache-Dienst:
sudo systemctl enable httpd
sudo systemctl start httpd
Firewall anpassen #
Wenn Ihr Server durch eine Firewall geschützt ist, müssen Sie HTTP- und HTTPS-Ports öffnen, 80
und 443
. Verwenden Sie die folgenden Befehle, um die erforderlichen Ports zu öffnen:
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload
Verifizieren der Apache-Installation #
Nachdem wir nun Apache auf unserem CentOS 7-Server installiert und ausgeführt haben, können wir den Status und die Version des Apache-Dienstes überprüfen mit:
sudo systemctl status httpd
● httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
Active: active (running) since Thu 2018-04-26 07:13:07 UTC; 11s ago
Docs: man:httpd(8)
man:apachectl(8)
Main PID: 3049 (httpd)
...
sudo httpd -v
Server version: Apache/2.4.6 (CentOS)
Server built: Oct 19 2017 20:39:16
Um schließlich zu überprüfen, ob alles richtig funktioniert, öffnen Sie Ihre Server-IP-Adresse http://YOUR_IP
in Ihrem Browser Ihrer Wahl, und Sie sehen die standardmäßige Apache-Willkommensseite von CentOS 7, wie unten gezeigt:
Verwalten des Apache-Dienstes #
Sie können den Apache-Dienst genauso verwalten wie jede andere systemd-Einheit.
Um den Apache-Dienst zu stoppen, führen Sie Folgendes aus:
sudo systemctl stop httpd
Geben Sie zum erneuten Starten Folgendes ein:
sudo systemctl start httpd
So starten Sie den Apache-Dienst neu:
sudo systemctl restart httpd
So laden Sie den Apache-Dienst neu, nachdem Sie einige Konfigurationsänderungen vorgenommen haben:
sudo systemctl reload httpd
Wenn Sie den Apache-Dienst für den Start beim Booten deaktivieren möchten:
sudo systemctl disable httpd
Und um es wieder zu aktivieren:
sudo systemctl enable httpd
Struktur und Best Practices der Apache-Konfigurationsdatei #
- Alle Apache-Konfigurationsdateien befinden sich im Verzeichnis
/etc/httpd
Verzeichnis. - Die Apache-Hauptkonfigurationsdatei ist
/etc/httpd/conf/httpd.conf
. - Alle Konfigurationsdateien, die mit
.conf
enden befindet sich in/etc/httpd/conf.d
-Verzeichnis sind in der Apache-Hauptkonfigurationsdatei enthalten. - Konfigurationsdateien, die für das Laden verschiedener Apache-Module verantwortlich sind, befinden sich in
/etc/httpd/conf.modules.d
Verzeichnis. - Zur besseren Wartbarkeit wird empfohlen, für jede Domain eine eigene Konfigurationsdatei (vhost) anzulegen.
- Neue Apache vhost-Dateien müssen mit
.conf
enden und in/etc/httpd/conf.d
gespeichert werden Verzeichnis. Sie können so viele vhosts haben, wie Sie brauchen. - Es ist eine gute Idee, einer Standard-Namenskonvention zu folgen, beispielsweise wenn Ihr Domänenname
mydomain.com
ist dann sollte die Konfigurationsdatei/etc/httpd/conf.d/mydomain.com.conf
heißen - Apache-Protokolldateien (
access_log
underror_log
) befinden sich im/var/log/httpd/
Verzeichnis. Es wird empfohlen, einen anderenaccess
zu haben underror
log-Dateien für jeden vhost. - Sie können das Root-Verzeichnis Ihrer Domänendokumente auf einen beliebigen Speicherort festlegen. Die häufigsten Speicherorte für Webroot sind:
/home/<user_name>/<site_name>
/var/www/<site_name>
/var/www/html/<site_name>
/opt/<site_name>