Composer breaks and displays Killed issue

藏色散人
Release: 2021-07-03 15:39:03
forward
1777 people have browsed it

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
Copy after login

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
Copy after login

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
Copy after login

or:

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

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!

Related labels:
source:daweibro
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template