← Zurück zu CMS und Shop Systeme

CMS und Shop Systeme

WordPress-Installation mit fehlerhafter Anzeige

Veröffentlicht am

Sie haben das Problem, dass bei der Neuinstallation von WordPress die CSS-Datei nicht geladen und der Installationsassistent nicht korrekt dargestellt wird.

Der Grund für das Problem

Wir setzen NGINX und Apache als Webserver ein. Wenn Sie Apache als Webserver für Ihre Domain ausgewählt haben, so wird dieser hinter einem transparenten NGINX-Proxy angesprochen. In aller Regel bekommt der Anwender hiervon nichts mit und kann auch die Funktionen von Apache in der .htaccess-Datei verwenden. Der NGINX-Webserver verschlüsselt alle Verbindungen, wenn Sie ein SSL-Zertifikat aktiviert haben und reicht die Anfragen an den internen Apache-Server weiter, welcher lokal auf dem Server-Port 80 mit dem “http” Protokoll arbeitet.

WordPress und auch der Installer von WordPress setzen nun die URLs für JavaScript und CSS nicht korrekt auf https, wenn die Domain mit einem aktivierten SSL-Zertifikat betrieben wird und eine entsprechende Regel zum Beheben dieses Problems in der von WordPress mitgelieferten .htaccess-Datei fehlt. Der NGINX-Proxy-Server kann das Problem in diesem Moment auch nicht korrigieren und es führt zu diesem Problem in der Darstellung.

Wie lösen Sie nun dieses WordPress-Problem?

Es gibt drei mehr oder weniger einfache Möglichkeiten, das Problem zu beheben.

1) NGINX für die WordPress-Domain verwenden
Verwenden Sie NGINX als Webserver und profitieren Sie von vielen weiteren Funktionen, die Ihr WordPress deutlich beschleunigen können. Stellen Sie Ihre Domain wie folgt auf NGINX als Webserver um und aktivieren Sie die Einstellungen im WHF-Panel wie im Folgenden dargestellt.

NGINX WordPress Setup

Nach dem Speichern der Einstellungen können Sie die Installation von WordPress wie vorgesehen ohne jegliche Schwierigkeiten durchführen. Das Problem ist einfach und schnell behoben.

2) Apache-Webserver weiterverwenden - Domain für die Installation auf HTTP umstellen
Deaktivieren Sie für die Installation von WordPress das SSL-Zertifikat für Ihre Domain, sodass diese nicht mehr per https, sondern nur noch per http erreichbar ist. Die Installation verläuft im Folgenden problemlos und Sie können sich bei Ihrem neu installierten WordPress anmelden und dieses weiter einrichten.

Nach der Einrichtung laden Sie die wp-config.php-Datei herunter und fügen in diese Folgendes ein:

/*
Handle SSL reverse proxy
*/
if ($_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https')
$_SERVER['HTTPS']='on';
if (isset($_SERVER['HTTP_X_FORWARDED_HOST'])) {
$_SERVER['HTTP_HOST'] = $_SERVER['HTTP_X_FORWARDED_HOST'];
}

Der Abschnitt in Ihrer wp-config.php-Datei sieht nun wie unten dargestellt aus:

WordPress Proxy fix

Speichern Sie die Datei und laden Sie diese wieder zurück auf den Webserver.

Ändern Sie im Folgenden die “WordPress-Adresse” und “Website-Adresse” im WordPress-Backend unter “Einstellungen -> Allgemein”. Fügen Sie dort dem http ein “s” hinzu, sodass dieses zu https wird. Nun speichern Sie die Einstellungen. WordPress wird nun vermutlich erst einmal nicht erreichbar sein, da ja HTTPS und somit das SSL-Zertifikat deaktiviert wurde und die Anfragen ins Leere laufen, aber keine Panik. Machen Sie die Einstellungen der Domain nun wieder rückgängig und aktivieren Sie das SSL-Zertifikat wieder. Somit ist Ihre Domain auch wieder über HTTPS erreichbar und WordPress sollte anschließend einwandfrei seinen Dienst verrichten.

3) Führen Sie die Installation trotz Fehler in der Anzeige durch
Sie können die Installation auch mit der fehlerhaften Anzeige durchführen, auch wenn dies nicht schön aussieht und sich nicht richtig anfühlt. Nachdem die Datenbankverbindung eingerichtet und die Installation abgeschlossen wurde, müssen Sie, wie auch bei der Apache-Lösung oben, Folgendes zu Ihrer wp-config.php-Datei hinzufügen, damit der Betrieb hinter dem NGINX-Proxy auch mit WordPress einwandfrei läuft.

/*
Handle SSL reverse proxy
*/
if ($_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https')
$_SERVER['HTTPS']='on';
if (isset($_SERVER['HTTP_X_FORWARDED_HOST'])) {
$_SERVER['HTTP_HOST'] = $_SERVER['HTTP_X_FORWARDED_HOST'];
}

Ihr WordPress sollte nun in jedem Fall einwandfrei funktionieren.

Etwas schade finden wir, dass die WordPress-Entwickler dieses Problem, welches schon seit Jahren besteht, einfach nicht gelöst bekommen und es so aussehen lassen, als würde es sich um ein Problem mit dem Server handeln. Ein einfaches Auslesen der PHP-Variable $_SERVER[‘HTTPS’] und das korrekte Setzen der Verlinkung würden dieses nervige Problem nachhaltig lösen.