Apache-Grundlagen: Fehlerbehebung bei Installation und Konfiguration

Einführung

Der Apache-Webserver ist ein Open-Source-Webserver, der für seine Flexibilität, Leistung und umfassende Unterstützung bekannt ist. In diesem Handbuch werden einige allgemeine Verfahren zum Verwalten des Apache-Servers beschrieben, darunter das Stoppen, Starten und Aktivieren des Dienstes, das Arbeiten mit virtuellen Hostdateien und -verzeichnissen sowie das Suchen wichtiger Dateien und Verzeichnisse auf Ihrem Server.

Dieses Handbuch richtet sich an Benutzer, die mit Apache unter Ubuntu arbeiten. Benutzer, die an CentOS und anderen RHEL-basierten Distributionen arbeiten, können Abschnitt 1 in https://www.digitalocean.com/community/tutorials/how-to-install-linux-apache-mysql-php-lamp-stack-on- lesen. centos-7 [dieses Tutorial] enthält Informationen zur Installation von Apache unter CentOS.

So verwenden Sie dieses Handbuch:

  • Jeder Abschnitt kann unabhängig von anderen verwendet werden. Sie können also jederzeit zu den Abschnitten wechseln, die für Ihre Anforderungen relevant sind.

  • Jeder Befehl ist in sich abgeschlossen, sodass Sie die roten Werte durch Ihre eigenen Werte ersetzen können.

  • Jeder Abschnitt enthält verknüpfte Ressourcen, in denen Sie weitere Informationen zu den behandelten Themen finden.

Installieren des Apache-Dienstes

Um den Apache-Dienst zu installieren, aktualisieren Sie Ihre Paketindizes und installieren Sie:

sudo apt-get update
sudo apt-get install apache2

Weitere Informationen zum Installationsvorgang finden Sie in unserem Tutorial unter https://www.digitalocean.com/community/tutorials/how-to-install-the-apache-web-server-on-ubuntu-16-04[How To Installieren Sie den Apache Web Server unter Ubuntu 16.04.

Aktivieren und Deaktivieren der Apache-Einheit

Unser Apache-Dienst ist so konfiguriert, dass er beim Booten automatisch startet. Wenn wir dieses Verhalten jedoch ändern möchten, können wir Folgendes eingeben:

sudo systemctl disable apache2.service

So lassen Sie zu, dass Apache beim Booten erneut gestartet wird:

sudo systemctl enable apache2.service

Beenden, Starten und erneutes Laden von Apache

Geben Sie den folgenden Befehl ein, um den Apache-Server zu stoppen:

sudo systemctl stop apache2

Geben Sie zum Starten des Apache-Servers Folgendes ein:

sudo systemctl start apache2

Geben Sie Folgendes ein, um den Dienst zu beenden und erneut zu starten:

sudo systemctl restart apache2

Wenn Sie Konfigurationsänderungen vornehmen, können Sie Apache neu laden, ohne die Verbindungen zu trennen. Geben Sie den folgenden Befehl ein:

sudo systemctl reload apache2

Weitere Informationen zum Init-System "+ systemd " und zum Befehl " systemctl +" finden Sie unter https://www.digitalocean.com/community/tutorials/systemd-essentials-working-with-services-units-and- the-journal [Einführung in systemd essentials].

Überprüfen des Serverstatus

Geben Sie Folgendes ein, um den Status Ihres Apache-Servers zu überprüfen:

sudo systemctl status apache2

Die Ausgabe dieses Befehls zeigt an, ob Apache ausgeführt wird oder nicht, und zeigt die letzten Zeilen in den Protokolldateien an.

Erstellen eines Dokumentstammverzeichnisses für eine statische Website

Wenn Entwickler mit Apache Websites erstellen, verwenden sie häufig "+ virtuelle Hosts " - Einheiten, die einzelne Sites oder Domänen umfassen. Dieser Prozess beinhaltet das Erstellen eines Verzeichnisses für das " document root +", das von Apache bei der Bereitstellung von Inhalten überprüft wird.

Erstellen Sie das Verzeichnis:

sudo mkdir -p /var/www//public_html

Weisen Sie Ihrem Nicht-Root-Benutzer den Besitz des Verzeichnisses zu:

sudo chown -R $USER:$USER /var/www//public_html

Lesezugriff auf das allgemeine Webverzeichnis zulassen:

sudo find /var/www -type d -exec chmod  {} \;

Weitere Informationen zu Berechtigungen finden Sie unter introduction to Linux permissions. Beachten Sie, dass sich Ihre Berechtigungen je nach Ihren Anforderungen und Anwendungsfällen ändern können.

Erstellen eines Dokumentstammverzeichnisses für dynamische Verarbeitungsmodule

Wenn Sie mit einem dynamischen Verarbeitungsmodul wie PHP arbeiten, erstellen Sie Ihr Dokumentenstammverzeichnis wie folgt:

sudo mkdir -p /var/www//public_html

Weisen Sie Ihrem Nicht-Root-Benutzer den Besitz des Verzeichnisses und der Gruppe "+ www-data +" den Besitz der Gruppe zu:

sudo chown -R :www-data /var/www//public_html

Konfigurationseinstellungen ändern

Wenn Sie mit virtuellen Hosts arbeiten, müssen Sie die Konfigurationseinstellungen so ändern, dass sie die Domain-Besonderheiten widerspiegeln, damit Apache korrekt auf Domain-Anfragen reagieren kann.

Öffnen Sie die Konfigurationsdatei Ihres virtuellen Hosts:

sudo nano /etc/apache2/sites-available/.conf

Ändern Sie Folgendes:

ServerAdmin
ServerName
ServerAlias
DocumentRoot /var/www//public_html

Mit Änderungen sollte die Datei wie folgt aussehen (vorausgesetzt, sie wurde zuvor noch nicht geändert):

/etc/apache2/sites-available/example.com.conf

<VirtualHost *:80>
       ServerAdmin
       ServerName
       ServerAlias
       DocumentRoot /var/www//public_html
       ErrorLog ${APACHE_LOG_DIR}/error.log
       CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Überprüfen Sie bei der Fehlerbehebung unbedingt diese Datei und ihre Anweisungen.

Weitere Informationen zum Arbeiten mit virtuellen Hosts finden Sie in unserer Diskussion unter working mit virtuellen Apache-Hosts unter Ubuntu 16.04.

Aktivieren und Deaktivieren von Konfigurationsdateien

Virtuelle Hostdateien

So aktivieren Sie Konfigurationsdateien für virtuelle Hosts:

sudo a2ensite .conf

So deaktivieren Sie Konfigurationsdateien (in diesem Beispiel die Standardkonfigurationsdatei des virtuellen Apache-Hosts):

sudo a2dissite 000-default.conf

Module

Verwenden Sie den folgenden Befehl, um die Module in + / etc / apache2 / mods-available + zu aktivieren:

sudo a2enmod

So deaktivieren Sie ein bestimmtes Modul:

sudo a2dismod

Konfigurationsdateien

So aktivieren Sie die Konfigurationsdateien in "+ / etc / apache2 / conf-available" -Dateien, die keinem virtuellen Host zugeordnet sind:

sudo a2enconf

So deaktivieren Sie eine Konfigurationsdatei:

sudo a2disconf

Konfigurationstests

Wenn Sie Änderungen an Konfigurationsdateien in Apache vornehmen, müssen Sie den folgenden Befehl ausführen, um nach Syntaxfehlern zu suchen:

sudo apache2ctl configtest

Wichtige Dateien und Verzeichnisse

Während Sie weiter mit Apache arbeiten, werden Sie auf die folgenden Verzeichnisse und Dateien stoßen:

Inhalt

  • + / var / www / html: Dieses Verzeichnis enthält den Webinhalt Ihrer Site und ist das Standardstammverzeichnis. Sie können die Apache-Standardkonfigurationseinstellungen so ändern, dass sie auf andere Verzeichnisse in + var / www verweisen.

Serverkonfiguration

  • + / etc / apache2 +: Das Konfigurationsverzeichnis in Apache, in dem sich alle Konfigurationsdateien befinden.

  • + / etc / apache2 / apache2.conf +: Die primäre Konfigurationsdatei von Apache, in der die globalen Konfigurationseinstellungen gespeichert werden. Andere Dateien im Konfigurationsverzeichnis werden aus dieser Datei geladen. Außerdem werden die Direktiven "+ FollowSymLinks +" gespeichert, die das Aktivieren und Deaktivieren der Konfiguration steuern.

  • + / etc / apache2 / sites-available / +: Dieses Verzeichnis enthält Konfigurationsdateien für virtuelle Hosts, die über Links zum Verzeichnis + sites-enabled + aktiviert werden. Die Änderung der Serverblockdateien erfolgt in diesem Verzeichnis und wird mit dem Befehl + a2ensite + aktiviert.

  • + / etc / apache2 / sites-enabled / +: Aktivierte Konfigurationsdateien für virtuelle Hosts werden hier gespeichert. Wenn Apache gestartet oder neu geladen wird, liest es die Konfigurationsdateien und Verknüpfungen in diesem Verzeichnis, da es einer vollständigen Konfiguration entspricht.

  • + / etc / apache2 / conf-available + und + / etc / apache2 / conf-enabled +: In der gleichen Beziehung wie + sites-available + und + sites-enabled + enthalten diese Verzeichnisse Konfigurationsfragmente nicht an Konfigurationsdateien des virtuellen Hosts gebunden.

  • + / etc / apache2 / mods-available + und + / etc / apache2 / mods-enabled +: Diese Verzeichnisse enthalten verfügbare und aktivierte Module und bestehen aus zwei Komponenten: Dateien, die mit + .load + enden und Fragmente enthalten die bestimmte Module laden und Dateien, die auf "+ .conf +" enden, in denen die Konfigurationen dieser Module gespeichert sind.

Server-Protokolle

  • + / var / log / apache2 / access.log +: Diese Datei enthält alle Anfragen an den Webserver, sofern die Konfigurationseinstellungen von Apache nicht geändert wurden.

  • + / var / log / apache2 / error.log +: Diese Datei enthält Fehler. Um die Detailgenauigkeit in den Fehlerprotokollen zu ändern, ändern Sie die Direktive "+ LogLevel " in " /etc/apache2/apache2.conf +".

Eine andere Möglichkeit, auf Informationen über die Apache-Einheit zuzugreifen, ist die Journald-Komponente, die Protokollinformationen von Anwendungen und dem Kernel sammelt. Geben Sie Folgendes ein, um Einträge für die Apache-Einheit anzuzeigen:

sudo journalctl -u apache2

Fazit

In diesem Handbuch werden einige allgemeine Verfahren zum Verwalten des Apache-Servers beschrieben, darunter das Stoppen, Starten und Aktivieren des Dienstes, das Arbeiten mit virtuellen Hostdateien und -verzeichnissen sowie das Auffinden wichtiger Dateien und Verzeichnisse auf Ihrem Server. Weitere Informationen zum Arbeiten mit Apache finden Sie in den folgenden Ressourcen: