374 votes

Composer besoin de manquer de mémoire. Erreur irrécupérable PHP: la taille de mémoire autorisée de 1610612736 octets est épuisée

Je suis en train d'ajouter HWIOAuthBundle à mon projet en exécutant la commande ci-dessous.

composer require hwi/oauth-bundle php-http/guzzle6-adapter php-http/httplug-bundle

HWIOAuthBundle github: https://github.com/hwi/HWIOAuthBundle

Lorsque j'essaie d'exécuter compositeur exiger j'obtiens l'erreur de mémoire insuffisante.

L'aide de la version ^0.6.0@dev pour hwi/oauth bundle avec la version ^1.2@dev pour php-http/guzzle6 à l'adaptateur à l'Aide de la version ^1.10@dev pour php-http/httplug-bundle ./le compositeur.json a été mise à jour le Chargement compositeur des référentiels avec des informations sur le package de mise à Jour des dépendances (y compris exiger-dev)

PHP Fatal error: Allowed memory size of 1610612736 bytes exhausted (tried to allocate 67108864 octets) phar:///usr/local/Cellar/composer/1.4.2/libexec/composer.phar/src/Composer/DependencyResolver/Solver.php sur la ligne 220

Fatal error: Allowed memory size of 1610612736 bytes exhausted (tried d'allouer 67108864 octets) phar:///usr/local/Cellar/composer/1.4.2/libexec/composer.phar/src/Composer/DependencyResolver/Solver.php sur la ligne 220

J'ai essayé de réglage de la memory_limit à la 2G dans mon php.fichier ini, mais n'a pas de travail. J'ai trouvé mon php.ini en exécutant php -i | grep php.ini

578voto

Adam Points 737

Pour obtenir la valeur actuelle memory_limit, exécutez:

 php -r "echo ini_get('memory_limit').PHP_EOL;"
 

Essayez d'augmenter la limite dans votre fichier php.ini (ex. /etc/php5/cli/php.ini pour les systèmes de type Debian):

 ; Use -1 for unlimited or define an explicit value like 2G
memory_limit = -1
 

Ou, vous pouvez augmenter la limite avec un argument de ligne de commande:

 php -d memory_limit=-1 composer.phar require hwi/oauth-bundle php-http/guzzle6-adapter php-http/httplug-bundle
 

Pour obtenir l'emplacement des fichiers php.ini chargés, essayez:

 php --ini
 

421voto

odubah Points 51

Dans mon cas, j'essayais d'exiger ce paquet , et j'obtenais le PHP Fatal error: Allowed memory size of .

Je l'ai trouvé facile à utiliser comme ceci et vous n'avez pas à mettre à jour le fichier PHP INI.

exemple: COMPOSER_MEMORY_LIMIT=-1 composer require huddledigital/zendesk-laravel

J'espère que cela aidera quelqu'un.

103voto

Une autre solution du manuel :

Composer respecte également une limite de mémoire définie par la variable d'environnement COMPOSER_MEMORY_LIMIT :

 COMPOSER_MEMORY_LIMIT=-1 composer.phar <...>
 

Ou dans mon cas

 export COMPOSER_MEMORY_LIMIT=-1
composer <...>
 

28voto

Aitor Fernandez Points 121

Il suffit de définir le memory_limit spécifiant la route complète de votre fichier composer.phar et de le mettre à jour, dans mon cas avec la commande:

 php -d memory_limit=-1 C:/wamp64/composer.phar update
 

21voto

Ruben Gonzalez Points 81

Récemment, il a été identifié que Composer consomme beaucoup de temps CPU et de mémoire pour les packages contenant beaucoup de tags historiques. Voir compositeur / compositeur # 7577

Une solution à ce problème consiste à utiliser symfony/flex ou https://github.com/rubenrua/symfony-clean-tags-composer-plugin

 composer global require rubenrua/symfony-clean-tags-composer-plugin
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X