Maison  >  Article  >  outils de développement  >  Le compositeur s'arrête et affiche le problème Killed

Le compositeur s'arrête et affiche le problème Killed

藏色散人
藏色散人avant
2021-07-03 15:38:281697parcourir

Exécution de Composer sur un VPS Linode avec 1 Go de mémoire (la mémoire d'exécution maximale allouée à PHP est de 128 Mo) pour installer le module Drupal, je n'ai pas reçu d'invite réussie, juste une invite TUÉE.

Après avoir augmenté la mémoire PHP de 128 Mo à 256 Mo en modifiant la mémoire d'exécution allouée à PHP, le message d'erreur est devenu plus précis :

Fatal error: Out of memory (allocated 754982912) (tried to allocate 33554440 bytes) in phar:///usr/local/bin/composer/src/Composer/DependencyResolver/RuleSet.php on line 84

Ajouté à 512 Mo :

Fatal error: Out of memory (allocated 832577536) (tried to allocate 16777216 bytes) in phar:///usr/local/bin/composer/src/Composer/DependencyResolver/Solver.php on line 223

Ajouté à 768 Mo, et le message d'erreur est devenu un simple KILLED.

Il semblerait que Composer ait un gros appétit. ce qu'il faut faire?

1. Le moyen le plus simple, le plus grossier et le plus efficace consiste à mettre à niveau le serveur et à ajouter de la mémoire au serveur. Si vous êtes vraiment pauvre et inquiet pour l'argent, abandonnez Composer ou sauvez le pays à travers les courbes.

2. L'alternative est d'allouer de la fausse mémoire au serveur pour tromper le serveur et en savoir plus sur le cache SWAP. Big Viagra a un article ici : SWAP Q&A : Qu'est-ce que SWAP ? A quoi sert SWAP ? Comment utiliser SWAP ?

Big Viagra est résolu en augmentant le cache SWAP du serveur à 2,5 Go. Bien sûr, le faux est faux après tout, et le cache créé par le disque dur n'est certainement pas aussi bon que la vraie mémoire en termes de performances.

3. Quelqu'un sur Stack Overflow a partagé une méthode qui peut être efficace, mais je ne l'ai pas essayée. Il s'agit d'exécuter Composer dans l'environnement de développement local. Après succès, téléchargez composer.lock ou git push sur le serveur de production, puis exécutez composer install sur le serveur de production.

composer install lira la configuration dans le fichier .lock et extraira directement la même version du progiciel, au lieu de rechercher la dernière version de chaque progiciel. De cette façon, les besoins en mémoire du compositeur seront réduits.

Cependant, cette méthode en elle-même est très gênante et le taux de réussite est inquiétant, alors ne l'utilisez pas si vous le pouvez.

Enfin, permettez-moi de partager avec vous une méthode pour déverrouiller temporairement la limite de mémoire de composer sans modifier le fichier de configuration php.ini :

php -d memory_limit=-1 /usr/local/bin/composer require/isntall/update

ou :

php -d memory_limit=-1 `which composer` require/isntall/update

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer