Howto: Magento – Installation auf Shared-Hosting

Magento ist eine Software für die Erstellung von Onlineshops und zählt zu den großen am Markt. Magento wird gerne auch für die Verwaltung mehrerer Shops über eine Oberfläche (Multishops) verwendet. Leider ist Magento jedoch als sehr  ressourcenhungrig bekannt und man sollte es entweder direkt auf einem eigenen Server oder zumindest einem sehr ’starken‘ Shared-Webhosting einsetzen.

Das ganze wollte ich mir doch etwas genauer ansehen und habe daher einen Magento-Shop aufzusetzen versucht, was mir nach einigen Schwierigkeiten auch gelang. Der Shared-Hosting-Account liegt, wie üblich, bei meinem Hoster domainfactory (www.df.eu).
Es gibt verschiedene Versionen von Magento, allerdings ist nur die „Community Edition“ kostenfrei, die man über http://www.magentocommerce.com/download herunterladen kann. In meinem Fall war das die Version 1.6.2.0, die ich anschließend auf meinen Webspace geladen und dort entpackt habe. Für den Download sollte man sich direkt mit einer E-Mail-Adresse anmelden, was mir nicht besonders gefiel. Glücklicherweise ging der Download dann doch auch ohne Anmeldung, diese kann man überspringen.

Nach dem Anlegen einer Subdomain und dem Aufruf des korrekten Pfades zu Magento startet der Setup-Wizard. Soweit kein Problem und ähnlich einfach wie bei anderer Software auch. Während der Installation wird man aufgefordert, die Sprache und das Land einzustellen, die Informationen zur Datenbank zu hinterlegen und einige zusätzliche Optionen wie z.B. die Aktivierung von mod_rewrite bzw. der suchmaschinenfreundlichen URLs.
Der Installationsprozess selbst ist teilweise in englischer, teilweise in deutscher Sprache.

Das erste Problem:
Nach dem Abschluss kann man entweder das Adminpanel aufrufen oder die Webseite. Beides klappte, jedoch nach dem ersten Klick auf einen Link ging es los: Die Seite wurde nicht gefunden.
Kein Problem, denn durch die Aktivierung der suchmaschinenfreundlichen URLs wurde in der .htaccess Datei mod_rewrite aktiviert und sicher ist dort nur der Pfad, also die rewrite_base falsch. So war es dann auch und nach einer Änderung in der .htaccess direkt im Verzeichnis von Magento von /magento/ auf / funktionierten auch die Links sowie der Login in das Backend.

Problem Zwei und wo sind die Fehlermeldungen?
Eine Fehlermeldung “Exception printing is disabled by default for security reasons” sowie ein Zahlencode erwarteten mich nach dem Login. Dass man Fehler aus Sicherheitsgründen nicht darstellt mag ja hin und wieder sinnvoll sein, es spricht aber aus meiner Sicht nicht unbedingt für die sonstige Systemsicherheit der Software. Denn was kann da schon drinstehen? Maximal ein absoluter Serverpfad oder ein Pfad zu einem Plugin, als ob man das nicht auch herausfinden könnte…

Also gut, wieder mit dem Webspace per SSH verbunden, in das Verzeichnis von Magento gewechselt und unter /var/report findet sich eine TXT-Datei mit der Fehlernummer. Nach dem Öffnen waren alle Klarheiten beseitigt: „Could not determine temp directory, please specify a cache_dir manually“ […] /lib/Zend/Cache/Backend.php(197)

Spitze, das Zend-Framework findet kein Verzeichnis für temporäre Dateien. Über eine Suche bei Google nach der Fehlermeldung fand ich eine Lösung und auch, dass ich mit dieser Meldung beim Einsatz von Magento keinesfalls alleine war. Dieser Fehler scheint bei sehr vielen Leuten aufzutreten. Hier also die Lösung:
Im Magento Basisverzeichnis muss zunächst ein Ordner tmp mit Schreibrechten (775) angelegt werden und in der Datei /magento/lib/Zend/Cache/Backend/file.php der Code wie folgt geändert werden:

 protected $_options = array(
  'cache_dir' => 'null',

in

 protected $_options = array(
  'cache_dir' => '/tmp',

An dieser Stelle kann auch der absolute Serverpfad genutzt werden.

Danach lief Magento, allerdings noch immer in englischer Sprache, obwohl während der Installation ja bereits deutsch teilweise aktiv war und auch eingestellt wurde.

Problem Drei – Wo ist die deutsche Sprache?
Magento hat zwar deutsch als Standardsprache hinterlegt und auch den EUR akzeptiert, die Setupdatei enthält aber nur die englische Sprachfile, weshalb nach der Installation das Backend weiterhin nur in Englisch erreichbar ist.

Im nächsten Blogeintrag werden wir die deutsche Sprachdatei einbinden und auch die erste Erweiterung installieren.

2 Antworten

Schreibe einen Kommentar

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