Magento 2 – per Composer auf All Inkl. installieren / Update: nun auch mit Rackspeed-Info

Ok, dies wird ein relativ spezieller Beitrag, aber dennoch. Es soll darum gehen in einem neuen All-Inkl. Konto zuerst Composer zu installieren, um dann bequem Magento in der aktuellen Version (2.x) zu installieren.

  1. Erstellen eines neuen All-Inkl.-Kontos.
  2. Aktivieren des SSH-Zugangs für dieses Konto.
  3. Per Putty (o.ä.) mit dem Konto verbinden.
  4. Im Root-Verzeichnis des Kontos ein neues Verzeichnis /bin anlegen. Per SSH mit dem Befehl mkdir bin
  5. Dann in das Verzeichnis wechseln mit dem Befehl cd bin
  6. Dort dann diesen Befehl ausführen
    curl -sS https://getcomposer.org/installer | php

    Alternativ kann man auch diesen “verifizierten” Weg gehen: https://getcomposer.org/download/

  7. Nun wieder in das Root-Verzeichnis wechseln durch cd ..
  8. Hier wird nun die Datei .user_bashrc angelegt, um später einfach auf den Composer zugreifen zu können. Dazu benötigt man die Konto-Kennung, die in der Befehlszeile bereits zu sehen ist.
    echo "alias composer='/www/htdocs/wXXXXXX/bin/composer.phar'" >> /www/htdocs/wXXXXXX/.user_bashrc

    die beiden wXXXXXX müssen dann durch die eigene w-Kennung ausgetauscht werden.
    Im Falle einer Installation auf Rackspeed, sieht der Befehl dann abweichend so aus

    echo "alias composer='php ~/bin/composer.phar'" >> ~/.bashrc
  9. Anschließend die Bash neu starten durch den Befehl source /.bashrc (bei Rackspeed durch . ~/.bashrc )
  10. Nun kann man testen, ob der Composer funktioniert, indem man z.B. composer –help eingibt
  11. Wenn etwas wie “bash composer command not found” kommt, hat etwas nicht so geklappt wie es sollte. Dann die Schritte oben prüfen. Ansonsten gibt es eine Antwort.
  12. NUN kommen wir zur Magento 2.x-Installation.
  13. Zuerst erstellen wir ein Verzeichnis, welches zwingend leer sein muss, da der Installationsprozess sonst nicht funktioniert.
  14. Dazu z.B.
    mkdir magento

    oder wie das Verzeichnis heißen soll ausführen

  15. Dann
    composer create-project --repository=https://repo.magento.com/ magento/project-community-edition magento

    wobei das letzte “magento” für das jeweils gewünsche und vorher angelegte Verzeichnis steht.

  16. Als nächstes werden Benutzername und Passwort für den Download von Magento abgefragt. Ein häufiger Fehler ist, dass man hier nun die Zugangsdaten (eMail & PW) von magento.com eingibt. Diese Zugangsdaten sind aber nicht gemeint – leider. Gemeint sind Public- und Private-key. Diese erhält man nachdem man sich unter https://marketplace.magento.com/customer/account/ in seinem Konto angemeldet hat. Dort dann auf “My Profile” klicken und dann unter “My Products” auf “Access Keys”.
  17. Hier erstellt man sich dann einen neuen Key für das Projekt.
  18. Nun erhält man einen Public- und einen Private-Key. Den ersteren nimmt man dann als User für die Magento-Installation und – Überraschung! – den zweiteren als Passwort. (Hier nicht wundern, dass in der Console nach dem Einfügen nichts angezeigt wird! Dass PW wird nicht einmal durch xxxx oder ähnliches angezeigt. Einfach einfügen und Entern)
  19. Nun lädt der Composer automatisch die aktuelle Version von Magento herunter und installiert bzw. entpackt die Daten im gewählten Verzeichnis.
  20. Sollte der Composer eine schöne Info wie z.B.
    magento/product-community-edition 2.3.0 requires php ~7.1.3||~7.2.0 -> your PHP version (7.0.32) does not satisfy that requirement.

    ausspucken, hat der Kompatibilitäts-Check vom Composer ergeben, dass man diese Magento-Version (strenggenommen) nicht installieren kann. Dies kann man dann umgehen indem man dem Composer sagt, dass er keine Anforderungen prüfen soll. Dies tut man indem man den o.g. Befehl ein wenig anpasst

    composer create-project --repository=https://repo.magento.com/ magento/project-community-edition --ignore-platform-reqs magento

    auch hier steht das letzte “magento” für das Verzeichnis in dem installiert werden soll.

  21. Sollte nun im Laufe der Installation ein Fehler auftreten, der so lautet wie
    PHP Fatal error:  Uncaught TypeError: Return value of Magento\InventoryComposerInstaller\Plugin::initModuleDeployment() must be an instance of Magento\InventoryComposerInstaller\void, none returned in /vendor/magento/inventory-composer-installer/src/Plugin.php:69

    liegt dies wohl daran, dass bei der Installation die falsche PHP-Version vom Composer verwendet wird. Dies kann damit geändert werden indem man per SSH diesen Befehl ausführt

    ln -sfv /usr/bin/php72 /usr/bin/php

    72 steht hier nun für die PHP-Version 7.2 man kann dies natürlich je nach Verfügbarkeit auf dem Server anpassen. Anschließend kann dann die Installation normal gestartet werden.

  22. Etwas nervig ist, dass das Installationsverzeichnis absolut leer sein muss. Da viele Server die Angewohnheit haben schnell ein paar Daten wie “Hier entsteht bald eine Webseite” o.ä. in das Verzeichnis zu kopieren, muss man hier schauen. Teilweise werden die Dateien auch vom Web-Ftp nicht angezeigt. Da muss man dann z.B. Filezilla verwenden. Auch nervig ist, dass der Composer bis zu dieser Fehlermeldung bereits selber einige Dateien in das gewünschte Installationsverzeichnis kopiert hat. Ich habe noch keine Möglichkeit gefunden, dass er an der Stelle weiter macht an der er abgebrochen hatte, so blieb nur das Verzeichnis zu leeren (oder einfach umzubenennen und ein neues, gleichnamiges zu erstellen und dann später das alte Verzeichnis zu löschen) und den Befehl neu auszuführen.
  23. Das wäre die Composer-Magento-Installation.
  24. Nun ruft man die im All-Inkl-Konto hinterlegte Domain/URL auf (die natürlich auf das o.g. Installationsverzeichnis routen sollte) und vervollständigt den Magento-Installationsprozess wie gewohnt.

Genutzt in Magento Version 2.2.6 Kommentare? Ergänzungen? Hinweise? Gerne!

Published by Covos

Seit 2009 arbeite ich nun intensiv mit Magento. Begonnen habe ich mit der Erstellung und dem Betrieb von B2C-Shops. Ausgeweitet wurde dies durch meine Tätigkeit im Logistik-Sektor. Hieraus entstanden erste spezialisierte B2E-Systeme. Heute arbeite ich tag-täglich mit spannenden B2C-, B2B- und B2E-Projekten und berichte in diesem Blog über Herausforderungen und gebe Insider-Tipps.

4 comments on “Magento 2 – per Composer auf All Inkl. installieren / Update: nun auch mit Rackspeed-Info”

  1. Erst einmal Danke für diesen interessanten Beitrag:-)
    Eine Frage hätte ich bezüglich der benötigten Berechtigungen, die bei All-Inkl. sehr speziell zu sein scheinen:
    Ist es nicht so, dass noch diverse rechte für bestimmte Verzeichnisse gesetzt werden müssen? Könntest Du noch etwas zu diesem Thema sagen?

    1. Moin Marco,

      hier kann ich mich nicht erinnern, dass dem so gewesen wäre. Gibt es hier etwas Spezielles auf das Du anspielst?
      VG Covos

  2. Moin,
    ich erhalten folgende Fehlermeldung:

    PHP Fatal error: Uncaught TypeError: Return value of Magento\InventoryComposerInstaller\Plugin ::initModuleDeployment() must be an instance of Magento\InventoryComposerInstaller\void, none r eturned in /www/htdocs/w0159542/magento/vendor/magento/inventory-composer-installer/src/Plugin. php:69
    Stack trace:
    #0 /www/htdocs/w0159542/magento/vendor/magento/inventory-composer-installer/src/Plugin.php(88): Magento\InventoryComposerInstaller\Plugin->initModuleDeployment()
    #1 /www/htdocs/w0159542/magento/vendor/magento/inventory-composer-installer/src/Plugin.php(82): Magento\InventoryComposerInstaller\Plugin->getModuleDeployment()
    #2 [internal function]: Magento\InventoryComposerInstaller\Plugin->onPackageChange(Object(Compo ser\Installer\PackageEvent))
    #3 phar:///www/htdocs/w0159542/bin/composer.phar/src/Composer/EventDispatcher/EventDispatcher.p hp(176): call_user_func(Array, Object(Composer\Installer\PackageEvent))
    #4 phar:///www/htdocs/w0159542/bin/composer.phar/src/Composer/EventDispatcher/EventDispatcher.p hp(116): Composer\EventDispa in /www/htdocs/w0159542/magento/vendor/magento/inventory-composer- installer/src/Plugin.php on line 69

    Fatal error: Uncaught TypeError: Return value of Magento\InventoryComposerInstaller\Plugin::ini tModuleDeployment() must be an instance of Magento\InventoryComposerInstaller\void, none return ed in /www/htdocs/w0159542/magento/vendor/magento/inventory-composer-installer/src/Plugin.php:6 9
    Stack trace:
    #0 /www/htdocs/w0159542/magento/vendor/magento/inventory-composer-installer/src/Plugin.php(88): Magento\InventoryComposerInstaller\Plugin->initModuleDeployment()
    #1 /www/htdocs/w0159542/magento/vendor/magento/inventory-composer-installer/src/Plugin.php(82): Magento\InventoryComposerInstaller\Plugin->getModuleDeployment()
    #2 [internal function]: Magento\InventoryComposerInstaller\Plugin->onPackageChange(Object(Compo ser\Installer\PackageEvent))
    #3 phar:///www/htdocs/w0159542/bin/composer.phar/src/Composer/EventDispatcher/EventDispatcher.p hp(176): call_user_func(Array, Object(Composer\Installer\PackageEvent))
    #4 phar:///www/htdocs/w0159542/bin/composer.phar/src/Composer/EventDispatcher/EventDispatcher.p hp(116): Composer\EventDispa in /www/htdocs/w0159542/magento/vendor/magento/inventory-composer- installer/src/Plugin.php on line 69

    Eine Ahnung was das für ein Fehler ist und wie ich das Problem lösen kann?

    Beste Grüße

Leave a Reply to Covos

Your email address will not be published. Required fields are marked *