Je ne peux tout simplement pas résoudre celui-ci.
Je suis sur le plan de base Linode 1G RAM. Essayer d'installer un package via Composer et ça ne me laisse pas. Ma limite de mémoire est définie sur "-1" sur PHP.ini
Puis-je faire autre chose pour l’installer?
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
php
laravel
laravel-4
composer-php
Ericbae
la source
la source
Il semble que vous manquez de mémoire d'échange, essayez ceci
comme mentionné par @ BlackBurn027 dans les commentaires ci-dessous, cette solution a été décrite ici
la source
En tant que guide de dépannage du compositeur ici Cela peut se produire car le VPS manque de mémoire et n'a pas d'espace de swap activé.
Pour activer le swap, vous pouvez utiliser par exemple:
Ou si ci-dessus ne fonctionne pas, vous pouvez essayer de créer un fichier d'échange
la source
J'ai été confronté au même problème. Je suis sur une micro-instance AWS Free qui a moins de mémoire. J'essaie toujours l'une des options ci-dessous et cela fonctionne toujours (avant tout cela, veuillez vérifier si la dernière version de composer est installée)
ou supprimez le contenu du dossier du fournisseur et essayez la mise à jour du compositeur.
La deuxième option essaie de mettre à jour tous les composants, s'il n'y a pas de mise à jour, elle récupère le package du cache, sinon le dist
Remarque: veuillez modifier la limite de mémoire selon votre choix.
ou
Créez une partition d'échange et essayez. La partition Swap est la partie du disque dur que Linux utilise comme mémoire virtuelle lorsqu'il manque de mémoire physique. C'est similaire au fichier d'échange Windows uniquement au lieu d'utiliser un fichier réel, Linux utilise une partition sur le disque dur à la place.
J'espère que cela t'aides
la source
sudo php -dmemory_limit=750M composer.phar update
j'ai cette erreurCould not open input file: composer.phar
, aidezFacile, tapez ces commandes:
rm -rf vendor/
rm -rf composer.lock
php composer install --prefer-dist
Devrait fonctionner pour les machines à faible mémoire
la source
Voici les étapes pour résoudre le problème: (méthode d'allocation de fichier SWAP rapide instantanée utilisée)
Configuration du serveur SWAP (Ubuntu 16.04 SWAP pour corriger les erreurs de mémoire insuffisante)
Vérifiez si vous disposez déjà du swap, de la mémoire et de la taille du disque:
Créer un fichier d'échange: (changez 1G en 4G si vous voulez 4 Go de mémoire SWAP)
Vérifiez le fichier d'échange:
Attribuer un fichier d'échange:
Vérifiez si le swap est OK, la mémoire et la taille du disque:
Joindre un fichier d'échange au redémarrage du système:
Ajuster les paramètres du fichier d'échange:
Priorité du fichier SWAP: (0-100% => 0: ne pas échanger, 100: mettre SWAP et libérer la RAM)
Supprimer l'inode du cache: (100: le système supprime les informations d'inode du cache trop rapidement)
la source
sudo nano /etc/sysctl.conf
, donc, je l'ignore puis redémarre Nginx, puis faiscomposer install
(auparavant, j'ai supprimé le répertoire du fournisseur) et cela fonctionne. Merci!J'ai eu le même problème sur vagabond. Je l'ai corrigé en allcate plus de mémoire.
la source
vb.customize ...
vous pouvez le fairevb.memory = 1024
.Essayer
il augmente fondamentalement la mémoire d'échange
sudo /bin/dd if=/dev/zero of=/var/swap.1 bs=1M count=1024 && sudo /sbin/mkswap /var/swap.1 && sudo /sbin/swapon /var/swap.1
la source
Essayez ça:
la source
Voici la solution de contournement que j'ai trouvée qui fonctionne pour moi à chaque fois:
la source
J'ai essayé en supprimant simplement le dossier du fournisseur et le fichier composer.lock , puis j'exécute la commande
composer clear-cache
, puiscomposer install
. Donc, cela fonctionne sans aucune erreur.la source
vous pouvez utiliser ce qui suit pour vérifier votre mémoire libre (swap)
Pour activer le swap, vous pouvez utiliser par exemple:
la source
free -m
et j'ai remarqué que je n'avais pas de mémoire, même pas en échange ... puissudo reboot
ça a marchéCela semble être un problème récurrent avec les instances de serveur de 1 Go et plus petites. En plus d'essayer d'arrêter les processus et de modifier les paramètres de permutation, vous pouvez installer sur une machine locale et télécharger.
la source
Parfois, en mettant à jour automatiquement le compositeur, il résout le problème
À votre santé
la source
composer self-update
, si quelqu'un qui ne connaît pas vraiment le compositeur doit lire cette réponse.Essaye ça:
Ce travail pour moi sur Centos 6
la source
J'ai augmenté le PHP
memory_limit
de 128M par défaut à 512M et redémarré le serveur. Cela a résolu le problème.la source
Je me retrouve dans cette situation la plupart du temps, donc normalement je suivais l'étape de configuration de la mémoire d'échange.
Mais maintenant, j'ai trouvé une astuce alternative simple qui a fonctionné pour moi.
Exécuter
composer update --no-dev
autre quecomposer update
la source
J'ai résolu le même problème dans Vagrant. J'ai augmenté la valeur de memory_limit et supprimer le cache du compositeur: sudo rm -R ~ / .composer et enfin vagrant reload.
la source
J'ai le même problème avec la mise à jour php composer.phar sur mon hébergement 512mb.
résolu avec l' installation de php composer.phar
la source
Faites un échange et exécutez à nouveau la commande composer. J'espère que cela fonctionnera pour vous.
la source
Dans mon cas, j'ai essayé tout ce qui était énuméré ci-dessus. J'utilisais Laravel et Vagrant avec 4 Go de mémoire et un swap, avec une limite de mémoire définie sur -1. J'ai supprimé le fournisseur / et essayé d'autres versions de PHP. Enfin, j'ai réussi à le faire fonctionner en exécutant
Et puis l'installation du compositeur a fonctionné à nouveau comme d'habitude.
la source
J'ai eu un problème similaire sur le serveur le moins cher (512 Mo de RAM) hébergé avec DigitalOcean , et j'utilisais également Jenkins CI sur le même serveur. Après avoir arrêté l'instance Jenkins, la commande d'installation du compositeur a fonctionné (enfin, jusqu'à un certain point, elle a échoué avec l'extension mcrypt manquante en plus d'être déjà installée!).
Peut-être que si vous avez une autre application en cours d'exécution sur le serveur, cela vaut peut-être la peine d'essayer de l'arrêter et de réexécuter la commande.
la source
Veuillez désactiver le regroupement js et augmenter la mémoire. Cela devrait le réparer. J'ai corrigé le mien en désactivant le regroupement js.
Merci
la source
éditez le fichier php.ini et augmentez la valeur memory_limit.
résoudra ce problème.
la source
> mmap () a échoué: [12] Impossible d'allouer de la mémoire
Mettre à jour la mémoire sur le serveur et exiger «4G» Changer 4 Go de RAM [essayer de changer le type de serveur ou ajouter plus de RAM]
2 fichiers que nous devons éditer
sur commande
et modifier
"memory_limit 756M”
en4G
Php ini sur php 7.0
memory_limit = 128M à 4G
#AWS #AMAZONLINUX # MAGENTO2 # PHP7.0
la source
.htaccess
n'affecte pascomposer
après tout, car cela n'est pas exécuté via un serveur Web