FOL9000

Magento mit XAMPP installieren

von

In den meisten Veröffentlichungen liest es sich ganz einfach: Magento unter XAMPP zu installieren scheint eine Sache von ein paar Klicks zu sein. Mag sein, dass das auch meist funktioniert, es gibt aber durchaus ein paar Fallstricke. Hier mal ein paar Tipps für die Installation auf dem Mac. (Für Windows wird das eine oder andere aber genauso gelten.)

Ich wundere mich immer wieder, warum in doch recht teuer bezahlten Büchern so wenig von Problemen mit einer Software die Rede ist. Da geht immer alles gleich auf Anhieb und ohne weitere Anpassungen oder Änderungen. Man muss aber gar nicht lange googeln, um für so ziemlich jede Software verzweifelte Fragen zu finden. So bekommt man den Eindruck: Wenn Du wissen möchtest, wie es gedacht ist, kauf dir das große Sowieso-Buch. Wenn Du aber wissen musst, wie es in der Realität auch sein kann, nutz das Netz. Der Wert so manch teuren Handbuchs relativiert sich da recht schnell.

Zurück zu Magento. Auch dort kann bei der Installation unter XAMPP einiges schiefgehen. Ich habe deshalb hier mal ein paar Dinge zusammengestellt.

XAMPP und virtuelle Hosts

Der erste Hinweis bezieht sich nicht direkt auf ein Problem, sondern eher darauf, eine komfortable Arbeitsumgebung zu bauen. Man kann dies auch einfach weglassen und mit localhost arbeiten. Die Konfiguration von virtuellen Hosts ist reine Geschmackssache, denn:

Nicht jeder möchte Magento einfach unter der Domain localhost installieren, manchmal möchte man stattdessen eine realistische Umgebung bzw. Domain nutzen. (Das gilt übrigens umso mehr für einige andere Programme, die eine ‚korrekte‘ Domain benötigen.) Sinnvoll kann das Einrichten mehrerer virtueller Hosts auch sein, wenn man an mehreren Projekten in verschiedenen Verzeichnissen arbeitet. Unbedingt nötig ist der Einsatz virtueller Hosts auch dann nicht, aber mit ihnen kann man die verschiedenen Projekte einfach besser von einander abschotten.

Aus verschiedenen Gründen arbeite ich deshalb gern mit eigenen Domains für jedes Projekt, z.B.:

  • www.mein-shop.local
  • www.meine-seite.local

Mit einer kleinen Ausnahme ist man bei der Wahl der Domain frei, wobei ich den Sinn des ganzen Vorgehens nur sehe, wenn man realistische, an der späteren Anwendung orientierte Domains wählt.

/etc/hosts editieren

Zunächst muss man dem Betriebssystem die neue Domain bekannt machen, bzw. angeben, dass sich dahinter kein fremder Server verbirgt, sondern dass sie ein Alias für localhost (bzw. 127.0.0.1) ist.

Dazu einfach die Datei /etc/hosts mit einem Editor öffnen und für jeden virtuellen Host, den man nutzen möchte, eine Zeile nach folgendem Muster hinzufügen:

127.0.0.1 www.mein-shop.local

Da dort schon ein paar Einträge stehen, ist das ganz einfach.

Das geht natürlich nur mit Admin-Rechten. Unter Windows XP funktionierte das entsprechend (nur war natürlich die hosts-Datei woanders); wie sich das heute darstellt, weiß ich leider nicht.

Virtual Hosts in XAMPP aktivieren

Soll die Virtuelle Domain auch vom XAMPP-Apache genutzt werden, muss dort zunächst die Virtual Hosts-Unterstützung aktiviert werden.

Die Konfigurationsdateien für den XAMPP-Apache finden sich im XAMPP-Ordner in Programme-Verzeichnis.
Die Virtual Hosts-Unterstützung wird aktiviert in der Datei

etc/httpd.conf

Dort finden sich folgende Zeilen:

# Virtual hosts
#Include /Applications/XAMPP/etc/extra/httpd-vhosts.conf

Zum Aktivieren einfach das #-Zeichen vor dem Include löschen. (Wenn Apache zu diesem Zeitpunkt läuft, den Restart nicht vergessen!)

Virtual Host anlegen

Nach dieser Vorarbeit kann man nun die einzelnen virtuellen Hosts in Apache anlegen. Dies geschieht in der Datei:

etc/extra/httpd-vhosts.conf

Hier müssen für jeden virtuellen Host folgenden Zeilen angefügt werden. Zu ändern ist natürlich jeweils der Server-Name und natürlich der Pfad zur Installation. Möchte man andere Optionen einstellen, kann man natürlich alles andere auch noch anpassen, aber das ist hier nicht das Thema.

<VirtualHost *:80>
    ServerName www.mein-shop.local
    DocumentRoot "/Pfad/zu/meiner/Installation"
    <Directory "/Users/yourusername/path/to/your/site">
        Options Indexes FollowSymLinks Includes ExecCGI
        AllowOverride All
        Require all granted
    </Directory>
    ErrorLog "logs/mein-shop.local-error_log"
</VirtualHost>

Jetzt müsste man bereits unter http://www.mein-shop.local die Installation von Magento aufrufen können (natürlich nur, wenn im entsprechenden Verzeichnis schon Magento ausgepackt wurde. Ist das Verzeichnis noch leer muss es aber auch ein sinnvolles Ergebnis geben.). Und nochmal: Nicht vergessen, Apache (neu) zu starten…

Magento und die Domain

Auf diese Problem habe ich bereits einmal in einem Beitrag über die Fehlermeldung ‚Invalid URI supplied‘ hingewiesen. Magento lässt sich nicht ohne weiteres unter einer Domain installieren, die einen Unterstrich enthält. Wie in dem Beitrag erläutert, gibt es da m.W. keine Lösung außer: Auf den Unterstrich verzichten.

Magento-Dateirechte

Auch auf dieses Problem habe ich schon in einem älteren Beitrag zur Installation von Magento auf dem Mac hingewiesen, dort allerdings bei einer Installation ohne XAMPP. Das Problem mit falschen Dateirechten stellt sich aber bei XAMPP genauso, zumindest auf dem Mac.

Es gibt für das Setzen der Rechte im Netz eine ganze Reihe von verschiedenen Ansätzen. Das folgende hat sich bei mir für lokale XAMPP-Installationen bewährt.

Sind die Rechte nicht korrekt gesetzt, kann es zu folgender Fehlermeldung kommen:

Fatal error: Call to a member function getModelInstance() on null in /pfad/zum/shop/app/Mage.php on line 463

Dies lässt sich leicht beheben durch eine andere Rechte-Vergabe bei drei Verzeichnissen. Wichtig vielleicht noch: Wenn die Magento-Beispieldaten installiert werden sollen, sollte man zuerst die Bespiel-Verzeichnisse in das Installationsverzeichnis kopieren und dann die Rechte zu setzen. Eventuell überschreibt man sich sonst versehentlich wieder etwas, was man gerade erst geändert hatte.

chmod -R 777 ./app/etc
chmod -R 777 ./var
chmod -R 777 ./media

So läuft zumindest die Installation, beim Nachladen von Extensions über Magento Connect (z.B. Sprachpaket) gibt es aber eine Fehlermeldung. Um dies zu vermeiden, können vorher die Dateirechte noch wie folgt erweitert werden:

find . -type d -exec chmod 777 {} \;
chmod 666 downloader/config.ini

So dürften die Datei-Rechte zumindest soweit stimmen, dass alles glatt installiert wird und läuft. Die Rechtevergabe scheint aber ein leidiges Thema zu sein und man findet im Netzt viele z.T. recht unterschiedliche Hinweise. Bei Problemen gibt es jedenfalls viel auszuprobieren. Bei den Rechten für eine lokale XAMPP-Installation kann man wahrscheinlich etwas großzügiger sein, hat man Rechte-Probleme auf dem Server, sollte man sich die Einstellungen aus Sicherheitsgründen aber noch einmal genauer durch den Kopf gehen lassen.

Magento und die PHP- und MySQL-Versionen

Auf diese Problem bin ich jüngst gestoßen und bin darauf in einem Beitrag zu älteren Magento- und neueren PHP-Versionen eingegangen. Nicht immer vertragen sich alle Versionen untereinander. Einen hoffentlich abschließenden Lösungsansatz zeigt der genannte Beitrag.

Versionsprobleme zeigen sich v.a. an folgenden Fehlermeldungen:

PHP extensions "0" must be loaded

Database server does not support the InnoDB storage engine

Uns sonst?

Vermutlich gibt es noch eine Reihe weiterer typischer Installationsprobleme. Mit den dargestellten Maßnahmen bin ich aber immer zum Ziel gekommen. Mal sehen, wie lange noch…

Kommentare sind geschlossen.