Fehlerbehebung
Speicherlimit-Fehler in Composer und PHP
Wenn Sie beim Ausführen von composer oder einer PHP-Aufgabe Fehler wie diese erhalten:
- Check https://getcomposer.org/doc/articles/troubleshooting.md#memory-limit-errors for more info on how to handle out of memory errors
- PHP Fatal error: Allowed memory size of XXXXXX bytes exhausted
Der fatale Fehler Allowed memory size ... exhausted bestätigt, dass dieser Prozess memory_limit erreicht hat. Prüfen Sie zuerst die Version, das PHP des Terminals und den tatsächlich geltenden Wert:
composer --version composer diagnose php --ini php -r 'echo ini_get("memory_limit"), PHP_EOL;'
Erhöhen Sie das Limit für eine einzelne Ausführung vorzugsweise auf einen endlichen Wert, der zu Ihrem Tarif passt:
COMPOSER_MEMORY_LIMIT=2G composer install
php -d memory_limit=2G script.php
Der von Composer dokumentierte einmalige Test ohne Limit muss den Befehl in derselben Zuweisung enthalten:
COMPOSER_MEMORY_LIMIT=-1 composer install
Wenn Sie nur COMPOSER_MEMORY_LIMIT=-1 ohne export ausführen, wird der Wert nicht an den nachfolgenden Prozess weitergegeben. -1 hebt das Limit des Composer-Prozesses auf, aber nicht unbedingt das externer Prozesse; es erhöht weder den RAM noch umgeht es die CloudLinux-Limits PMEM oder NPROC. Wenn Killed erscheint, kein fataler PHP-Fehler auftritt oder der Fehler bestehen bleibt, prüfen Sie Resource Usage und die zugehörigen Snapshots.
Bevor Sie Select PHP Version > Options > memory_limit dauerhaft ändern, bestätigen Sie mit php --ini, dass das PHP des Terminals diese Konfiguration lädt. Behalten Sie einen endlichen Wert bei, der zu den Ressourcen Ihres Tarifs passt.
Die vorgesehenen Abhängigkeiten installieren
Wenn das Projekt eine composer.lock enthält, muss composer install diese Versionen einhalten. Ersetzen Sie es nicht durch composer update, um Speicher zu sparen: Das würde einen anderen Satz Abhängigkeiten auflösen. Verwenden Sie eine gepflegte Composer-Version, die mit dem Projekt kompatibel ist, und prüfen Sie, welches PHP-Binary sein Starter tatsächlich ausführt.
Die Beispiele für Variablen gelten für eine Bash- oder Zsh-kompatible Shell; PowerShell und CMD verwenden eine andere Syntax. Composer kann Plugins und Skripte des Projekts ausführen. Testen Sie deshalb in einem vertrauenswürdigen Projekt und prüfen Sie die Auswirkungen, bevor Sie eine Installation in der Produktion wiederholen. Siehe den offiziellen Composer-Leitfaden zum Speicher.
Das könnte Ihnen auch helfen
- Composer installiert ein globales Paket, findet aber seinen Befehl nicht Prüfen Sie, ob die globale Binärdatei von Composer existiert, ermitteln Sie ihr tatsächliches Verzei...
- 404-Fehler bei statischen Dateien verlangsamen die Website Erkennen Sie fehlende statische Ressourcen, die PHP starten und CPU verbrauchen, liefern Sie sie als...
- Den Debug-Modus von PrestaShop vorübergehend aktivieren Ermitteln Sie die genaue Exception, indem Sie _PS_MODE_DEV_ vorübergehend über das Backoffice oder d...
- Ein Modul wiederherstellen, das im PrestaShop-Theme nicht erscheint Prüfen Sie die aktive Position, den Hook des Themes und die Ausnahmen eines PrestaShop-Moduls, bevor...
Stimmt etwas nicht oder hat sich etwas geändert? Erzählen Sie es uns, und wir prüfen es.