Ich versuche, HWIOAuthBundle zu meinem Projekt hinzuzufügen, indem ich den folgenden Befehl ausführe.
composer require hwi/oauth-bundle php-http/guzzle6-adapter php-http/httplug-bundle
HWIOAuthBundle-Github: https://github.com/hwi/HWIOAuthBundle
Wenn ich versuche, Composer auszuführen, erhalte ich den Fehler "Nicht genügend Speicher".
Verwenden der Version ^0.6.0@dev für hwi / oauth-bundle Verwenden der Version ^1.2@dev für php-http / guzzle6-adapter Verwenden der Version ^1.10@dev für php-http / httplug-bundle ./composer.json wurde aktualisiert Laden von Composer-Repositorys mit Paketinformationen Aktualisieren von Abhängigkeiten (einschließlich require-dev)
Schwerwiegender PHP-Fehler: Zulässige Speichergröße von 1610612736 Byte erschöpft (versucht, 67108864 Byte zuzuweisen) in phar: ///usr/local/Cellar/composer/1.4.2/libexec/composer.phar/src/Composer/DependencyResolver/Solver. PHP auf Linie 220
Schwerwiegender Fehler: Zulässige Speichergröße von 1610612736 Byte erschöpft (versucht, 67108864 Byte zuzuweisen) in phar: ///usr/local/Cellar/composer/1.4.2/libexec/composer.phar/src/Composer/DependencyResolver/Solver.php auf Linie 220
Ich habe versucht, das memory_limit in meiner php.ini-Datei auf 2G zu setzen, aber es hat nicht funktioniert. Ich habe meine php.ini durch Laufen gefundenphp -i | grep php.ini
quelle
composer self-update --rollback
. Mit v.1.9.3 begann ich, Speicher zu erschöpfen, was aufhörte, als ich auf 1.8.6 zurückrollte.composer require
mehr als 1,5 GB Speicher benötigt werden? Als ich das zum ersten Mal sah, dachte ich, dass es ein Fehler im Komponisten sein muss. Das Speichern des Speicherlimits auf -1 hat bei mir funktioniert ... aber wie um alles in der Welt reicht 1,5 G nicht aus? Kann der Komponist wirklich so viel brauchen?Antworten:
Führen Sie Folgendes aus, um den aktuellen Wert für memory_limit abzurufen:
php -r "echo ini_get('memory_limit').PHP_EOL;"
Versuchen Sie, das Limit in Ihrer
php.ini
Datei zu erhöhen (z./etc/php5/cli/php.ini
B. für Debian-ähnliche Systeme):; Use -1 for unlimited or define an explicit value like 2G memory_limit = -1
Sie können das Limit auch mit einem Befehlszeilenargument erhöhen:
php -d memory_limit=-1 composer.phar require hwi/oauth-bundle php-http/guzzle6-adapter php-http/httplug-bundle
Um den Speicherort der geladenen php.ini-Dateien zu erhalten, versuchen Sie:
Eine weitere schnelle Lösung:
php composer.phar COMPOSER_MEMORY_LIMIT=-1 require hwi/oauth-bundle php-http/guzzle6-adapter php-http/httplug-bundle
quelle
php --ini
! in php 7.4 hast du eine andere php ini datei (php-cli.ini) für clidphp -d memory_limit=-1 composer.phar install
für mich gearbeitet. Vielen Dank!SET COMPOSER_MEMORY_LIMIT=-1
In meinem Fall habe ich versucht, dieses Paket zu benötigen , und ich habe das bekommen
PHP Fatal error: Allowed memory size of
.Ich fand es einfach, so zu laufen, und Sie müssen die PHP INI-Datei nicht aktualisieren.
Beispiel:
COMPOSER_MEMORY_LIMIT=-1 composer require huddledigital/zendesk-laravel
Hoffe das hilft jemandem.
quelle
Eine weitere Lösung aus dem Handbuch :
Composer beachtet auch ein Speicherlimit, das durch die
COMPOSER_MEMORY_LIMIT
Umgebungsvariable definiert ist:COMPOSER_MEMORY_LIMIT=-1 composer.phar <...>
Oder in meinem Fall
export COMPOSER_MEMORY_LIMIT=-1 composer <...>
quelle
~/.bash_profile
um hinzuzufügen,alias composer="COMPOSER_MEMORY_LIMIT=-1 composer"
und das hat es für mich gelöst. Stellen Sie sicher, dass Sie die Datei nach der Änderung als Quelle verwenden, oder starten Sie Ihr Terminal neuUnter Windows 10;
Gehe zu
C:\ProgramData\ComposerSetup\bin
Bearbeiten:
composer.bat
und fügen Siememory_limit=-1
in der letzten Zeile wie unten gezeigt hinzu.@echo OFF :: in case DelayedExpansion is on and a path contains ! setlocal DISABLEDELAYEDEXPANSION php -d memory_limit=-1 "%~dp0composer.phar" %*
Problem gelöst ;)
quelle
composer.bat
nichtC:\ProgramData\ComposerSetup\bin
immer sein, aber ich denke, das ist der Standardspeicherort. Wenn jedoch jemand den Standort finden möchte,composer.bat
muss nur derwhere
Befehl ausgeführt werden: likewhere composer
. Das zeigt den genauen Ort.Da keine der vorherigen Antworten enthalten war
set
, habe ich ein wenig gebraucht, um herauszufinden, wie es in Windows geht, ohne die php.ini zu ändern, aber hier ist, was für mich funktioniert hat:set COMPOSER_MEMORY_LIMIT=-1 composer require hwi/oauth-bundle php-http/guzzle6-adapter php-http/httplug-bundle
quelle
Legen Sie einfach die
memory_limit
Angabe der vollständigen Route Ihrer composer.phar-Datei fest und aktualisieren Sie sie, in meinem Fall mit dem folgenden Befehl:php -d memory_limit=-1 C:/wamp64/composer.phar update
quelle
COMPOSER_MEMORY_LIMIT=-1 composer.phar update
. Siehe: getcomposer.org/doc/articles/…php -d memory_limit=-1 /usr/bin/composer update
Kürzlich wurde festgestellt, dass Composer bei Paketen mit vielen historischen Tags viel CPU + Speicher verbraucht. Siehe Komponist / Komponist # 7577
Eine Problemumgehung für dieses Problem ist die Verwendung von
symfony/flex
oder https://github.com/rubenrua/symfony-clean-tags-composer-plugincomposer global require rubenrua/symfony-clean-tags-composer-plugin
quelle
Nur für den Fall, dass Sie einen Komponistenfehler erhalten mit:
Lauf:
php -d memory_limit=-1 /usr/local/bin/composer require ...
quelle
Verwenden Sie zum Überspringen des Speicherlimits und des Versionsfehlers den folgenden Code:
COMPOSER_MEMORY_LIMIT=-1 composer require <package-name> --ignore-platform-reqs
quelle
Manchmal liegt das Problem in der Speicherbeschränkung des Komponisten. In meinem Fall habe ich versucht, das PHP-Speicherlimit zu erhöhen, aber trotzdem den Fehler erhalten. Sie können verwenden
COMPOSER_MEMORY_LIMIT=-1
, um das zu umgehen. Verwenden Sie es als Präfix:COMPOSER_MEMORY_LIMIT=-1 composer require the/library
Sie müssen es in Zukunft erneut voranstellen.
Hoffe das hilft.
quelle
Verwenden Sie für diesen Fehler in MacOs Catalina diese Zeile:
php -d memory_limit=-1 /usr/local/bin/composer update --no-plugins
Ich habe diese Zeile verwendet, um Symfony 5 zu aktualisieren. Dieser Befehl funktionierte auch mit Laravel 7.
quelle
Ich habe das Problem in einer virtuellen Maschine von Homestead Laravel (Vagrant) umgangen, auf der die Composer-Befehle ausgeführt werden, denen Folgendes vorangestellt ist
COMPOSER_MEMORY_LIMIT=-1
:Beispiele
So aktualisieren Sie Composer:
COMPOSER_MEMORY_LIMIT=-1 composer update
So installieren Sie ein Paket:
COMPOSER_MEMORY_LIMIT=-1 composer require spatie/laravel-translatable
quelle
Was ist mit Windows?
Ich benutze Windows 10 und dieser Befehl hat bei mir funktioniert.
php -d memory_limit=-1 "C:\ProgramData\ComposerSetup\bin\composer.phar" update
quelle
Die Vorschau von Composer 2.0 ist ab sofort verfügbar: https://github.com/composer/composer/releases Problem für mich behoben. Sie können eine Vorschau mit einrichten
composer self-update --preview
BEARBEITEN: Composer 2 mit freigegebener Speicheroptimierung
quelle
Wenn Sie wie ich aus irgendeinem Grund 32-Bit-PHP verwenden , obwohl Ihr Computer 64-Bit hat, wird die dem Composer zugewiesene Speichermenge immer begrenzt. Ich habe mein Problem folgendermaßen gelöst:
COMPOSER_MEMORY_LIMIT=-1 C:/php64/php.exe ../composer.phar update
quelle
Gleiches Problem, nichts im Zusammenhang mit "memory_limit" hat funktioniert, aber ..
composer self-update --2
.. löste mein Problem. (Upgrade: 1.10.17 -> 2.0.4)
quelle
Ich möchte nur meine Situation in dieser Angelegenheit teilen.
Problemkontext:
Lösung:
Anscheinend haben meine composer.json und composer.lock einige Probleme. Ran $ composer validate und das Ergebnis war: "Die Sperrdatei ist nicht auf dem neuesten Stand der neuesten Änderungen in composer.json. Es wird empfohlen, dass Sie ausführen
composer update
."Also habe ich $ composer update ausgeführt und alle Abhängigkeiten wurden aufgelöst. Imho, wenn die Abhängigkeiten einige Probleme haben, ist die Baumbildung möglicherweise nicht synchron, daher das Problem mit nicht genügend Speicher.
Hoffe das hilft jemandem da draußen.
quelle
in windows von xampp habe ich gerade geändert:
;memory_limit=512M
in php.ini zu:
memory_limit =-1
Starten Sie dann den Apache mit xampp neu
das ist das Ergebnis:
; Maximum amount of memory a script may consume ; http://php.net/memory-limit memory_limit =-1 ;memory_limit=512M
quelle
Fatal error: Allowed memory size of 1610612736 bytes exhausted (tried to allocate 4096 bytes) in phar:///usr/local/bin/composer/src/Composer/DependencyResolver/RuleWatchGraph.php on line 52 Check https://getcomposer.org/doc/articles/troubleshooting.md#memory-limit-errors for more info on how to handle out of memory errors.
setze memory_limit auf -1 funktioniert bei mir;) (vim /etc/php/7.2/cli/php.ini)
quelle
Um dies zu überschreiben und das Problem auf Ihrem lokalen Computer zu beheben, können Sie die folgenden Änderungen in Ihrer
php.ini
Konfigurationsdatei vornehmen .php.ini
Konfigurationsdatei zu finden, können Sie den folgenden Befehl verwenden:php --ini
Nach dem Ausführen dieses Befehls sollte eine Ausgabe wie die folgende angezeigt werden:
Configuration File (php.ini) Path: /usr/local/etc/php/7.3 Loaded Configuration File: /usr/local/etc/php/7.3/php.ini <---- note the path Scan for additional .ini files in: /usr/local/etc/php/7.3/conf.d Additional .ini files parsed: /usr/local/etc/php/7.3/conf.d/ext-opcache.ini
Die Datei, die wir ändern möchten, ist die geladene Konfiguration .
Öffnen und suchen Sie nach dem, das
memory_limit
Sie einstellen könnenmemory_limit = -1
, um PHP-Prozessen eine unbegrenzte Menge an Speicher zu geben, oder Sie können einstellen512MB, 1G, 2G, 5G,....
$ nano /usr/local/etc/php/7.3/php.ini
lokalisieren und einstellen:
$ memory_limit = -1 or memory_limit = 1G
Nach dem Speichern Ihrer Datei können Sie die PHP-Änderungen überprüfen, indem Sie diesen Befehl ausführen, der die aktuellen Speichereinstellungen in Ihrer
php.ini
Datei ausgibt :php -r "echo ini_get ('memory_limit'). PHP_EOL;"
HINWEIS: Nach dem Speichern funktioniert der neue Speicher. Sie müssen nichts anderes tun.
Weitere Informationen: https://support.acquia.com/hc/en-us/articles/360036102614-Overriding-memory-limits-during-local-development-with-Composer
quelle
Für Macbook: Führen Sie den Befehl aus
sudo nano ~/.bash_profile
, um bash_profile zu bearbeiten, fügen Siealias composer="COMPOSER_MEMORY_LIMIT=-1 composer"
diese Datei hinzu, speichern Sie sie und beenden Sie sie .Hoffe, dies wird das Problem lösen; Viel Spaß beim Codieren!
quelle
Auf Mac PHP 7.4
Lauf
php --ini Configuration File (php.ini) Path: /usr/local/etc/php/7.4 Loaded Configuration File: /usr/local/etc/php/7.4/php.ini Scan for additional .ini files in: /usr/local/etc/php/7.4/conf.d Additional .ini files parsed: /usr/local/etc/php/7.4/conf.d/ext-opcache.ini, /usr/local/etc/php/7.4/conf.d/php-memory-limits.ini
Wenn zusätzliche INI-Dateien analysiert wurden: memory_limit muss in geändert werden
/usr/local/etc/php/7.4/conf.d/php-memory-limits.ini
Stellen Sie, wie Jose Seie schreibt, den Speicher auf ein
memory_limit = -1 or memory_limit = 1G
quelle
Ich habe die nützliche und akzeptierte Antwort hier in wiederverwendbaren (zsh) Aliasnamen / Funktionen zusammengefasst oder verpackt, um eine schnellere und leichter zu merkende Wiederverwendung zu ermöglichen:
# composer high-memory composermem() { php -r "echo ini_get('memory_limit').PHP_EOL;" } alias composerbig='COMPOSER_MEMORY_LIMIT=-1 composer $1'
(
php composer.phar
ist bereitscomposer
auf dem System aliased ).quelle
Ich habe dieses Problem mit diesem Befehl COMPOSER_MEMORY_LIMIT = -1 gelöst
Beispiel: COMPOSER_MEMORY_LIMIT = -1 Komponist benötigt Larve / UI
quelle
Hier ist eine andere Möglichkeit, dieses Problem unter Windows zu lösen, wenn Sie Wampserver verwenden. In der Tat gibt es auf der Ebene von wampserver zwei php.ini- Dateien, die von PHP, die man im Speicherort C finden kann: \ wamp64 \ bin \ php \ phpx.xx \ php.ini und die von Apache gefunden an Position C: \ wamp64 \ bin \ apache \ apachex.xx \ bin \ php.ini . Beide Dateien haben den Parameter memory_limit. Um dieses Problem zu lösen, ist es besser, den Parameter memory_limit = -1 in beiden Dateien gleichzeitig festzulegen .
quelle
memory_limit
für den Webserver hat keine Auswirkungen auf die Ausführung von Composer. Darüber hinaus sollte diememory_limit = -1
globale Verwendung die allerletzte Option sein, da dadurch alle laufenden PHP-Prozesse für die Speicherauslastung geöffnet werden. Stellen Sie es besser nur ein, wenn Sie es brauchen, direkt verbunden mit dem StartvorgangStellen Sie sicher, dass Sie kein Paket benötigen, bevor Sie sicherstellen, dass der Herstellerordner vorhanden ist.
Überprüfen Sie, ob Sie dies bereits getan
composer install
haben. Möglicherweise haben Sie das Repository nur auf Ihren Computer geklont. Sie müssen also die alten Pakete installieren, bevor Sie ein neues benötigen. Oder Sie möchten diese Option--profile
in Ihren Composer-Befehl aufnehmen, um Informationen zum Timing und zur Speichernutzung anzuzeigen.quelle
Für Centos7- Benutzer, wo
php.ini
ist in/etc/php.ini/
sudo vi /etc/php.ini
/memory_limit
, um nach einermemory_limit
Variablen zu suchenmemory_limit = -1
esc
Taste drücken und eingeben:wq
(schreiben und beenden)sudo systemctl restart httpd
quelle
Ich benutze PHP7.2 und die Größe ist
memory_limit = 512M
standardmäßig eingestellt. Um die Größe zu erhöhen, müssen Sie suchenphp.ini
.In
Wamp
befindet es sich inC:\wamp64\bin\php\php7.2.23\php.ini
. Bitte achten Sie auf die PHP-Version, da es sich in meinem Fall um den Namensordner handeltphp7.2.23
In
Laragon
befindet es sich inC:\laragon\bin\php\php-7.2.23-Win32-VC15-x64\php.ini
wie in meinem Fall.Wenn Sie keinen unbegrenzten Speicherplatz zulassen möchten, können Sie die für Sie geeignete Größe festlegen, in meinem Fall
memory_limit = 2G
Wenn Sie unbegrenzten Speicherplatz zulassen möchten, können Sie zu wechseln
memory_limit = -1
quelle
Ich habe dieses Problem über php.ini gelöst und gerade memory_limit = 2G geändert
quelle
Versuchen Sie, das Limit in Ihrer php.ini-Datei zu erhöhen (z. B. /etc/php5/cli/php.ini für Debian-ähnliche Systeme):
;; Verwenden Sie -1 für unbegrenzt oder definieren Sie einen expliziten Wert wie 2G memory_limit = -1
quelle