web-dev-qa-db-fra.com

Composer besoin de manquer de mémoire. PHP Erreur fatale: taille de mémoire autorisée de 1610612736 octets épuisés

J'essaie 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 composer, il me faut l'erreur de mémoire insuffisante.

Utilisation de la version ^0.6.0@dev pour hwi/oauth-bundle Utilisation de la version ^1.2@dev pour php-http/guzzle6-adapter Utiliser la version ^1.10@dev pour php-http/httplug-bundle ./composer.json a été mis à jour Chargement référentiels composer avec informations sur le paquet Mise à jour des dépendances (y compris require-dev)

Erreur irrécupérable PHP: la taille de mémoire autorisée de 1610612736 octets est épuisée (essayé d'allouer 67108864 octets) dans phar: ///usr/local/Cellar/composer/1.4.2/libexec/composer.phar/src/Composer/DependencyResolver/Solver.php à la ligne 220

Erreur fatale: Une taille de mémoire autorisée de 1610612736 octets a été épuisée (tenté d'allouer 67108864 octets) dans phar: ///usr/local/Cellar/composer/1.4.2/libexec/composer.phar/src/Composer/DependencyResolver/Solver.php à la ligne 220

J'ai essayé de régler le memory_limit à 2G dans mon fichier php.ini mais je n'ai pas fonctionné. J'ai trouvé mon php.ini en exécutant php -i | grep php.ini

6
Brian Chen

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 (par exemple, /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
15
Adam

Récemment, il a été identifié que Composer consomme beaucoup de temps processeur et de mémoire pour les packages contenant de nombreuses balises 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
1
Ruben Gonzalez

Il suffit de définir le memory_limit spécifiant l’itinéraire complet 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
1
Aitor Fernandez

Voici un autre moyen de résoudre ce problème sous Windows si vous utilisez Wampserver. En effet au niveau de wampserver, il existe deuxphp.inifichiers, celui de PHP, que l’on peut trouver à l’emplacement C:\wamp64\bin\php\phpx.xx\php .ini et celui d’Apache, qui peut être trouvé à l’emplacement C:\wamp64\bin\Apache\apachex.xx\bin\php.ini . Ces deux fichiers ont le paramètre memory_limit. Donc, pour être sûr de résoudre ce problème, il est préférable de définir le paramètrememory_limit = -1dans les deux fichiers à la fois.

0
Fidèle W. AVI