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 httpdsudo 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=httpsudo firewall-cmd --permanent --zone=public --add-service=httpssudo 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/httpdVerzeichnis. - Die Apache-Hauptkonfigurationsdatei ist
/etc/httpd/conf/httpd.conf. - Alle Konfigurationsdateien, die mit
.confenden 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.dVerzeichnis. - Zur besseren Wartbarkeit wird empfohlen, für jede Domain eine eigene Konfigurationsdatei (vhost) anzulegen.
- Neue Apache vhost-Dateien müssen mit
.confenden und in/etc/httpd/conf.dgespeichert 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.comist dann sollte die Konfigurationsdatei/etc/httpd/conf.d/mydomain.com.confheißen - Apache-Protokolldateien (
access_logunderror_log) befinden sich im/var/log/httpd/Verzeichnis. Es wird empfohlen, einen anderenaccesszu haben underrorlog-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>