基础 - 中国镜像 ¶
作者:KK
发表日期:2017.7.23
国外下载慢 ¶
Composer的代码是从国外的代码包平台下载的,这个平台叫做Packagist(在概念上来说,这叫资源库
)。由于国情的问题,我们的网络有时候会被限制,局部线路会连不通国外网络甚至很慢,导致你的下载没什么反应、等大半天
在国内做了个镜像解决掉 ¶
但默认情况下会走国外线路,如何让Composer从国内的镜像站点下载呢?
下面我直接引用了Composer中国官网的文章内容
镜像用法 ¶
有两种方式启用本镜像服务:
方法1:系统全局配置 ¶
将配置信息添加到Composer的全局配置文件config.json
中
打开命令行窗口(windows用户)或控制台(Linux、Mac 用户)并执行如下命令:
composer config -g repo.packagist composer https://packagist.phpcomposer.com
方法2: 单个项目配置 ¶
修改项目的 composer.json 配置文件单独为这个项目添加镜像配置
打开命令行窗口(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"
}
}
以 laravel 项目的 composer.json 配置文件为例,执行上述命令后如下所示(注意最后几行):
{
"name": "laravel/laravel",
"description": "The Laravel Framework.",
"keywords": ["framework", "laravel"],
"license": "MIT",
"type": "project",
"require": {
"php": ">=5.5.9",
"laravel/framework": "5.2.*"
},
"config": {
"preferred-install": "dist"
},
"repositories": {
"packagist": {
"type": "composer",
"url": "https://packagist.phpcomposer.com"
}
}
}
OK,一切搞定!试一下 composer install 来体验飞一般的速度吧!
镜像原理 ¶
一般情况下,安装包的数据(主要是 zip 文件)一般是从 github.com 上下载的,安装包的元数据是从 packagist.org 上下载的。
然而,由于众所周知的原因,国外的网站连接速度很慢,并且随时可能被“墙”甚至“不存在”。
“Packagist 中国全量镜像”所做的就是缓存所有安装包和元数据到国内的机房并通过国内的 CDN 进行加速,这样就不必再去向国外的网站发起请求,从而达到加速 composer install 以及 composer update 的过程,并且更加快速、稳定。因此,即使 packagist.org、github.com 发生故障(主要是连接速度太慢和被墙),你仍然可以下载、更新安装包。
说实话吧它其实也不是所有都一模一样的,有时候会延迟更新,所以不一定好使。
取消镜像设置 ¶
如果你用了镜像反而没解决问题,想要取消这个设置,可以执行以下命令:
composer config -g --unset repos.packagist