Shopware-Hosting auf nginx
Shopware ist eine weitverbreitete Onlineshopsoftware, die seit Version 4.0 offiziell Open-Source ist (AGPL-Lizenz). Shopware ist in drei Versionen verfügbar, der kostenlosen Community Edition, den kostenpflichtigen Professional Edition sowie der ebenfalls kostenpflichtigen Enterprise Edition. Die Community Edition ist im Funktionsumfang nicht beschränkt, allerdings gibt es hier keinerlei Gewährleistung und Support bzw. Wartung seitens der Shopware AG.
Zu unseren Shopware-Hosting-Angeboten ▶
Für das Shopware-Hosting unter nginx wird für Shopware 5.0 (für 4.x und 3.5.x ist eine andere Konfiguration nötig, die wir Ihnen aber auch gerne einrichten) die folgende Konfiguration benötigt - die Konfiguration übernehmen wir natürlich für unsere Kunden (die Konfiguration ist der Anleitung Running New Shopware Version 4.0.x On Nginx (LEMP) On Ubuntu 12.04 entnommen, die Falko Timme auf HowtoForge veröffentlicht hat):
location ~ ^/(engine|files|templates|media/(archive|banner|image|music|pdf|unknown|video))/ { rewrite ^/files/documents/.* /engine last; location ~ \.(jpe?g|png|gif|css|js)$ { expires 1M; } } location / { index index.html index.php shopware.php; rewrite shopware.dll /shopware.php; rewrite files/documents/.* /engine last; #rewrite images/ayww/(.*) /images/banner/$1 last; rewrite backend/media/(.*) /media/$1 last; if (!-e $request_filename){ rewrite . /shopware.php last; } location ~ \.(jpe?g|png|gif|css|js)$ { rewrite backend/media/(.*) /media/$1 last; expires 1M; } } location ~ \.(tpl|yml|ini)$ { deny all; } location /install/ { location /install/assets { } if (!-e $request_filename){ rewrite . /install/index.php last; } } location /update/ { location /update/assets { } location /update/templates { } if (!-e $request_filename){ rewrite . /update/index.php last; } } location /recovery/install/ { location /recovery/install/assets { } if (!-e $request_filename){ rewrite . /recovery/install/index.php last; } } location /recovery/update/ { location /recovery/update/assets { } if (!-e $request_filename){ rewrite . /recovery/update/index.php last; } } location ~ ^/(logs|media/temp|bin|cache)/ { deny all; }
location ~ \.php$ {
try_files $uri =404;
include /etc/nginx/fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param HTTPS $fastcgi_https;
fastcgi_param HTTP_AUTHORIZATION $http_authorization;
}
Damit sind auch schon die Rewrite Rules abgedeckt, die für Real URLs notwendig sind. Die Variable $fastcgi_https, die im location ~ \.php$ {} Block benutzt wird, muss vorher im http {} Block des nginx gesetzt werden (über diese Variable wird Shopware mitgeteilt, ob es über http oder https aufgerufen wird):
## Detect when HTTPS is used
map $scheme $fastcgi_https {
default off;
https on;
}
Für PHP-FPM bieten sich die folgenden Einstellungen an:
php_admin_value[memory_limit] = 512M
php_admin_value[post_max_size] = 100M
php_admin_value[upload_max_filesize] = 100M
php_admin_value[max_execution_time] = 1200
php_admin_value[max_input_time] = 1200
php_admin_flag[magic_quotes_gpc] = off
php_admin_flag[file_uploads] = Yes
php_admin_value[max_file_uploads] = 20
php_admin_flag[phar.readonly] = off
php_admin_flag[session.auto_start] = off
php_admin_flag[suhosin.session.cryptua] = off
php_admin_flag[zend.ze1_compatibility_mode] = off
Danach kann Shopware ganz einfach über den webbasierten Installer installiert werden, wie es in dem Tutorial von Falko Timme weiter beschrieben ist.
- Die Shopware-Installation übernehmen wir auf Wunsch auch gerne für Sie; wenn Sie eine bestehende Shopware-Seite haben, ziehen wir diese kostenlos für Sie von Ihrem alten Hoster zu Timme Hosting um.
- Unsere Shopware-Demo-Seite vermittelt einen Eindruck davon, wie schnell Shopware unter nginx läuft.