ZComposer 镜像发布 15 个月后的一些小总结
85

最近社区有人反馈 Composer 镜像的问题,结果看截图发现都是 phpcomposer 老大哥的这个镜像,其官网已发布暂停更新的维护说明。所以为了便于区分,我们的镜像命名为 ZComposer (取禅师网名 ZenCodex 首字母,也有中国的意思)

ZComposer 发布于 17年的 4月份,整个发展史和问题反馈,基本在 社区帖子 里有所见证,特别感谢 @Summer @Aufree @monkey @JobsLong @overtrue ,还有一些其他社区大牛,协助内部测试,反馈问题,帮助 Zcomposer 不断的迭代,变得更加完美。

4个月前,发布了第一次重构的代码,结果出现了一些不稳定,又换回了老版本。近1个月,我又更新了再次重构的代码,里面完善了对包的 hash 校验,打上线1个多月,0故障,比以前的老版本更加稳定,代码也更加简洁。

针对 ZComposer 15个月的成长变化,我做了一些总结,算是交了一次作业,回馈给使用 ZComposer 镜像的朋友们:

1、Composer 镜像 百度搜索排名第一了,发布初期连个影都搜不到\
file

2、新版上线后,目前还是 0 故障。当然遇到问题,我还会第一时间解决\
file

3、除了重构新代码,又丰富了一些小工具,比如清理云存储上的历史垃圾,时间久了和本地完全不同步了,zip包 由2.5T 减少到 910G。

4、ZComposer 诞生时候 大约是13万的包,目前增加到了20多万,115万的 版本zip包。

5、linux ext4 子目录最大数量为65000,目前增加的包已经超出了这个限制。虽然可以重新编译linux内核解决,或更换其他的文件驱动,但一般没这个条件。

我的解决方案是切割大目录,然后用软连接,通过测试,ls -sf 这种 soft link 形式不在计数范围内。phpcomposer 维护我猜测可能也是这个问题引起,但仅限猜测。如果有遇到这种目录数限制的,可以试试我这个方法。

『ZComposer 中国全量镜像』为 Laravel China 社区孵化,作为社区指定镜像,目前由 @扣丁禅师 维护,CDN 服务由 又拍云 提供,本项目为公益项目,旨在为广大 PHP 用户提供稳定和高速的 Composer 国内镜像服务。

禅师 :while (1) { simpler & faster; }

本帖已被设为精华帖!
本帖由 Summer 于 2个月前 取消置顶
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
讨论数量: 17

66666 励志

2个月前
leo

最好出一个首页比如 package.laravel-china.org,这样对 SEO 更友好一些

2个月前

给力...支持!

2个月前

:+1: :+1: :+1:

2个月前

之前在做Laravel教程(web开发实战进阶)的时候,无法下载包所以当时又换回phpcomposer了

2个月前

支持

2个月前
overtrue

禅师我爱你 :heart:

2个月前

感谢禅师对国内 Laravel 的贡献!

2个月前

感谢禅师,最近刚为这个事情苦恼

2个月前

@扣丁禅师 能请教下开发这个镜像的方法吗?对于这方面的思路接触很少

2个月前

@hiword https://laravel-china.org/articles/5940/implementation-of-private-composer-images-and-warehouses 我的一个粗暴思路。

虽然不适合这种流量,但是无论如何都是基于 Composer 仓库输出结构原理,具体可参考 Composer 官方文档,那里面有更详细的说明,构建一个私有仓库其实不难。

2个月前

此处需要一个感谢

2个月前
wujunze

方便大家 👍

2个月前

ext4 有个 dir_nlink 特性,可以支持多于 65k 子目录(hard links),我手边一个 3.10.0 内核的机器上是默认开启的。

另外好奇这个镜像背后的维护代码是否可以开放出来?

2个月前
GhostCoder

感谢大佬做出的贡献,同时好难受 ,全世界人民里少数要考虑这个问题的国家

2个月前

大佬,能经常分享下这方面的运维思路吗?好好奇哦

1个月前

  • 请注意单词拼写,以及中英文排版,参考此页
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`, 更多语法请见这里 Markdown 语法
  • 支持表情,使用方法请见 Emoji 自动补全来咯,可用的 Emoji 请见 :metal: :point_right: Emoji 列表 :star: :sparkles:
  • 上传图片, 支持拖拽和剪切板黏贴上传, 格式限制 - jpg, png, gif
  • 发布框支持本地存储功能,会在内容变更时保存,「提交」按钮点击时清空
  请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!