192 votes

Erreur "cannot allocate memory" dans la mise à jour de PHP Composer (avec Laravel 4)

Je n'arrive pas à résoudre ce problème.

Je suis sur Linode 1G RAM plan de base. J'essaie d'installer un paquet via Composer et il ne me laisse pas faire. Ma limite de mémoire est fixée à "-1" dans PHP.ini.

Y a-t-il autre chose que je puisse faire pour que cela soit installé ?

Loading composer repositories with package information
Updating dependencies (including require-dev)
  - Installing thujohn/rss (dev-master df80a7d)
    Downloading: 100%         
PHP Fatal error:  Uncaught exception 'ErrorException' with message 'proc_open(): fork failed - Cannot allocate memory' in phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php:975
Stack trace:
#0 [internal function]: Composer\Util\ErrorHandler::handle(2, 'proc_open(): fo...', 'phar:///usr/loc...', 975, Array)
#1 phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php(975): proc_open('stty -a | grep ...', Array, NULL, NULL, NULL, Array)
#2 phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php(853): Symfony\Component\Console\Application->getSttyColumns()
#3 phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php(818): Symfony\Component\Console\Application->getTerminalDimensions()
#4 phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php(752): Symfony\Component\Console\Application->getTerminalWidth()
#5 phar:///usr/local/bin/com in phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php on line 975

Fatal error: Uncaught exception 'ErrorException' with message 'proc_open(): fork failed - Cannot allocate memory' in phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php:975
Stack trace:
#0 [internal function]: Composer\Util\ErrorHandler::handle(2, 'proc_open(): fo...', 'phar:///usr/loc...', 975, Array)
#1 phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php(975): proc_open('stty -a | grep ...', Array, NULL, NULL, NULL, Array)
#2 phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php(853): Symfony\Component\Console\Application->getSttyColumns()
#3 phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php(818): Symfony\Component\Console\Application->getTerminalDimensions()
#4 phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php(752): Symfony\Component\Console\Application->getTerminalWidth()
#5 phar:///usr/local/bin/com in phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php on line 975

2voto

oussaka Points 601

J'ai résolu le même problème dans Vagrant. J'ai augmenté la valeur de limite_mémoire et supprimer le cache du compositeur : sudo rm -R ~/.composer et enfin vagrant reload.

2voto

Adonias Vasquez Points 898

Essayez ça :

/bin/dd if=/dev/zero of=/var/swap.1 bs=1M count=1024
/sbin/mkswap /var/swap.1
/sbin/swapon /var/swap.1

Cela fonctionne pour moi sur Centos 6

1voto

nixon1333 Points 327

Faites un échange et relancez la commande Composer. J'espère que cela fonctionnera pour vous.

 $ dd if=/dev/zero of=/swapfile bs=1024 count=512k
 $ mkswap /swapfile
 $ swapon /swapfile
 $ echo "/swapfile       none    swap    sw      0       0 " >> /etc/fstab
 $ echo 0 > /proc/sys/vm/swappiness
 $ chown root:root /swapfile
 $ chmod 0600 /swapfile

1voto

Antti Hätinen Points 11

Dans mon cas, j'ai essayé tout ce qui a été énuméré ci-dessus. J'utilisais Laravel et Vagrant avec 4 Go de mémoire et un swap, la limite de mémoire étant fixée à -1. J'ai supprimé le vendor/ et essayé d'autres versions de PHP. Finalement, j'ai réussi à le faire fonctionner en exécutant

vagrant halt
vagrant up

Et puis l'installation du compositeur a fonctionné à nouveau comme d'habitude.

0voto

ivanproskuryakov Points 116

J'ai le même problème avec la mise à jour de php composer.phar sur mon hébergement 512mb.

résolu avec php composer.phar installer

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