J'ai un problème, j'ai essayé d'installer un nouveau paquet dans mon projet laravel 4. .. Mais quand je lance php composer.phar update
, je reçois ceci:
Loading composer repositories with package information
Updating dependencies (including require-dev)
Killed
J'ai cherché le problème sur Internet et vu que la mémoire est le problème, je pense que je n'ai pas assez RAM de disponible, j'ai vérifié cela, j'ai environ 411mb libre . Est-ce que le compositeur est vraiment besoin de plus de RAM? Quelqu'un peut-il m'aider s'il vous plaît?
Merci
Le message "Killed" signifie généralement que votre processus consomme trop de mémoire. Vous devrez donc peut-être simplement ajouter plus de mémoire à votre système, si possible. Au moment de la rédaction de cette réponse, j'ai dû augmenter la mémoire de ma machine virtuelle à au moins 768 Mo afin que composer update
fonctionne dans certaines situations.
Toutefois, si vous le faites sur un serveur actif, vous ne devriez pas utiliser du tout composer update
. Ce que vous devriez plutôt faire, c'est:
composer update
dans un environnement local (votre machine physique locale ou une machine virtuelle de développement)git Push
le fichier composer.lockcomposer install
sur le serveur livecomposer install
lira ensuite le fichier .lock en récupérant les mêmes versions exactes à chaque fois plutôt que de rechercher les dernières versions de chaque paquet. Cela rend votre application moins susceptible de tomber en panne et le compositeur utilise moins de mémoire.
Lisez plus ici: https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file
Si, comme moi, vous utilisez un micro VM qui manque de mémoire, créer un fichier d'échange suffit:
free -m
mkdir -p /var/_swap_
cd /var/_swap_
#Here, 1M * 2000 ~= 2GB of swap memory
dd if=/dev/zero of=swapfile bs=1M count=2000
mkswap swapfile
swapon swapfile
chmod 600 swapfile
echo "/var/_swap_/swapfile none swap sw 0 0" >> /etc/fstab
#cat /proc/meminfo
free -m
au fait, n'hésitez pas à choisir un autre emplacement/nom de fichier/taille pour le fichier./var
n’est probablement pas le meilleur endroit, mais je ne sais pas quel endroit serait, et cela m’arrive rarement, car de minuscules serveurs servent surtout à des fins de test.
C’est parce que votre hébergement manque de mémoire, veuillez vérifier this tutorial
Malheureusement, le compositeur nécessite beaucoup de RAM et de puissance de traitement. Voici quelques-unes des choses que j'ai faites et qui, combinées, ont rendu le processus supportable. C'était sur mon parc en nuage env.
service mysql stop
(tuez vos services DB/mem-hog pour libérer quelques RAM - n'oubliez pas de le redémarrer!) top
pour surveiller la consommation de mémoire/échange jusqu'à la fin du processus.composer.phar update --prefer-dist -vvv
(sortie prolixe [se bloque toujours à certains moments lorsque vous travaillez] et utilisez les fichiers distro Zip). Peut-être aussi essayer un --dry-run
? Vous pouvez essayer quelque chose comme ça
php -d memory_limit=4G /usr/local/bin/composer update
Solution DigitalOcean ne nécessitant pas de mémoire supplémentaire - activation du swap, voici un exemple pour 1 Go:
dans le terminal en dessous
/bin/dd if=/dev/zero of=/var/swap.1 bs=1M count=1024
/sbin/mkswap /var/swap.1
Sudo /sbin/swapon /var/swap.1
La solution ci-dessus fonctionnera jusqu'au prochain redémarrage, après quoi l'échange devra être réactivé. Pour le conserver entre les redémarrages, ajoutez le fichier d'échange à fstab:
Sudo nano /etc/fstab
ouvrez le fichier ci-dessus add ajoutez la ligne ci-dessous au fichier
/var/swap.1 swap swap sw 0 0
maintenant redémarrez le serveur. Composer besoin fonctionne bien.
Vous pouvez essayer de définir preferred-install
sur "dist"
dans la configuration du compositeur de la CLI WP - généralement à ~/.wp-cli/packages/composer.json
.
php -d memory_limit = Mise à jour du compositeur 5G
Résolu sur Laravel/Homestead (Fenêtres vagabondes)
1) Éditez Homestead.yaml et augmentez la mémoire de 2048 à 4096
2) vagabond
3) ssh vagrant
4) Installez Symfony avec cette ligne sur le dossier que vous choisissez (doit être sans fichiers)
COMPOSER_MEMORY_LIMIT=-1 composer create-project symfony/website-skeleton . -s dev
Exécutez composer self-update
et composer clearcache
supprimez le fournisseur et le composeur.lock, redémarrez votre environnement local, puis exécutez php -d memory_limit=-1 /usr/local/bin/composer install
.