『Composer 中国全量镜像』是由 Laravel China 社区联合 又拍云 与 优帆远扬 共同合作推出的公益项目,旨在为广大 PHP 用户提供稳定和高速的 Composer 国内镜像服务。
关于作者
本项目由 @扣丁禅师 独立开发。禅师现居沈阳,远程办公族,热爱编程,向往自由。目前为 优帆远扬的远程高级开发工程师 、高级架构师。
镜像的作用?
一般情况下,安装包的数据(主要是 zip 文件)一般是从 http://github.com 上下载,安装包的元数据是从 http://packagist.org 上下载。
然而,由于众所周知的原因,国外的网站连接速度很慢,并且随时可能被 『墙』 甚至 『不存在”』。
全量镜像所做的就是缓存所有安装包和元数据到 Linode 服务器上,并通过国内的 CDN 进行加速,从而让 composer install 以及 composer update 的操作达到最快速度。所以即使是 packagist.org, http://github.com 发生故障(主要是连接速度太慢和被墙),你仍然可以下载、更新安装包。
镜像的由来?
几个月前,禅师 加入了 优帆远扬 的远程工程师团队。我在了解他的工程背景以后,发现是一牛逼的高手。遂提议一起合作:以 Laravel China 社区的名义来构建一个长久维护、高可用性、快速稳定的 Composer 全量镜像。
禅师很爽快地就答应了。经过禅师一个月的开发和设计,两个多月的内侧,今日终于面世。
维护多久?
只要 优帆远扬 和 Laravel China 还活着,这个项目就会一直持续下去。
所以,大家可以放心使用。
如何使用?
请尽可能用比较新的 Composer 版本。
使用 Composer 镜像加速有两种选项:
选项一:全局配置,这样所有项目都能惠及(推荐);
选项二:单独项目配置;
选项一、全局配置(推荐)
$ composer config -g repo.packagist composer https://packagist.laravel-china.org
选项二、单独使用
如果仅限当前工程使用镜像,去掉 -g 即可,如下:
$ composer config repo.packagist composer https://packagist.laravel-china.org
遇到问题?
composer
命令后面加上 -vvv (是3个v)可以打印出调错信息,命令如下:
$ composer -vvv create-project laravel/laravel blog
$ composer -vvv require psr/log
如果自己解决不了,或发现 BUG,可以在 @扣丁禅师 的 GitHub 上 创建 Issue。
注意提问时请带上 -vvv 的输出,并且要求叙述清晰,第一次提问的同学请阅读 关于提问的智慧。
常见问题
已存在 composer.lock 文件,先删除,再运行
composer install
重新生成。
原因:composer.lock 缓存了之前的配置信息,从而导致新的镜像配置无效。
使用
laravel new
命令创建工程, 这个命令会从 这里 下一个zip包,里面自带了 composer.lock,和上面原因一样,也无法使用镜像加速,解决方法:
方法一(推荐):
不使用laravel new
,直接用composer create-project laravel/laravel xxx
新建工程。方法二:
运行laravel new xxx
,当看见屏幕出现 - Installing doctrine/inflector 时,Ctrl + C
终止命令,cd xxx 进入,删除 composer.lock,再运行composer install
。
安装 Composer
Linux/Mac:
wget https://dl.laravel-china.org/composer.phar -O /usr/local/bin/composer
chmod a+x /usr/local/bin/composer
如遇权限不足,可添加 sudo
。
Windows:
直接下载 composer.phar,地址:https://dl.laravel-china.org/...
把下载的 composer.phar 放到 PHP 安装目录
新建 composer.bat, 添加如下内容,并保存:
@php "%~dp0composer.phar" %*
查看当前版本
$ composer -V
升级版本
$ composer selfupdate
注意
selfupdate
升级命令会连接官方服务器,速度很慢。建议直接下载我们的composer.phar
镜像,每天都会更新到最新。
致谢
Composer 中国全量镜像的 CDN 由国内领先 CDN 服务商「又拍云」提供,相信这次联合合作能给 Composer 镜像提供稳定、快速的 CDN 支持。
另外也在此特别感谢「优帆远扬」在项目开发中提供的技术支持。
社区讨论:https://laravel-china.org/com...