Shopware und NGINX

In diesem Beitrag zeige ich euch wie Ihr Shopware 5.2.24 unter Ubuntu 16.04 mit NGINX 1.10.1 lauffähig bekommt. NGINX ist ein  hochperformanter Webserver welcher gerade bei vielen Requests ein MUSS ist.

Die aktuellste PHP Version welche wir mit Shopware und dem Ioncube Loader nutzen können ist 7.0.x – da es leider noch keine Version für die 7.1.x PHP Version gibt. Da muss ich wirklich sagen ist Ioncube oft hinterher, dass stört ungemein – ist aber wiederum ein Ansporn Anforderungen selbst umzusetzen 😉

Installation von NGINX

Ich gehe davon aus, dass Ihr auf eurem Server aktuell noch Apache2 laufen habt, daher müssen wir diesen vorab erst einmal stoppen:

Danach müssen wir nginx installieren, das machen wir mit:

Solltet Ihr kein PHP 7 nutzen, müsst Ihr eure Version für FPM anpassen. Denn für NGINX benötigt Ihr den Fast CGI Process Manager (hier mehr dazu).

Mit dem Aufruf vom localhost müssten wir nun folgendes sehen:

Wie beim Apache müssen wir noch unsere VHosts konfigurieren. Dafür gehen wir in cd /etc/nginx/sites-available/ dort finden wir eine Datei namens „default“ – diese nutzen wir nun einfach mal zum testen – Ihr könnt dort später einfach andere Files für euer Shopsystem anlegen (meinshop.de etc.).

Default ist standardmäßig schon in sites-enabled gelinkt – wenn Ihr einen neuen VHost erstellt fügt Ihr diesen einfach mit:

hinzu. Apache macht das üblicherweise mit sudo a2ensite meinshop.de.conf

Shopware Konfiguration

Damit Shopware unter NGINX lauffähig ist, müssen wir die oben beschriebene Datei default editieren.

Ich nutze in dem Fall die Basis von Benjamin Cremer, vielen Dank an dieser Stelle für das bereitstellen auf Github – euch ist natürlich freigestellt diesen Weg der Installation zu gehen.

Zwei Einstellungen wurden von mir angepasst, zum einen:

und

Nun müsst Ihr nur noch euren NGINX neustarten:

Falls Ihr vorher noch kein FPM genutzt habt, müsst Ihr auch noch alle Einstellungen aus eurer php.ini File in die FPM php.ini File einfügen sudo nano /etc/php/7.0/fpm/php.ini – dazu gehören zum Beispiel extensions und Ioncube (falls Ihr verschl. Plugins nutzt):

dann noch ein:

Probleme

FPM listener

Sollte euer Shop nicht aufrufbar sein, kann das mehrere Gründe haben. Zum einen kann der listener vom FPM nicht richtig konfiguriert sein:

listen = /run/php/php7.0-fpm.sock
;listen = 127.0.0.1:9000

Passt euren parameter entsprechend eurer config in /etc/nginx/sites-available/default an oder umgekehrt.

Neustart mit Apache

Ihr habt euren Server/VM zwischenzeitlich neugestartet? Dann wird vermutlich euer Apache wieder geladen – dies müsst Ihr mit

sudo update-rc.d apache2 disable  unterbinden und dafür den NGINX einfügen sudo update-rc.d nginx enable

Error Logs

In den meisten Fällen findet Ihr den exakten Fehler direkt in den NGINX Error logs, diese liegen unter /var/log/nginx/error.log

 

Ich hoffe der Beitrag hilft einigen für den Wechsel von Apache2 auf NGINX – wie bereits erwähnt lohnt sich dies meist bei vielen Aufrufen, aber sollte auch bei einem kleinen Shop in Erwägung gezogen werden, denn der soll ja schließlich auch wachsen und ist damit dann auch für Kundenanstürme gewappnet 😉

Hier geht es zum direkten Vergleich zwischen Shopware mit NGINX & Apache2

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.