Composer 遭遇 Out of memory 错误的另一种可能

当我使用 Composer 引入所需的 PHP 依赖包时,居然遇到了前所未有的错误。

它给出了如下错误提示,好像是告诉我内存溢出了。

Fatal error: Out of memory (allocated 1163919360) (tried to allocate 50331656 bytes) in phar://C:/composer/composer.phar/src/Composer/DependencyResolver/RuleSet.php on line 84
 


有没有搞错?确定不是在和我开玩笑?

咳咳,小伙伴们给我评评理啊,我已经有了 1163919360 这么大的内存,居然连 50331656 都分配不了?

还有王法吗,还有法律吗?

但问题是,错误就在那儿,总得解决吧。


网上找到一个说法,说是 php.ini 的问题,遂找到 php.ini 文件并按内存限制关键字 memory_limit 进行查找编辑。

结果发现像下面那样以前早已经分配了不小的内存。

; Maximum amount of memory a script may consume (128MB)
; http://php.net/memory-limit
memory_limit = 512M
 

PHP 此参数的默认值是 128M ,我已经给了它 512M

这么大内存不够用?

我电脑一共才多少内存,也太贪了吧!


感觉这说法很不靠谱,再仔细瞧了瞧这错误提示,哎,发现 Composer 被提示版本过低。

会不会和这有什么关系呢?

结果官网一查,果然 1.x 版的成了老爷货,眼看要过期,赶紧升级吧。


升级命令:

# 官网说后面还要加个 --2 ,可我尝试过不行(也可能是 -- 2,中间有个空格)
composer self-update
 

查看版本:

composer -V
 


成功升级到 2.0

赶快试试还有没有问题了。

再试着安装,发现问题已经被顺利解决了!

你看这事闹的,根本就不是 PHP 配置的问题啊!


PHP 之所以常被小伙伴们戏谑为世界上最好的语言,正是由于它的库文件依赖关系管理起来非常麻烦。

好在有大神发明了 Composer 这个管理神器,让我等小白们使用 PHP 起来方便了不少。

但获得便利的同时由 Composer 引起的问题也随之而来,现在又面临新版本的升级问题。

据说 1.x 版本与 2.0 版本之间存在兼容性问题,所以如果小伙伴们有新项目的话,建议还是尽早使用新版本,以便减少日后因兼容问题导致的麻烦。


关注@网管小贾,阅读更多



提交评论

安全码
刷新

© 2020-present 网管小贾 | 微信公众号 @网管小贾
许可协议:CC-BY-NC 4.0 | 转载文章请注明作者出处及相关链接