Erfahrungsgemäß haben auch gestandene Magento-1-Entwickler bei der ersten Installation von Magento 2 verschiedene Hürden zu überwinden. Erste Erfahrungen haben wir bereits in unserem Blogpost über den Magento-Hackathon in Zürich (Oktober 2015) veröffentlicht. Hier fassen wir unsere Erfahrungen mit der Installation zusammen. Für die erste Magento-2-Installation sollte man in jedem Fall 2-3 Stunden einplanen.
Details zu den einzelnen Schritten werden in der offiziellen Dokumentation erläutert. In jedem Schritt ist der jeweils passende Abschnitt der Dokumentation verlinkt.
Magento 2: Systemvoraussetzungen
Im Vergleich zu Magento 1 sind die Voraussetzungen etwas höher:- PHP ab Version 5.5, höhere Versionen bevorzugt
- MySQL Version 5.6 (5.7 wird offiziell ebenfalls unterstützt, in der Praxis hatten wir jedoch mehrere Probleme damit)
Magento 2 Installation: Mehrere Varianten
Es gibt mehrere Möglichkeiten, Magento 2 zu installieren, die sich unter anderem auf die spätere Projektstruktur auswirken. Wir entscheiden uns für "Integrator/Packager", da wir dann Packages über Composer verwalten können. Dies ist in unseren Augen die flexibelste und professionellste Art, Magento 2 zu installieren.Wir initialisieren das Projekt mit Composer:
composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition <installation directory name>
Während der Installation kann es sein, dass nach "authentication keys" gefragt wird. Um diese zu erhalten, wird ein Magento Connect Account benötigt. Wer hier nicht weiter weiß, dem hilft die offizielle Dokumentation.
Nun können wir uns eine Tasse Kaffee holen und Composer bei der Arbeit zuschauen.
Nach erfolgter Installation lohnt sich ein Blick auf die System-/Dateiberechtigungen von Magento 2 auf unserem Entwicklungsserver. Andernfalls bekommen wir später unter Umständen Probleme, da automatisch generierte Dateien nicht geschrieben werden können.
Unverzichtbar: Das Kommandozeilentool von Magento
Um die Datenbank zu initialisieren, bedienen wir uns des neuen Magento-Kommandozeilenwerkzeugs (CLI, Command Line Interface). Eventuell müssen wir dieses noch ausführbar machen:cd <installation directory name> && chmod +x bin/magentoAnschließend können wir es nutzen, um Magento 2 zu installieren:
bin/magento setup:install --base-url=http://awsome-shop.local/ --language=de_DE --backend-frontname=admin --db-host=localhost --db-name=DBNAME --db-user=DBUSER --db-password=DBPASSWORD --admin-email=max@mustermann.de --admin-user=maxmuster --admin-password=PASSWORD --admin-firstname=Max --admin-lastname=MustermannIn der Magento-2-Dokumentation gibt es eine Übersicht über das Setup-Kommando.
Wer XDebug nutzt, dem kann u.U. folgende Fehlermeldung begegnen:
PHP Fatal error: Maximum function nesting level of '100' reachedDie Lösung ist das Heraufsetzen des Attributs xdebug.max_nesting_level in der php.ini. Bei mir kam es vor, dass der Wert zwar im vHost übernommen, in der CLI jedoch ignoriert wurde. Hier empfiehlt es sich, obigen Installer direkt mit dem entsprechenden Parameter aufzurufen:
php -d xdebug.max_nesting_level[=250] bin/magento setup:install <args>Anschließend lassen wir unseren Host auf <installation directory name>/pub/ zeigen. Eine Begründung dafür liefert Alan Storm in seinem Blog.
Des Weiteren aktivieren wir den Developer Mode. Magento 2 sollte auf keinen Fall im Default Mode betrieben werden, einem wenig nützlichen Hybrid-Modus. Weitere Informationen dazu finden sich auch in der Dokumentation, Erläuterungen der Modes bietet erneut Alan Storm.
bin/magento deploy:mode:set developer
Demodaten
Im Gegensatz zu Magento 1 werden die optionalen Demodaten erst nach der eigentlichen Installation hinzugefügt. Dies erfolgt über den folgenden Befehl:bin/magento sampledata:deployDie Daten sind ein Satz von zusätzlichen Modulen und als solche müssen sie auch zuerst aktiviert werden. Dazu anschließend folgenden Befehl ausführen:
bin/magento setup:upgrade