当我使用 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
版本之间存在兼容性问题,所以如果小伙伴们有新项目的话,建议还是尽早使用新版本,以便减少日后因兼容问题导致的麻烦。
关注@网管小贾,阅读更多