Eine häufige Anfrage an unseren Support: Wie kann ich mit meiner WordPress Installation Apache deaktivieren und den Betrieb über nginx alleine bewerkstelligen. Der Vorteil ist oft die bessere Performance mit php-fpm und dem nginx Caching etc.
Ihr solltet aber wissen: Teilweise können vor allem Caching Plugins wie SP Super Cache nicht mit nginx funktionieren. Bei der Umkonfiguration landet eure Seite ggf. auf einem HTTP 500 Fehler. Wer sich bzgl. seiner Plugins also unsicher ist aktiviert vor Umstellung den WP Debug Modus.
Die Anleitung ist passend für Kunden mit be-webspace Webhosting Paketen mit Plesk und der WordPress Toolbox.
WP Debug Mode aktivieren
Das geht ganz einfach mit einer Zeile in der wp-config.php:
define( 'WP_DEBUG', true );
In unserer WordPress Toolbox könnt ihr das Debugging ganz simpel aktivieren über den Schalter in der Konfiguration der WordPress Instanz:
PHP FPM aktivieren
Geht auf die Konfiguration eurer Domain und wählt den Punkt PHP-Einstellungen aus.
1. Umstellen auf php-fpm mit nginx. Wählt php 7.x. aus und stellt zum ausführen ein: FPM-Anwendung von nginx bedient.
Apache deaktivieren
Geht zu euer Domain uns wählt den Punkt Einstellungen für Apache & nginx. Hier deaktivieren wir den Proxy Modus!. Das schaltet den Indianer aus.
Permalink Support
In der Regel benutzt ihr Permalinks auf eurer WP Installation, da .htaccess bei nginx nicht funktioniert müssen wir die Permalinks für nginx konfigurieren. Dies geht auf der Seite der Apache & nginx Einstellungen am Ende unter dem Punkt Zusätzliche nginx Anweisungen. Hier fügt ihr den folgenden Code ein:
# !!! WordPress Permalinks
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?q=$1 last;
}
Ergebnis:
Nun sollte eure WP Seite rein über nginx gehostet sein. Ihr könnt das unter anderem unter dem Prunkt Protokolle sehen. Sollten Probleme auftreten oder die Seite Fehler produzieren so müsst ihr euch mit dem Debugging beschäftigen und in der Regel das inkompatible Plugin herausfinden.
Finale
Wenn alles funktioniert vergesst nicht den Debug Modus wieder zu deaktivieren!
define( 'WP_DEBUG', false );