Composer 中文镜像 / Packagist 中国全量镜像正式发布!

file

『Composer 中国全量镜像』是由 Laravel China 社区联合 又拍云优帆远扬 共同合作推出的公益项目,旨在为广大 PHP 用户提供稳定和高速的 Composer 国内镜像服务。

镜像的由来?

几个月前,我有幸加入了 优帆远扬 的远程工程师团队。 Summer 在与我沟通过后,提议我们一起合作,以 Laravel China 社区的名义来构建一个长久维护,高可用性,快速稳定的 Composer 全量镜像。

维持多久?

我个人会尽最大努力来持续维护这个镜像。另外,因为是以 Laravel China 社区的名义发起的项目,用 Summer 的话来说:

只要 Learnku.com 还活着,这个项目就会一直持续下去。

所以,大家可以放心使用,而且从来都不是我一个人在战斗,我的背后是一支卓越的团队在给予各方面支持。

如何使用?

请尽可能用比较新的 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 config -g --unset repos.packagist

遇到问题?

composer 命令后面加上 -vvv (是3个v)可以打印出调错信息,命令如下:

$ composer -vvv create-project laravel/laravel blog
$ composer -vvv require psr/log

如果自己解决不了,或发现 BUG,可以在 @扣丁禅师 的 GitHub 上 创建 Issue

注意提问时请带上 -vvv 的输出,并且要求叙述清晰,第一次提问的同学请阅读 关于提问的智慧

常见问题

  1. 已存在 composer.lock 文件,先删除,再运行 composer install 重新生成。

    原因:composer.lock 缓存了之前的配置信息,从而导致新的镜像配置无效。

  2. 使用 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
  3. 缓存多久更新一次?
    • 0时 - 早上7时,这个时间段考虑使用人数不会太频繁,间隔为15分钟
    • 其余时间,间隔为5分钟

      正常更新速度可在1分内完成 ,但更新太快,会降低CDN命中率,如果总有新文件让CDN去缓存,反而拖慢了速度,所以故意加了些延迟。我们每次采集中还会删减掉数千个僵尸包,以加快传输速度。

安装 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:

  1. 直接下载 composer.phar,地址:https://dl.laravel-china.org/composer.phar
  2. 把下载的 composer.phar 放到 PHP 安装目录
  3. 新建 composer.bat, 添加如下内容,并保存:
[@php](https://learnku.com/users/10050) "%~dp0composer.phar" %*

查看当前版本

$ composer -V

升级版本

$ composer selfupdate

注意 selfupdate 升级命令会连接官方服务器,速度很慢。建议直接下载我们的 composer.phar 镜像,每天都会更新到最新。

致谢

Composer 中国全量镜像的 CDN 由国内领先 CDN 服务商「又拍云」提供,相信这次联合合作能给 Composer 镜像提供稳定、快速的 CDN 支持。

file

另外也在此特别感谢「优帆远扬」在项目开发中提供的技术支持。

file

扣丁禅师 :行住坐卧悟禅宗,禅堂禅师禅Coding

本帖已被设为精华帖!
本帖由 Summer 于 1年前 取消置顶
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 211

超快。好顶赞。

1个月前 评论

厉害的禅师,现在国内唯一可用的composer中国镜像!!! :speak_no_evil:

1个月前 评论
monanxiao

创建项目时 发生 file_put_contents(/home/vagrant/.composer/cache/repo/https---packagist.laravel-china.org/provider-laravel$framework.json): failed to open stream: Permission denied
https://packagist.laravel-china.org could not be fully loaded, package information was loaded from the local cache and may be out of date

2周前 评论

@monanxiao 这个错误是提示文件无写入权限。sudo rm -rf home/vagrant/.composer/cache ,再重新执行。注意执行用户对目录是否有写入权限

2周前 评论
monanxiao

@扣丁禅师 是的 解决了,谢谢

1周前 评论

@扣丁禅师 报错了:Failed, trying the next URL (502: The "https://dl.laravel-china.org/laravel/frame..." file could not be downloaded (HTTP/1.1 502 Bad Gateway))

5天前 评论
  • Installing laravel/framework (v5.8.17): Downloading (failed)
    Downloading (failed)
    Downloading (failed)
    Failed, trying the next URL (502: The "https://dl.laravel-china.org/laravel/frame..." file could not be downloaded (HTTP/1.1 502 Bad Gateway))Loading from cache
5天前 评论

@chanjsq 我这边给第三方提下工单,有些文件上传失败

5天前 评论

@litongleo @chanjsq 已经解决。感谢反馈。

官方给查看 是因为同一文件,上传多次,但这不是composer层的逻辑,composer 本身业务逻辑是控制 20s 只能上传一个同名文件

file

所以估计是 upyun/php-sdk 的逻辑引起的,强制 uploadType 为BLOCK
$config->uploadType = 'BLOCK',目前貌似目前运行正常

5天前 评论

请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!

社区文档:

将托管在 packagist.org 和 github.com 的扩展包使用国内 CDN 加速
GitHub Laravel 扩展包 TOP 250
速查表方便快速查询框架功能,支持手机访问,支持中英文版本
Laravel 中文文档,由社区用户翻译和维护,将会保持一直更新
此文档的目的,就是为了提高技术团队的凝聚力、一致性和生产效率。
开发环境的部署,开发者工具的选择,适用于 Mac 和 Windows。
浓缩过后的精华
Laravel Nova 后台管理面板文档的中文翻译
Lumen 中文文档,由社区用户翻译和维护,将会保持一直更新
Laravel 下知名扩展包 Dingo API 的中文文档,Laravel API 开发必知必会