Apache oder NGINX – hier scheiden sich die Geister. Ich nutze lokal eigentlich nur noch NGINX und nur wenn es sein muss Apache2. Wie Ihr euer Shopware 6 mit NGINX zum laufen bekommt zeige ich in einem kurzen Beispiel.
Symfony & NGINX
Shopware 6 nutzt bekanntermaßen ja Symfony 4 und kann daher auch mit einer Standardkonfiguration von Symfony laufen. Die Ausnahme bildet hier aber die Installation und das Update.
Fehler
Diese Seite funktioniert nicht dev.shopware6.de kann diese Anfrage momentan nicht verarbeiten.
HTTP ERROR 500
Das passiert wenn /recovery/update/ und /recovery/install/ nicht in der config hinterlegt wurden.
Konfiguraton
server {
listen 80;
index index.php index.html;
server_name dev.shopware6.de;
root /var/www/sw6/public;
location /recovery/install {
index index.php;
try_files $uri /recovery/install/index.php$is_args$args;
}
location /recovery/update/ {
location /recovery/update/assets {
}
if (!-e $request_filename){
rewrite . /recovery/update/index.php last;
}
}
location / {
try_files $uri /index.php$is_args$args;
}
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
include fastcgi.conf;
fastcgi_param HTTP_PROXY "";
fastcgi_buffers 8 16k;
fastcgi_buffer_size 32k;
client_max_body_size 24M;
client_body_buffer_size 128k;
fastcgi_pass unix:/run/php/php7.2-fpm.sock;
http2_push_preload on;
}
}
Installation
Sobald die Zeilen 10-24 hinzugefügt wurden läuft die Installation wie beim Apache ab:
Update
Auch das Update läuft dank des /recovery/update/ Pfads nun sauber durch:
Mit dieser nginx Konfiguration wird die sitemap nicht funktionieren. Deshalb sollte das hier in der Server Konfiguration von nginx ergänzt werden:
## XML Sitemap support.
location = /sitemap.xml {
log_not_found off;
access_log off;
try_files $uri /;
}
## robots.txt support.
location = /robots.txt {
log_not_found off;
access_log off;
try_files $uri /;
}