Autor Thema: Tutorial Composer in Verbindung mit Magento 2 und Flexserver  (Gelesen 721 mal)

Offline George

  • Newbie
  • *
  • Beiträge: 6
    • Profil anzeigen
Mehr noch als in Magento 1 bietet sich in Magento 2 die Verwendung von Composer an. Nicht nur, weil ein Grossteil der im Netz zu findenden Informationen darauf beruht, sondern weil man damit noch einige über den Adminbereich von Magento erzeugte Fehler umgehen kann.

Vor Nutzung dieses Tutorials bitte zwingend das selbstverständliche Backup anlegen! Keine Gewähr!

Installation von Composer auf dem Flexserver

Mit einem Befehlszeilen-Terminal wie z.B. Putty mit dem Server verbinden und im Haupt-/Rootverzeichnis, sofern nicht schon vorhanden, einen bin - Ordner erstellen

mkdir bin
und dahin wechseln

cd bin
Dort mit dem Befehl

curl -sS https://getcomposer.org/installer | /usr/local/php7.0/bin/php
Composer installieren. Dabei die gewählte PHP-Version beachten!
Mit dem Befehl

/usr/local/php7.0/bin/php ~/bin/composer.phar  diagnose
den Erfolg der Installation prüfen. Dabei natürlich wieder die genutzte PHP-Version angeben!

Optimierung von Composer

Diese Erklärung bezieht sich auf meine Erfahrung mit einem für die Entwicklung unseres Shops angelegten V-Host, der noch nicht von einer offiziellen Domain, sondern mit http://V-HOST-DOMAIN.cloud6-vm234.de-nserver.de aufgerufen wird. Ein eventuell abweichendes Vorgehen bei Einrichtung des Magento 2 - Shops unter einer aktiven Domain wird das Team von Profihost sicher gerne erläutern.

Wer die zahlreichen Anleitungen zu Composer im Netz studiert, wird schon am letzten obigen Befehl festgestellt haben, dass dieser etwas abweicht. Auch beim Zugriff mit Composer auf dem Flexserver muss Magento 2 derzeit noch nach Wechsel in das Magentoverzeichnis

cd V-HOST-DOMAIN/MAGENTOVERZEICHNIS
mit

/usr/local/php7.0/bin/php -c /home/BENUTZER /home/BENUTZER/V-HOST-DOMAIN/MAGENTOVERZEICHNIS/bin/magento deploy:mode:show
angesprochen werden, wobei dieser Befehl den eingestellten Modus von Magento 2 anzeigt.

Um diese langen Befehlszeilen zu umgehen, ergänzt man die Datei .profile im Root-Verzeichnis mit den Zeilen

alias ll="ls -l"
alias la="ls -la"

alias php="/usr/local/php7.0/bin/php -c /home/BENUTZER"
alias composer="~/bin/composer.phar"

wobei auch hier wieder die PHP-Version anzupassen ist.

Somit lassen sich jetzt Composer-bezogene Befehle wie in den vielen Tutorials beschrieben mit z.B.

composer diagnose
oder Magento 2 ansprechende Composer-Befehle mit z.B.

bin/magento deploy:mode:set developer
ausführen und sind nicht mehr so komplex lang. Der letzte Befehl versetzt Magento 2 in den während der Einrichtung empfohlenen Entwickler-Modus.

Empfohlene Eigen-Dokumentation

Da sich während der Entwicklung viele Befehlsfolgen wiederholen, legte ich mir dafür eine eigene Dokumentation an, um mir erneute Recherchen zu ersparen. So braucht man z.B. in unregelmässigen Abständen bei einem Update auf die nächsthöhere Magento 2 – Version (in diesem Beispiel 2.1.8., natürlich aktuell anpassen!) nicht lang zu grübeln: „Wie war das nochmal?“, sondern greift einfach auf seine Notizen zurück:

Wechsel ins Magento-Verzeichnis

cd V-HOST-DOMAIN/MAGENTOVERZEICHNIS
bin/magento maintenance:enable
bin/magento cache:clean
bin/magento cache:flush

zurück ins Root-Verzeichnis, wobei bei Anwendung der letzten 3 Befehlszeilen das vorherige Backup Pflicht ist (Sie funktionieren so bei mir, übernehme aber keine Gewähr für andere Systeme! Löschte bei meinen ersten, aus dem Web entnommenen Versuchen das kompletten Root-Verzeichnis, ohne Backup nicht zur Nachahmung empfohlen!)

cd
composer require magento/product-community-edition 2.1.8 --no-update
composer update
rm -rf V-HOST-DOMAIN/MAGENTOVERZEICHNIS/var/cache/*
rm -rf V-HOST-DOMAIN/MAGENTOVERZEICHNIS/var/page_cache/*
rm -rf V-HOST-DOMAIN/MAGENTOVERZEICHNIS/var/generation/*

erneuter Wechsel ins Magento-Verzeichnis

cd V-HOST-DOMAIN/MAGENTOVERZEICHNIS
bin/magento setup:di:compile
bin/magento setup:upgrade
bin/magento setup:di:compile
bin/magento setup:static-content:deploy
bin/magento setup:static-content:deploy de_DE
bin/magento indexer:reindex
bin/magento cache:clean
bin/magento maintenance:disable

Der Befehl

bin/magento setup:di:compile
sollte sowohl nach dem Löschen der Verzeichnisse als auch nochmal nach dem Befehl

bin/magento setup:upgrade
erfolgen, da es sonst zu Fehlermeldungen kommt.

Unter Umständen erhält man die Meldung

bin/magento permission denied

In diesem Fall korrigiert man die Verzeichnisrechte mit

chmod u+x bin/magento
Natürlich kann man Befehlsblöcke komplett kopieren und mit einem Mal im Terminal einfügen. Bei Fehlermeldungen lässt sich dann aber der Ablauf nicht mehr stoppen (ist mir zumindest nie gelungen) und man wartet dann auf die teilweise langwierige Abarbeitung der folgenden Befehle, welche nach Eleminierung des Fehlergrundes nochmals ausgeführt werden sollten. Deshalb praktiziere ich die einzelne Befehlszeileneingabe.

Nachtrag: Abbruch des Composer-Befehlsablaufes mit der Pause/Untbr-Taste.

In der Hoffnung, dass dieses Tutorial dem ein oder anderen hilft, möchte ich auch meinen Dank an das Team von Profihost ausdrücken, durch welches wir stets einen unschätzbaren Support erhalten haben!

MfG George
« Letzte Änderung: 05.10.2017 12:24 von George »