果冻想
认真玩技术的地方

Composer更新慢的解决方案

问题

一般我们在使用composer installcomposer update时,有的时候安装和更新速度非常慢,慢的让人捉急,这个时候我们可以通过下面的方案来解决这个问题。

问题原因

首先,我们需要知道为什么慢呢?这是因为一般情况下,安装包的数据(主要是zip文件)一般是从github.com上下载的,安装包的元数据是从packagist.org 上下载的。

然而,由于众所周知的原因,国外的网站连接速度很慢,并且随时可能被“墙”甚至“不存在”。

“Packagist中国全量镜像”所做的就是缓存所有安装包和元数据到国内的机房并通过国内的CDN进行加速,这样就不必再去向国外的网站发起请求,从而达到加速composer install以及composer update的过程,并且更加快速、稳定。因此,即使packagist.org、github.com发生故障(主要是连接速度太慢和被墙),我们仍然可以下载、更新安装包。

解决方案

既然知道了问题原因,接下来我们就需要启用本地镜像服务。有两种方式启用本镜像服务:

  • 系统全局配置: 即将配置信息添加到Composer的全局配置文件config.json中;
  • 单个项目配置:将配置信息添加到某个项目的composer.json文件中。

对于系统全局配置,打开命令行窗口(windows用户)或控制台(Linux、Mac用户)并执行如下命令:

composer config -g repo.packagist composer https://packagist.phpcomposer.com

对于单个项目配置,打开命令行窗口(windows用户)或控制台(Linux、Mac用户),进入项目的根目录(也就是composer.json 文件所在目录),执行如下命令:

composer config repo.packagist composer https://packagist.phpcomposer.com

上述命令将会在当前项目中的composer.json文件的末尾自动添加镜像的配置信息(我们也可以自己手工添加):

"repositories": {
    "packagist": {
        "type": "composer",
        "url": "https://packagist.phpcomposer.com"
    }
}

总结

对于平常开发过程中,我们总会遇到这样或者那样的问题,我们需要进行总结,将我们的问题、以及我们分析的问题原因和最后的解决方案记录下来,以便后期的查阅。我一直都是这么干的,这样对我帮助很大。

果冻想,认真玩技术的地方。

2018年4月30日 于内蒙古包头。

赞(41) 打赏
未经允许不得转载:果冻想 » Composer更新慢的解决方案
关注微信公众号
关注微信公众号和果冻一起分享你的疑惑与心得。
分享到: 更多 (0)

评论 2

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #-49

    我来测试一下

    xiao_langlang1114个月前 (06-21)回复
  2. #-48

    ??????

    xiao_langlang1114个月前 (06-21)回复

玩技术,我们是认真的

联系我们关于果冻

请我喝杯咖啡也是不错的

支付宝扫一扫打赏

微信扫一扫打赏