从学习Yii2时初识composer,到自豪的用上 composer中文 网和LC的中文镜像,再到现如今LC镜像宣布完成历史使命即将停用,面儿上的是国内PHP开发者社区的飞速发展,里子是维护者们背后付出的无数时间和精力,和辛酸,和无奈。
一直以来, composer中文镜像 都在靠着社区的Summer、禅师等几个人的维护,而类似的NPM、Maven等源,都有阿里这种大厂维护。可随着Composer在国内以肉眼可见的速度发展起来,仅仅由个人、非盈利组织,不管是从财力上还是精力上,都已经难以进行支撑如此庞大、且在日益庞大的需求,由商业公司进行维护已经是历史发展的必然。
如今,在迎来了阿里云 Composer全量镜像之后, Composer的中文镜像 终于走向了大厂维护的时代。
这是一个时代的终结,也是由先行者们奠定的,新时代的到来。
感谢Summer、禅师,以及其他不曾留下名字的贡献者,向你们的开源精神和对国内PHP社区的发展做出的贡献,致敬!
阿里云 Composer中文镜像 使用教程
全局配置(推荐)
先取消之前的配置:
composer config -g --unset repos.packagist
所有项目都会使用该镜像地址:
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
项目配置
仅修改当前工程配置,仅当前工程可使用该镜像地址:
composer config repo.packagist composer https://mirrors.aliyun.com/composer/
取消配置:
composer config --unset repos.packagist
调试
composer 命令增加 -vvv 可输出详细的信息,命令如下:
composer -vvv require alibabacloud/sdk
Debian9下安装composer和npm 及切换 中文镜像 可以这篇文章:https://blog.doylee.cn/debian9-composer-npm-latest/
标准composer安装方式,可查看Packagist/Composer中文网的这篇说明:
https://pkg.phpcomposer.com/#how-to-install-composer
其它国内镜像备忘
- 阿里云:https://mirrors.aliyun.com/composer/
- 腾讯云:https://mirrors.cloud.tencent.com/composer/
- 华为云:https://repo.huaweicloud.com/repository/php/
以下是公告原文:
Laravel China 镜像完成历史使命, 将于两个月后停用
随着 阿里开源镜像 发布以后,很多人在问我们 Laravel China 镜像何去何从。我与禅师讨论后,做了一个艰难的决定:Laravel China 镜像将于两个月后停用。
我们的 CDN 资源是有限的,为了防止恶意流量消耗,本着牺牲少部分人的使用体验,让大部分人能正常使用的初衷,我们在后台做了诸多限制。例如说同一个 IP 下一分钟内只能下载多少次,最大允许下载的文件大小(后台观察到有超大的 zip 包,如下图)等。
限制加上去后,恶意流量有所减少,对成本控制起到很好的效果。但是随之而来又出现了另一个问题:
问答:Composer install 时候提示需要输入 username 和 password
问答:腾讯云无法使用 Composer Laravel 社区版镜像
问答:Composer 安装依赖时让输入用户名和密码
误杀率较高,分析了下原因,有可能是带宽速度过快,触发「分钟内下载频率限制」,或多人共用一个 IP,这种常见于同一个公司有多名使用者,出口 IP 是同一个的情况。
我们陷入一个两难的境地:基于 CDN 平台上提供的机制,实难分辨上面的这些请求。解开限制,又会出现流量成本超标的情况。误杀情况无法避免,可预知的,接下来还会出现更多的反馈「Composer 要求用户名」的帖子。
与其维护一个残缺的镜像,还不如让贤,推广其他稳定、可用性高、流量不限制的大厂镜像。
Laravel China 镜像创建的契机是 phpcomposer.com
出现了很长时间的不稳定,这是当时唯一的一个全量镜像,无其他选项。出现不稳定时,只能选择使用 Packagist 的源镜像,而源镜像速度慢且有时会连接不上,本地开发尚且可使用科学上网来解决,服务器部署的话,每台服务器上都得去装这些科学上网软件,非常不方便。正是在这种情况下,Laravel China 镜像应运而生。
两年后的现在,国内全量镜像有了更多的选项,尤其是大厂的镜像,像阿里云、腾讯、华为,他们的资源是我们无法比拟的。再加上 镜像源码 的开放,降低了构建镜像的成本,相信以后还会有更多的选项。Laravel China 镜像在这个时候停用,也算是不辱使命,功成身退。
鸣谢
Laravel China 镜像,运行两年多可以说是很稳定了,这一切都是禅师的功劳。禅师自己也在和别人合伙创业,平时工作很忙,镜像出问题他的响应时间都是飞快,如他所说的:「不能耽误别人的工作」。不愧为 LC 镜像背后的男人。
还要感谢 又拍云 的慷慨赞助。尤其是又拍云负责市场的傅总监,百忙之中积极响应我的请求,足见又拍云对开源事业的支持与热情。
替代镜像
请见 Wiki:Wiki:Composer 国内加速:可用镜像列表
镜像迁移
老项目迁移到新镜像时,composer.lock
会有老镜像的下载链接残留,处理方法请见:Wiki:Laravel 安装和开发环境:修改项目依赖为新的镜像地址 。
Practice makes perfect.
Pingback: CentOS/RHEL 安装并保持 composer /npm为最新版本 - 乱世之牙
Pingback: Debian9安装并保持 composer /npm为最新版本 – 乱世之牙