SwagMediaS3: CDN Aktivierung in config.php > Fatal error: Allowed memory size …

Hallo zusammen,

ich habe das SwagMediaS3 Plugin installiert und die config.php für den Amazon S3 CDN angepasst.

Obwohl ich die Speichergröße schon auf ein 1GB hochgeschraubt habe, kommt folgende Fehlermeldung:

Fatal error: Allowed memory size of 1073741824 bytes exhausted (tried to allocate 20480 bytes) in /Applications/MAMP/htdocs/www.domain.de/custom/plugins/SwagMediaS3/SwagMediaS3.php on line 67

Die Größe des Media-Ordners beträgt 62MB.

Hat jemand eine Idee warum immer noch die Fehlermeldung erscheint?

 

Vielen Dank und beste Grüße
Michael

Guten Morgen,

noch ein kleiner Nachtrag zu meinem Problem…

Die Fehlermeldung erscheint bereits, wenn ich nur folgendes Snippet in die config.php einfüge, ohne das ich das SwagMediaS3 Plugin aktiviert habe:

  'cdn' => [
      'backend' => 's3',
      'adapters' => [
          's3' => [
              'type' => 's3',
              'mediaUrl' => 'YOUR_S3_OR_CLOUDFRONT_ENDPOINT',
              'key' => 'YOUR_AWS_KEY',
              'secret' => 'YOUR_AWS_SECRET',
              'region' => 'YOUR_S3_REGION',
              'bucket' => 'YOUR_S3_BUCKET_NAME',
              'prefix' => ''
          ]
      ]
  ]

Den Logs kann ich auch keine weitere Information entnehmen.
Vielleicht ist noch hinzuzufügen, das ich mit einer Lokalen Mamp Installation arbeite.

 

BGM

Hi @dbb‍,

nur um sicher zu gehen: Sowas wie “YOUR_AWS_SECRET” hast du auch mit deinen Daten ausgefüllt oder?

Also statt YOUR_AWS_KEY deinen AWS-Schlüssel hinterlegt? :wink:

Ansonsten: Ist bei dir unter Einstellungen > System-Info alles grün?

Viele Grüße

Guten Morgen Simkli,

in der System-Info ist alles grün und in der Config sind auch alle Daten korrekt hinterlegt.
Die S3 Benutzerdaten haben ich via FTP mit einem erfolgreichen Connect geprüft.

BGM

Hallo @dbb‍,

ich kann mir vorstellen, dass er beim ersten Aufruf eine Migration der Dateien durchführen würde, falls dies nicht geschehen ist. Das kann sehr Speicheraufwändig werden. Am besten nutzt du dafür die Kommandozeile wie in der Anleitung beschrieben. MediaService

In der Anleitung steht ja folgendes:

You can now simply run this command to move all files from your local media file system to Amazon S3.

bin/console sw:media:migrate --from=local --to=s3

Hast du dieses Kommando ausgeführt? 

Bei MAMP liegen die PHP-CLI Versionen unter /Applications/MAMP/bin/php/phpXXX/bin/php wobei XXX die Version sein sollte.
Du kannst den Befehl also mit 

/Applications/MAMP/bin/php/phpXXX/bin/php /PFAD/ZU/DEINER/SW/INSTALLATION/bin/console sw:media:migrate --from=local --to=s3 

ausführen.

Viele Grüße

Hallo @simkli‍,

beim Aufruf über die Kommandozeile kommt leider auch die gleiche Fehlermeldung wie beim Aufruf der Seite über den Browser :frowning:

BGM

Welche Shopware Version setzt Du ein? Wenn ich mich richtig erinnere ist das Problem mit einem Update behoben worden.

Hallo @Thomas‍,

die aktuelle Version 5.4.1. Leider sind in den Mamp PHP Logs auch keine weiteren Infos.

BGM

Ich habe mir jetzt mal die Zeile 67 in der SwagMediaS3.php angschaut. Bei Aufruf den neuen Klasse wird der Fehler ausgelöst:

$client = new S3Client($clientConfig);

Kann es vielleicht an meiner PHP Version 7.0.27 oder vielleicht an einer Einstellung in der php.ini liegen?

BGM

Ich habe gesehen das in dem SwagMediaS3 Plugin Verzeichnis noch eine composer.json mit einem Require liegt:

"require": {
  "league/flysystem-aws-s3-v3": "1.0.13"
}

Mit welchem Befehl kann ich das „flysystem-aws-s3-v3“ installieren lassen?

VGM

Okay… nachdem ich custom/plugins/SwagMediaS3 > copmposer update in der Konsole aufrufe, sind zwar alle dependencies installiert und es scheint auch alles soweit zu laufen, aber ich kann im Admin nicht mehr den Plugin Manager öffnen.

Kennt jemand von euch das Problem?

BGM

1 Like

@dbb schrieb:

Ich habe mir jetzt mal die Zeile 67 in der SwagMediaS3.php angschaut. Bei Aufruf den neuen Klasse wird der Fehler ausgelöst:

$client = new S3Client($clientConfig);

Kann es vielleicht an meiner PHP Version 7.0.27 oder vielleicht an einer Einstellung in der php.ini liegen?

BG

Das Problem habe ich auch. Gibt es dafür eine Lösung / eine Erklärung? Auch die Installation des AWS SDK für PHP brachte bei mir nur weitere Probleme mit sich. 

@musikdiscount24 schrieb:

@dbb schrieb:

Ich habe mir jetzt mal die Zeile 67 in der SwagMediaS3.php angschaut. Bei Aufruf den neuen Klasse wird der Fehler ausgelöst:

$client = new S3Client($clientConfig);

Kann es vielleicht an meiner PHP Version 7.0.27 oder vielleicht an einer Einstellung in der php.ini liegen?

BG

Das Problem habe ich auch. Gibt es dafür eine Lösung / eine Erklärung? Auch die Installation des AWS SDK für PHP brachte bei mir nur weitere Probleme mit sich. 

Update 26.07.2018:
In den vorherigen Paketen war der Ordner vendor Teil der .zip-Datei. Das ist offenbar nicht der Fall. Dieser Ordner fehlt nun, kann allerdings mittels Composer erzeugt werden.

cd custom/plugins/SwagMediaS3

composer install

Bei mir gibt es dann allerdings ein neues Problem: nachdem der Ordner vendor angelegt wurde, bekomme ich im PluginManager einen Internal Server Error, ohne Einträge in den Server Log-Files. Wo das nun wieder herkommt versuche ich (wie vor mir schon dbb) grade rauszufinden, bin aber für jeden Hinweis dankbar!

 

Jup,
ist ein bestätigter Fehler, vermutlich gefällt die Guzzle version nicht, die installiert wird.
Hab mal ein Issue drübern bei Github aufgemacht

PHP Fatal error: Uncaught TypeError: Argument 3 passed to GuzzleHttp\Client::request() must be of the type array, string given · Issue #22 · shopwareLabs/SwagMediaS3 · GitHub

OK Jungs,
hier die Lösung. Vermutlich habt Ihr 

composer update

ausgeführt, das führt zum Installieren der neusten Versionen und den beschriebenen Fehlern. 
Hier nun wie Ihr es zum Laufen bekommt

  1. Plugin komplett deinstallieren.
  2. Plugin “ver 2.0.0” neu in Shopware laden
  3. auf der console dann vor dem 
    composer install

die benötigte Guzzle Version installieren mit 
composer require guzzlehttp/guzzle:5.3.1

  1. Nun könnt Ihr mit composer install alles sauber installieren.

  2. je nach dem wie groß Eure Bildersammlung ist, kann es zu dem Speicherfehler kommen, dann einfach
    bin/console sw:media:migrate --from=local --to=s3 --skip-scan

ausführen und schon werden die Daten in den S3 Bucket verschoben.

Viel Spaß beim “nachbauen” :) 

1 Like

Vielen herzlichen Dank!  Smile  Thumb-Up

Wunderschönen guten Tag zusammen,

anknüpfend an die Problematik von vor drei Monaten würde ich gerne nachfragen, ob schon jemand den Schritt gewagt und auf 5.5.X geupdatet hat. In unserem Testsystem habe ich nun einfach mal ins Blaue hinein ein Update gemacht und erhalte Fehlermeldungen:

Ups! Ein Fehler ist aufgetreten! Die nachfolgenden Hinweise sollten Ihnen weiterhelfen.
The options "key", "prefix", "secret" do not exist. Defined options are: "bucket", "credentials", "mediaUrl", "region", "root", "type", "url", "version". in vendor/symfony/options-resolver/OptionsResolver.php on line 645
Stack trace: 
#0 engine/Shopware/Bundle/MediaBundle/Adapters/AwsS3v3Factory.php(75): Symfony\Component\OptionsResolver\OptionsResolver->resolve(Array) 
#1 engine/Shopware/Bundle/MediaBundle/Adapters/AwsS3v3Factory.php(40): Shopware\Bundle\MediaBundle\Adapters\AwsS3v3Factory->resolveS3Options(Array) 
#2 engine/Shopware/Bundle/MediaBundle/MediaServiceFactory.php(127): Shopware\Bundle\MediaBundle\Adapters\AwsS3v3Factory->create(Array) 
#3 engine/Shopware/Bundle/MediaBundle/MediaServiceFactory.php(83): Shopware\Bundle\MediaBundle\MediaServiceFactory->getAdapter(Array) 
#4 var/cache/production_201810171014/proxies/ShopwareProductionxxxxxxxxxProjectContainer.php(5146): Shopware\Bundle\MediaBundle\MediaServiceFactory->factory('s3') 
#5 vendor/symfony/dependency-injection/Container.php(306): ShopwareProductionxxxxxxxProjectContainer->getShopwareMedia_MediaServiceService() 
#6 engine/Shopware/Components/DependencyInjection/Container.php(211): Symfony\Component\DependencyInjection\Container->get('shopware_media....', 1) 
#7 engine/Shopware/Components/DependencyInjection/Container.php(143): Shopware\Components\DependencyInjection\Container->doLoad('shopware_media....', 1) 
#8 engine/Library/Enlight/Controller/Action.php(414): Shopware\Components\DependencyInjection\Container->get('shopware_media....') 
#9 engine/Shopware/Controllers/Backend/MediaManager.php(206): Enlight_Controller_Action->get('shopware_media....') 
#10 engine/Library/Enlight/Controller/Action.php(193): Shopware_Controllers_Backend_MediaManager->getAlbumMediaAction() 
#11 engine/Library/Enlight/Controller/Dispatcher/Default.php(548): Enlight_Controller_Action->dispatch('getAlbumMediaAc...') 
#12 engine/Library/Enlight/Controller/Front.php(222): Enlight_Controller_Dispatcher_Default->dispatch(Object(Enlight_Controller_Request_RequestHttp), Object(Enlight_Controller_Response_ResponseHttp)) 
#13 engine/Shopware/Kernel.php(202): Enlight_Controller_Front->dispatch() 
#14 vendor/symfony/http-kernel/HttpCache/SubRequestHandler.php(102): Shopware\Kernel->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) 
#15 vendor/symfony/http-kernel/HttpCache/HttpCache.php(448): Symfony\Component\HttpKernel\HttpCache\SubRequestHandler::handle(Object(Shopware\Kernel), Object(Symfony\Component\HttpFoundation\Request), 1, true) 
#16 engine/Shopware/Components/HttpCache/AppCache.php(268): Symfony\Component\HttpKernel\HttpCache\HttpCache->forward(Object(Symfony\Component\HttpFoundation\Request), true, NULL) 
#17 vendor/symfony/http-kernel/HttpCache/HttpCache.php(238): Shopware\Components\HttpCache\AppCache->forward(Object(Symfony\Component\HttpFoundation\Request), true) 
#18 engine/Shopware/Components/HttpCache/AppCache.php(105): Symfony\Component\HttpKernel\HttpCache\HttpCache->pass(Object(Symfony\Component\HttpFoundation\Request), true) 
#19 shopware.php(122): Shopware\Components\HttpCache\AppCache->handle(Object(Symfony\Component\HttpFoundation\Request)) 
#20 {main}

Meine Vorgehensweise wie folgt:

  1. Deaktivieren und Deinstallation aller Plugins, die nicht updatesicher waren - allem voran das S3 Plugin
  2. Update von 5.4.6 auf Shopware 5.5.2
  3. S3 Plugin per Pluginmanager installiert
  4. per FTP den Inhalt des Pluginordners hochgeladen (ergo nicht wie oben beschrieben neu via Console installiert)
  5. S3 Plugin aktiviert
  6. Config-Datei wie vorher mit den S3-Zugangsdaten etc. gefüllt und auf dem Server gespeichert
  7. Caches (auch production_xxx) gelöscht

Sobald ich einen Artikel öffne, das Theme neu kompoliere oder in den Medienmanager gehe, kommt die Fehlermeldung.

The options "key", "prefix", "secret" do not exist. Defined options are: "bucket", "credentials", "mediaUrl", "region", "root", "type", "url", "version". in vendor/symfony/options-resolver/OptionsResolver.php on line 645

Dieser Teil sagt ja bereits schon einiges aus. Die Frage ist nun, ob das einfach zu beheben ist, oder ob das Plugin an sich ein Update oder…

Vielleicht hat sich damit auch schon jemand auseinander gesetzt und könnte hier seine Erfahrungen teilen.

Viele Grüße

https://forum.shopware.com/discussion/comment/231219/#Comment_231219

1 Like