Magento-Hosting auf nginx

Magento ist eine weitverbreitete Onlineshopsoftware, die unter einer Open-Source-Lizenz (Open Software License) veröffentlicht wird. Magento bietet Händlern vollständige Flexibilität und Kontrolle über Aussehen, Inhalt und Funktionalität ihres Online-Shops. Magentos Marketing-, Suchmaschinen-Optimierungs- und Katalog-Management-Tools geben Händlern die Möglichkeit, E-Commerce-Seiten zu erstellen, die auf ihre individuellen Geschäftsanforderungen zugeschnitten sind.
Magento ist in zwei Versionen verfügbar, der kostenlosen Community Edition und der kostenpflichtigen Enterprise Edition. Der Core ist bei allen Versionen identisch; Unterschiede gibt es vor allem bei der Gewährleistung, dem Support und den integrierten Funktionen.
Zu unseren Magento-Hosting-Angeboten ▶
Für das Magento-Hosting unter nginx wird die folgende Konfiguration benötigt - die Konfiguration übernehmen wir natürlich für unsere Kunden (die Konfiguration ist der Anleitung Running Magento 1.6.0.0 On Nginx (LEMP) on Debian Squeeze/Ubuntu 11.04 entnommen, die Falko Timme auf HowtoForge veröffentlicht hat):
location / {
index index.html index.php; ## Allow a static html file to be shown first
try_files $uri $uri/ @handler; ## If missing pass the URI to Magento's front handler
expires 30d; ## Assume all files are cachable
}
## These locations would be hidden by .htaccess normally
location /app/ { deny all; }
location /includes/ { deny all; }
location /lib/ { deny all; }
location /media/downloadable/ { deny all; }
location /pkginfo/ { deny all; }
location /report/config.xml { deny all; }
location /var/ { deny all; }
location /var/export/ { ## Allow admins only to view export folder
auth_basic "Restricted"; ## Message shown in login window
auth_basic_user_file /var/www/www.example.com/.htpasswd; ## See /etc/nginx/htpassword
autoindex on;
}
## Disable .htaccess and other hidden files
location ~ /\. {
deny all;
access_log off;
log_not_found off;
}
location @handler { ## Magento uses a common front handler
rewrite / /index.php;
}
location ~ \.php/ { ## Forward paths like /js/index.php/x.js to relevant handler
rewrite ^(.*\.php)/ $1 last;
}
location ~ \.php$ { ## Execute PHP scripts
if (!-e $request_filename) { rewrite / /index.php last; } ## Catch 404s that try_files miss
expires off; ## Do not cache dynamic content
fastcgi_pass 127.0.0.1:9000;
fastcgi_param HTTPS $fastcgi_https;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param MAGE_RUN_CODE default; ## Store code is defined in administration > Configuration > Manage Stores
fastcgi_param MAGE_RUN_TYPE store;
include fastcgi_params; ## See /etc/nginx/fastcgi_params
}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, muß vorher im http {} Block des nginx gesetzt werden (über diese Variable wird Magento mitgeteilt, ob es über http oder https aufgerufen wird):
## Detect when HTTPS is used
map $scheme $fastcgi_https {
default off;
https on;
}
Da das /var/export-Verzeichnis über einen Passwortschutz verfügen soll, muß schließlich noch die entsprechende Passwort-Datei erzeugt werden (der Pfad muß natürlich an das Document Root der Webseite angepasst werden):
htpasswd -c /var/www/www.example.com/.htpasswd admin1
Danach kann Magento ganz einfach über den webbasierten Installer installiert werden, wie es in dem Tutorial von Falko Timme weiter beschrieben ist.
- Die Magento-Installation übernehmen wir auf Wunsch auch gerne für Sie; wenn Sie eine bestehende Magento-Seite haben, ziehen wir diese kostenlos für Sie von Ihrem alten Hoster zu Timme Hosting um.
- Unsere Magento-Demo-Seite vermittelt einen Eindruck davon, wie schnell Magento unter nginx läuft.