Apache 2.4 Server-Konfiguration: Port 80 Probleme und Lösungen

Einleitung

Der Apache HTTP Server ist einer der weltweit am weitesten verbreiteten Webserver und bildet das Rückgrat zahlreicher Webpräsenzen. In diesem Artikel befassen wir uns mit der Konfiguration von Apache 2.4, insbesondere mit häufig auftretenden Problemen bei der Port-Konfiguration und deren Lösungen. Wir behandeln die Installation, die Konfiguration von Adressen und Ports, die Einrichtung von Virtual Hosts, Logging-Einstellungen sowie typische Herausforderungen bei der Integration mit Content-Management-Systemen wie WordPress.

Apache 2.4 Installation und Grundkonfiguration

Apache 2.4 ist in den offiziellen Paketquellen von Ubuntu enthalten und kann über das folgende Paket installiert werden:

sudo apt-get install apache2

Nach der Installation ist der Apache-Server sofort einsatzbereit und läuft standardmäßig auf localhost auf Port 80, dem Standardport des HTTP-Protokolls. In der Ausgangskonfiguration wird der Server bei jedem Systemstart automatisch gestartet.

Die Inhalte für den Server werden in einem als "document root" bezeichneten Verzeichnis gespeichert. Bei Apache 2.4 lautet das Standardverzeichnis:

/var/www/html/

Legt man dort Dateien ab, so können diese mit http://localhost/ bzw. http://SERVER-IP_ODER_NAME/ aufgerufen werden.

Apache Server steuern

Wie alle anderen Dienste bringt Apache Start/Stop-Skripte mit. Diese Skripte lassen sich natürlich auch zum Kontrollieren des Webservers gebrauchen:

sudo systemctl BEFEHL apache2

Dabei kann BEFEHL folgende Werte annehmen: - start - startet den Webserver - stop - stoppt den Server - restart - startet den Server neu, bestehende Verbindungen werden gekappt - reload - lädt die Konfigurationsdateien neu, ohne Verbindungen zu trennen - status - gibt den aktuellen Status des Server-Dienstes aus

Per Voreinstellung startet der Server bei jedem Systemstart automatisch. Dieses Verhalten kann mit dem Befehl systemctl verändert werden.

Port 80 Konfiguration und häufige Probleme

Grundlegende Port-Konfiguration

Beim Start bindet sich der Apache-Server an bestimmte Adressen und Ports der lokalen Maschine und wartet auf eingehende Anfragen. Standardmäßig lauscht er an allen Adressen des Systems.

Die Direktive Listen weist den Server an, eingehende Anfragen nur an bestimmten Port(s) oder Adress/Port-Kombinationen zu akzeptieren. Wenn bei der Listen-Direktive nur eine Portnummer angegeben wird, dann lauscht der Server auf allen Netzwerkinterfaces an dem angegebenen Port. Ist auch eine IP-Adresse angegeben, dann lauscht der Server an der angegebenen Schnittstelle auf dem angegebenen Port.

Es können mehrere Listen-Anweisungen verwendet werden, um eine Reihe von Adressen und Ports anzugeben, an denen gelauscht werden soll. Der Server wird dann auf Anfragen an jeder der abgehörten Adressen und Ports antworten.

Um beispielsweise den Server zu veranlassen, auf allen Netzwerkinterfaces sowohl an Port 80, als auch an Port 8000 Verbindungen zu akzeptieren, gibt man an:

Listen 80 Listen 8000

Um den Server Verbindungen an Port 80 auf einem Netzwerkinterface akzeptieren zu lassen und an Port 8080 auf einem anderen Interface, gibt man an:

Listen 192.0.2.1:80 Listen 192.0.2.5:8000

IPv6-Adressen müssen wie im folgenden Beispiel in eckigen Klammern angegeben werden:

Listen [2001:db8::a00:20ff:fea7:ccea]:80

Typische Port 80 Probleme

Ein häufiges Problem, das mit Apache auf Port 80 auftreten kann, ist der "Not found"-Fehler, wie im folgenden Beispiel beschrieben:

Not found - the request URL/wp-login.php was not found in this Server - Apache Server at Homepage.de port 80

In einem solchen Fall kann die Website zwar geöffnet werden, wird jedoch ohne CSS-Formatierung angezeigt, und der Zugriff auf das Backend (z.B. bei WordPress) ist nicht mehr möglich.

Oft liegt dieses Problem an einer Änderung der URL-Struktur ohne die entsprechende Anpassung der Konfiguration. Wenn beispielsweise die URL von homepage.de/wordpress_homepage zu homepage.de geändert wurde, sucht das System nach Dateien im Hauptordner statt im "wordpress_homepage"-Ordner.

Lösungen für Port 80 Probleme

Um dieses Problem zu lösen, gibt es mehrere Ansätze:

  1. Verschieben der Dateien: Alle Dateien, die sich im Ordner "/wordpress_homepage" befinden, müssen in den darüber liegenden Hauptordner verschoben werden.

  2. Anpassung der Serverkonfiguration: Das "home"-Verzeichnis in der Serverkonfiguration kann so angepasst werden, dass es direkt auf den Ordner "/wordpress_homepage" zeigt.

  3. Rückgängigmachen der Änderung: Die Änderung kann über phpMyAdmin oder ein anderes Datenbank-Tool rückgängig gemacht werden. Dazu muss in der Tabelle "wpoptions" (statt "wp" kann auch ein anderes Prefix stehen, Standard ist aber "wp_") nach den Einträgen "siteurl" bzw. "home" gesucht werden und der Wert wieder auf den alten gesetzt werden.

Virtual Hosts einrichten

Möchte man mehrere verschieden Webseiten über den Server ausliefern - was problemlos möglich ist - dann konfiguriert man dafür in der Regel verschiedene "virtual hosts".

Ein Virtual Host-Container kann verwendet werden, um ein unterschiedliches Verhalten für eine oder mehrere Adressen und Ports festzulegen. Um einen virtuellen Host einzurichten, muss dem Server zunächst mitgeteilt werden, an den betreffenden Adressen oder Ports zu lauschen. Dann sollte ein <VirtualHost>-Abschnitt für die angegebene Adresse und den angegebenen Port erstellt werden, um das Verhalten dieses virtuellen Hosts festzulegen.

Die Listen-Direktive implementiert keine virtuellen Hosts - sie teilt dem Hauptserver lediglich mit, an welchen Adressen und Ports er zu lauschen hat. Werden keine <VirtualHost>-Container verwendet, dann verhält sich der Server bei allen angenommenen Anfragen gleich.

Logging-Konfiguration

Standard-Logging-Konfiguration

Die zentrale Konfigurationsdatei des Servers ist apache2.conf im Verzeichnis /etc/apache2. Diese muss in der Regel allerdings nicht bearbeitet werden, da zusätzliche Konfigurationen in separaten Dateien angelegt werden können.

Diese Dateien liegen im Verzeichnis /etc/apache2/conf-available. Hierbei handelt es sich um Textdateien, welche mit einem Editor mit Root-Rechten angelegt bzw. editiert werden können. Der Name der Datei darf beliebig sein, aber die Dateiendung muss .conf lauten.

Logging-Probleme und Lösungen

Ein häufiges Problem ist das Fehlen des Log-Verzeichnisses, was zum Abbruch des Startvorgangs führen kann:

* Starting web server apache2 * * The apache2 configtest failed. Output of config test was: (2)No such file or directory: AH02291: Cannot access directory '/var/log/apache2/' for error log of vhost defined at /etc/apache2/sites-enabled/NAME-DES-VIRTEULLEN-HOSTS.conf:1 (2)No such file or directory: AH02291: Cannot access directory '/var/log/apache2/' for error log of vhost defined at /etc/apache2/sites-enabled/000-default.conf:1 AH00014: Configuration check failed Action 'configtest' failed. The Apache error log may have more information.

Dieses Problem kann gelöst werden, indem die Apache-Logs ohne Unterordner unter /var/log/ abgelegt werden. Dazu ist eine Anpassung der Umgebungsvariablen von Apache unter /etc/apache2/envvars erforderlich. In folgender Zeile muss apache2 entfernt werden:

export APACHE_LOG_DIR=/var/log/apache2$SUFFIX ## nachher export APACHE_LOG_DIR=/var/log/$SUFFIX

Zusätzlich sollte man das Apache-Log umbenennen, ansonsten könnte die Datei überschrieben werden, was eine Rückverfolgbarkeit verhindert.

Anpassung der Log-Namen

Um ein Überschreiben von Log-Dateien zu verhindern, ist ebenfalls mit Root-Rechten die Datei /etc/apache2/apache2.conf anzupassen:

ErrorLog ${APACHE_LOG_DIR}/error.log #Nachher ErrorLog ${APACHE_LOG_DIR}/apache-error.log

Zusätzlich sollten die Log-Namen der virtuellen Hosts angepasst werden, um ebenfalls ein Überschreiben zu verhindern. Der Name der Datei /etc/apache2/sites-enabled/NAME-DES-VIRTUELLEN-HOSTS.conf ist entsprechend anzupassen:

```

Vorher

ErrorLog ${APACHELOGDIR}/error.log CustomLog ${APACHELOGDIR}/access.log combined

Nachher

ErrorLog ${APACHELOGDIR}/apache-NAME-DES-VIRTUELLEN-HOSTS-error.log CustomLog ${APACHELOGDIR}/apache-NAME-DES-VIRTUELLEN-HOSTS-access.log combined ```

Die Dateinamen der Logs sind nur Empfehlungen, für das System ist es irrelevant, wie die LOG-Datei heißt.

WordPress und Apache Integration

Bei der Integration von WordPress mit Apache treten häufig spezifische Probleme auf, insbesondere bei der Änderung der URL-Struktur. Wenn die URL einer WordPress-Website geändert wird, ohne die entsprechenden Konfigurationen anzupassen, kann es zu "Not found"-Fehlern kommen.

WordPress speichert die URL-Informationen in der Datenbank in den Tabellen-Einträgen "siteurl" und "home" in der Tabelle "wp_options" (oder mit einem anderen Präfix, wenn bei der Installation ein benutzerdefiniertes Prefix verwendet wurde). Wenn diese Einträge geändert werden, ohne die Dateistruktur entsprechend anzupassen oder die Serverkonfiguration zu aktualisieren, sucht WordPress nach seinen Dateien im falschen Verzeichnis.

Um dieses Problem zu lösen, gibt es mehrere Ansätze:

  1. Anpassung der Datenbankeinträge: Die Einträge "siteurl" und "home" in der Tabelle "wp_options" können über phpMyAdmin oder ein anderes Datenbank-Tool auf den korrekten Wert gesetzt werden.

  2. Anpassung der Serverkonfiguration: Die Serverkonfiguration kann so angepasst werden, dass das Document Root auf das richtige Verzeichnis verweist.

  3. Verschieben der Dateien: Alle WordPress-Dateien können in das Hauptverzeichnis verschoben werden, wenn die URL ohne Subverzeichnis verwendet werden soll.

Fazit

Apache 2.4 ist ein leistungsstarker und flexibler Webserver, der für die meisten Anforderungen an Webhosting-Lösungen geeignet ist. Die Konfiguration des Servers, insbesondere hinsichtlich der Port-Einstellungen und Virtual Hosts, erfordert jedoch ein grundlegendes Verständnis der Funktionsweise. Häufige Probleme wie "Not found"-Fehler bei Port 80 lassen sich in der Regel durch die korrekte Konfiguration der Servereinstellungen oder die Anpassung der Datenbankeinträge bei Content-Management-Systemen wie WordPress lösen. Die Logging-Konfiguration spielt ebenfalls eine wichtige Rolle für die Fehlerdiagnose und das Systemmonitoring. Mit den in diesem Artikel beschriebenen Methoden können Administratoren die häufigsten Probleme bei der Apache 2.4-Konfiguration effektiv beheben.

Quellen

  1. Apache 2.4
  2. Apache Server at Port 80 - Was kann ich tun?
  3. Apache HTTP Server Version 2.4 - Konfiguration der Adressen und Ports

Ähnliche Beiträge