Fehlermeldung bei Update von 4.2.3 auf 5.1.6 "Fatal error: composerRequireShopware()"

Hallo,

nach der Installation des Update 5.1.6 erscheint folgende Fehlermeldung:

Warning: Uncaught exception 'ErrorException' with message 'require(/tabthwkj/www.domain.de/vendor/react/promise/src/functions_include.php): failed to open stream: No such file or directory' in /tabthwkj/www.www.domain.de.de/vendor/composer/autoload_real.php:66 Stack trace: #0 /tabthwkj/www.www.domain.de/vendor/composer/autoload_real.php(66): Slim\Slim::handleErrors(2, 'require(/tabthw...', '/tabthwkj/www.d...', 66, Array) #1 /tabthwkj/www.www.domain.de/vendor/composer/autoload_real.php(66): composerRequireShopware() #2 /tabthwkj/www.www.domain.de/vendor/composer/autoload_real.php(56): composerRequireShopware('ad155f8f1cf0d41...', '/tabthwkj/www.d...') #3 /tabthwkj/www.www.domain.de/vendor/autoload.php(7): ComposerAutoloaderInitShopware::getLoader() #4 /tabthwkj/www.www.domain.de/autoload.php(41): require('/tabthwkj/www.d...') #5 /tabthwkj/www.www.domain.de/recovery/update/src/DependencyInjection/Container.php(171): require_once('/tabthwkj/www.d...') #6 /tabthwkj/www.www.domain.de/r in /tabthwkj/www.www.domain.de/vendor/composer/autoload_real.php on line 66

Fatal error: composerRequireShopware(): Failed opening required '/tabthwkj/www.www.domain.de/vendor/react/promise/src/functions_include.php' (include_path='/tabthwkj/www.www.domain.de:/tabthwkj/www.www.domain.de.de/engine/Library/:/tabthwkj/www.www.domain.de/templates/') in/tabthwkj/www.www.domain.de.de/vendor/composer/autoload_real.php on line 66

Jetzt geht gar nichts mehr… Hilfe! :slight_smile:

Hallo AGerdes,

von welcher Version aus hast Du Dein Update gemacht?

Wie hast Du das Update gemacht, aus dem Backend?

Hallo,

 

habe von Version 4.2.3 geupdated, über den Installationslink nach Upload: /recovery/update/index.php

Ich gehe mal davon aus, dass “nach Upload” bedeutet, dass Du die Dateien über FTP oder so händisch hochgeschoben hast.

Dabei ist dann auch anscheinend etwas schiefgelaufen. Die von Dir gepostete Fehlermeldung bezieht sich auf eine fehlende Abhängigkeit, die sich eigentlich im vendor-Ordner befinden sollte.

Versuch mal bitte den vendor-Ordner sowie die composer.json und composer.lock neu hochzuladen.

Ich habe die Daten per FTP hochgeladen, richtig.

Nun habe ich die Schritte durchgeführt und erhalte eine neue Fehlermeldung:

Slim Application Error

The application could not run because of the following error:

Details

Type: ErrorException

Code: 2

Message: include(/tabthwkj/www.domain.de/vendor/psr/log/Psr/Log/LoggerInterface.php): failed to open stream: No such file or directory

File: /tabthwkj/www.domain.de/recovery/common/vendor/composer/ClassLoader.php

Line: 412

 

Dann sind wir schon mal auf der richtigen Spur. Der Fehler ist zwar ein anderer, der Grund allerdings scheint derselbe zu sein. Alle Fehler die sich auf “nicht gefunden” auf den Ordner “/tabthwkj/www.domain.de/vendor/” beziehen, sagen im Endeffekt aus, dass hier Dateien nicht korrekt hochgeladen wurden.

Es ist naturgemäß so, dass im vendor Ordner eine große Menge Dateien liegen. Eventuell hat hier Dein Client ein Problem. Es wäre also eine Überlegung wert, da testhalber auf eine Alternative auszuweichen oder sich in der Doku umzuschauen, ob es dazu vielleicht Lösungsansätze gibt.

Ansonsten schau mal nach dem Upload, ob am Ende der Logausgabe Deines FTP Clients eine Zusammenfassung steht, wieviele Dateien erfolgreich übertragen wurden. Unter Umständen siehst Du da schon, dass einige fehlgeschlagen sind.

Ok, allerdings existiert in der Installationsdatei des Shopware-Updates kein Ordner /vendor/ psr/…

Oder muss das so?

Ja, das muss in dem Fall tatsächlich so. :slight_smile:

Ich hab eben die Pakete durchgeschaut, den gab es bereits in der 4.2.3, damit hätte er bereits vorhanden sein müssen.

Solltest Du Deinen vendor Ordner vor dem Upload komplett gelöscht haben (oder auch sonst, scheint ja kaputt zu sein) würde ich wie folgt vorgehen (backup hast Du ja gemacht?):

  • vendor-Ordner online löschen
  • vendor-Ordner aus dem Installationspaket für 4.2.3 hochladen
  • vendor-Ordner aus dem Updatepaket für 5.1.6 hochladen, dabei Dateien überschreiben wenn notwendig

Danach hast Du zumindest im vendor-Ordner den korrekten Stand.

Alles erledigt und die Sicherung habe ich natürlich vergessen…  Blush

Also, jetzt kommt dann nach erneut erfolgtem Installationsversuch diese Fehlermeldung, nachdem die Datenbankmigration nun funktioniert hat, also nach dem “Aufräumen” im Installationsprzoess:

Warning: Uncaught exception 'ErrorException' with message 'require(/tabthwkj/www.domain.de/vendor/rhumsaa/array_column/src/array_column.php): failed to open stream: No such file or directory' in /tabthwkj/www.domain.de/vendor/composer/autoload_real.php:57 Stack trace: #0 /tabthwkj/www.domain.de/vendor/composer/autoload_real.php(57): Slim\Slim::handleErrors(2, 'require(/tabthw...', '/tabthwkj/www.t...', 57, Array) #1 /tabthwkj/www.domain.de/vendor/composer/autoload_real.php(57): composerRequire0e120e95656206618ea99e7cbbc5f63d() #2 /tabthwkj/www.domain.de/vendor/composer/autoload_real.php(48): composerRequire0e120e95656206618ea99e7cbbc5f63d('/tabthwkj/www.t...') #3 /tabthwkj/www.domain.de/vendor/autoload.php(7): ComposerAutoloaderInit0e120e95656206618ea99e7cbbc5f63d::getLoader() #4 /tabthwkj/www.domain.de/autoload.php(37): require('/tabthwkj/www.t...') #5 /tabthwkj/www.domain.de/recovery/update/src/DependencyInjection/Container.php(171): require_once('/tabt in /tabthwkj/www.domain.de/vendor/composer/autoload_real.php on line 57

Fatal error: composerRequire0e120e95656206618ea99e7cbbc5f63d(): Failed opening required '/tabthwkj/www.domain.de/vendor/rhumsaa/array_column/src/array_column.php' (include_path='/tabthwkj/www.domain.de:/tabthwkj/www.domain.de/engine/Library/:/tabthwkj/www.domain.de/templates/') in /tabthwkj/www.tdomain.de/vendor/composer/autoload_real.php on line 57

Fehler im Log-Protokoll von Wise-FTP werden nicht angezeigt…

Das wäre dann wieder ein Ordner aus dem Installationspaket für 4.2.3, der fehlt.

Also wieder vendor Ordner hochladen. Du könntest anstelle von WiseFTP auch WinSCP oder FlashFXP (kostenpflichtig) verwenden, die sind beide etwas gesprächiger.

Grundsätzlich gilt: Solange das Update über fehlende Dateien im vendor Ordner meckert, ist der nicht komplett hochgeladen.

1 „Gefällt mir“

Das Installationsprogramm löscht ja die alten Versionsdateien im dem „Aufräumen“ Schritt,  jedenfalls waren die Dateien vorher vorhanden, dies habe ich geprüft.

Ich werde dennoch ein alternatives FTP Programm testen.

So, ich habe die vorstehenden Schritte mit einem anderen FTP-Programm wiederholt, jetzt hat es funktioniert. 

 

Vielen Dank für Deine schnelle Hilfe!