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.