Home >Development Tools >composer >Composer breaks and displays Killed issue

Composer breaks and displays Killed issue

藏色散人
藏色散人forward
2021-07-03 15:38:281814browse

Run Composer to install the Drupal module on a Linode VPS with 1GB of memory (the maximum running memory allocated to PHP is 128MB), but I did not get a successful prompt, just a KILLED prompt.

After increasing the PHP memory from 128MB to 256MB by modifying the running memory allocated to PHP, the error message is a little more specific:

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

Added to 512MB:

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

Added to 768MB, the error message becomes a simple KILLED again.

It seems that Composer has a big appetite. what to do?

1. The simplest, crudest and most effective way is to upgrade the server and add memory to the server. If you are really poor and worried about money, give up Composer or save the country through curves.

2. The alternative is to allocate some fake memory to the server to fool the server and learn about the SWAP cache. Big Viagra has a post here: SWAP Q&A: What is SWAP? What is SWAP used for? How to use SWAP?

Big Viagra is solved by increasing the server's SWAP cache to 2.5 GB. Of course, the fake is fake after all, and the cache made by the hard disk is definitely not as good as the real memory in terms of performance.

3. Someone on Stack Overflow shared a method that may be effective, but I have not tried it. That is to run Composer in the local development environment. After success, upload composer.lock or git push to the production server, and then run composer install on the production server.

composer install will read the configuration in the .lock file and directly pull the same version of the software package, instead of looking for the latest version of each software package. In this way, composer's memory requirements will be reduced.

However, this method itself is very troublesome and the success rate is worrying, so don’t use it if you can.

Finally, I would like to share with you a method to temporarily unlock the composer running memory limit without modifying the php.ini configuration file:

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

or:

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

The above is the detailed content of Composer breaks and displays Killed issue. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:daweibro. If there is any infringement, please contact admin@php.cn delete