Rumah > alat pembangunan > composer > Composer运行中断并显示Killed的问题

Composer运行中断并显示Killed的问题

藏色散人
Lepaskan: 2021-07-03 15:39:03
ke hadapan
1815 orang telah melayarinya

在内存1GB(分配给PHP的最大运行内存是128MB)的Linode VPS上运行Composer安装Drupal模块,没有得到成功的提示,只是提示KILLED。

通过修改分配给PHP的运行内存把PHP内存由128MB提高到256MB以后,报错具体了一点:

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
Salin selepas log masuk

加到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
Salin selepas log masuk

再加到768MB,报错又变成一句简单的KILLED了。

看来Composer的胃口不小啊。怎么办?

1.最简单粗暴而最有效的办法就是把服务器升级,给服务器加内存。实在穷心疼钱的话,就放弃Composer或者曲线救国。

2.备选方案就是给服务器分配点假的内存糊弄一下服务器,SWAP缓存了解一下。大伟哥这里有一篇贴子:SWAP问答:SWAP是什么?SWAP有什么用?SWAP怎么用?

大伟哥就是通过把服务器的SWAP缓存增加到2.5 GB解决的。当然,假的终究是假的,硬盘做的缓存,在性能上肯定是比不过真正的内存的。

3.Stack Overflow上还有人分享了一个方法可能有效,不过大伟哥没有试过。那就是在本地开发环境上运行Composer,成功以后把composer.lock上传或者git push到生产服务器上,然后在生产服务器上运行composer install。

composer install会读取.lock文件里面的配置并直接拉取相同版本的软件包下来,而不是查找每个软件包的最新版本。这样composer对内存的需求量就会降低一些。

不过这种方法本身很麻烦,成功率又堪忧,所以能不用就不用吧。

最后,分享给大家一个不用修改php.ini配置文件,临时解禁composer运行内存限制的方法:

php -d memory_limit=-1 /usr/local/bin/composer require/isntall/update
Salin selepas log masuk

或者:

php -d memory_limit=-1 `which composer` require/isntall/update
Salin selepas log masuk

Atas ialah kandungan terperinci Composer运行中断并显示Killed的问题. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:daweibro
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan