• 技术文章 >开发工具 >composer

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

    藏色散人藏色散人2021-07-03 15:39:03转载231
    在内存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

    加到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

    再加到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

    或者:

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

    以上就是Composer运行中断并显示Killed的问题的详细内容,更多请关注php中文网其它相关文章!

    声明:本文转载于:daweibro,如有侵犯,请联系admin@php.cn删除
    专题推荐:Composer
    上一篇:如何自动安装Composer的php-build插件 下一篇:怎么解决bash: composer: command not found问题
    大前端线上培训班

    相关文章推荐

    • Composer安装时要求输入授权用户名密码是怎么回事• php composer 用法是什么• composer如何安装(mac/linux)laravel• 如何自动安装Composer的php-build插件

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网