Ich habe einen Fehler beim Hinzufügen des Moduls.
Führen Sie den Magento-Kompilierungsbefehl erneut aus
Ich führe den folgenden Befehl aus, zeige aber auch den folgenden Fehler an, wenn ich den Befehl von root aus ausführe.
php magento setup: di: compile
Compilation was started.
%message% 0/7 [>---------------------------] 0% 1 sec 37.0 MiB%message% 0/7 [>
---------------------------] 0% 1 sec 37.0 MiBProxies code generation... 0/7 [
>---------------------------] 0% 1 sec 37.0 MiB
Proxies code generation... 1/7 [====>-----------------------] 14% 47 secs 43.5
MiB
Repositories code generation... 1/7 [====>-----------------------] 14% 47 secs
43.5 MiB
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate
24 bytes) in D:\xampp\htdocs\linsenwelt\vendor\zendframework\zend-code\src\Scan
ner\FileScanner.php on line 36
Wie repariert man ?
php
magento-2.0
memory
code-generation
Khushbu Mehta
quelle
quelle
Antworten:
Eine schnelle Lösung für die Speicherbeschränkung in Magento 2 besteht darin, die Speicherbeschränkung direkt in den Befehl einzufügen.
Für den Kompilierungsbefehl
Für den Einsatz
Sie können nach 5G auf max ändern, wenn das Problem nicht behoben werden kann.
quelle
Anscheinend sind Ihrem CLI nur 128 MB Speicher zugewiesen. Erhöhen Sie den Wert auf mindestens 256 MB oder 512 MB, wenn Sie können.
quelle
Allowed memory size of 134217728 bytes
Sie das Speicherlimit für cli nicht erhöht.benutze diesen 'schmutzigen' Weg
quelle
quelle
Wenn Sie PHP> = 5.3.0 verwenden und Magento 2.1.x oder höher verwenden, werden nach dem Ausführen
composer install
zwei Dateien in Ihrem Stammverzeichnis und in Ihrem Pub-Verzeichnis mit dem Namen erstellt.user.ini
Bearbeiten Sie diese Dateien, um Ihre PHP.ini-Einstellungen zu überschreiben
memory_limit
Wenn Sie Apache verwenden, müssen Sie sich nur um die Dateien im Stammverzeichnis kümmern, nicht um die Dateien
/pub
und umgekehrt, wenn Sie engineX (nginx) verwenden.Ich hoffe es hilft.
quelle
Sie müssen den für PHP zugewiesenen Speicher erhöhen. Führen Sie den Befehl aus, um den Speicher zu vergrößern
php --ini
. Findout geladen php.ini. Es sollte so seinGehen Sie zur aktuell geladenen php.ini (/etc/php5/cli/php.ini) und finden Sie den Parameter memory_limit heraus. Erhöhen Sie den Wert für den Parameter memory_limit auf 256M oder 512M.
quelle
Diese Situation kann schwierig zu debuggen sein, wenn Sie es nur tun
es zeigt das Speicherlimit für das PHP in Ihrem Pfad, was in Ordnung sein könnte. Das Magento-Skript (bin / magento) verwendet jedoch die Präambel
Es muss also nicht unbedingt PHP von Ihrem Weg aus verwenden! Eine Möglichkeit, die verwendete
php.ini
Datei aufzuspüren , besteht darin, ein kleines Skript wie das folgende zu schreiben:Nennen Sie es
getinfo
(nichtgetinfo.php
!), machen Sie es ausführbar und führen Sie es dann folgendermaßen aus:Dies zeigt Ihnen die INI-Datei, die Sie ändern müssen. Ändern Sie in dieser Datei den
memory_limit
in anderen Beiträgen vorgeschlagenen Konfigurationswert auf einen höheren Wert als 128 MB. Speichern Sie dann die Datei und überprüfen Sie Ihre Arbeit:quelle
Ich stoße auf ein ähnliches Problem. Das Speicherlimit wurde in der PHP INI-Datei auf 2 GB erhöht. Die Datei phpinfo () zeigte, dass sie auf 2 GB eingestellt war. Anscheinend hat Magento das Speicherlimit irgendwo manuell festgelegt. Ich habe das Speicherlimit in der Datei bin / magento erhöht. In die erste Zeile stelle ich folgendes:
was hat es funktioniert.
quelle
Ich habe eine Lösung für meine Frage. Für Fehler mit erschöpftem Speicher müssen wir ein Speicherlimit für den Kompilierungscode hinzufügen.
Hoffe, es wird jemandem in Zukunft helfen.
quelle
Verwenden Sie die folgende Zeile nach
php/bin magento -d memory_limit=5G s:d:c
für Ihren Kompilierungscode. Dies liegt an der zulässigen Speicherbegrenzung für das PHP. Nachdem Sie das Speicherlimit im Befehl zugelassen haben, wird der Fehler behoben, und Ihre Kompilierung und andere Befehle werden fehlerfrei ausgeführt. Fügen Sie dies einfach-d memory_limit=5G
in jeden Befehl ein, wie Sie im obigen Beispiel gesehen haben. Upvote, wenn Sie meine Antwort nützlich fanden.quelle
Das Kompilieren mit "-d memory_limit = 5G" ist keine kluge Entscheidung. Es ist eine vorübergehende Lösung, die während des Moduswechsels, dh vom Entwickler zur Produktion, beeinträchtigt werden kann. Dieses Mal kompiliert das System den Code ohne diese Logik "-d memory_limit = 5G", die den Fehler auslöst.
Es ist eine bessere Möglichkeit, diesen Fehler zu diesem Zeitpunkt zu beheben. Um dies zu beheben, öffnen Sie die Datei php.ini und erhöhen Sie das memory_limit um 1024M. Führen Sie den Kompilierungsbefehl php bin / magento setup: di: compile aus
Überprüfen Sie dies: https://getcomposer.org/doc/articles/troubleshooter.md#memory-limit-errors
Diesmal sollte es funktionieren
quelle
Wenn Sie mit diesem Problem in Cli konfrontiert sind, legen Sie bitte diesen Befehl in der Taskleiste ab
php -dmemory_limit = 8G bin / magento setup: upgrade
quelle
für M2 füge Speicherlimit über ssh mit dem folgenden Befehl hinzu.
für Kompilierungsbefehl:
php -dmemory_limit=5G bin/magento setup:di:compile
für Bereitstellungsbefehl:php -dmemory_limit=5G bin/magento setup:static-content:deploy
Sie können den Wert 5G erhöhen, wenn das Problem nicht behoben ist.
quelle
Eine schnelle Lösung für die Speicherbeschränkung in Magento 2 besteht darin, die Speicherbeschränkung direkt in den Befehl einzufügen.
Für den Kompilierungsbefehl
php -dmemory_limit = 5G bin / magento setup: di: compile For Deployment
php -dmemory_limit = 5G bin / magento setup: statischer inhalt: bereitstellen Sie können nach 5G auf max ändern, wenn das Problem nicht behoben ist.
es funktioniert wirklich :)
quelle