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

最近社区有人反馈 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 国内镜像服务。

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

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

5年前 评论

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

5年前 评论

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

5年前 评论

禅师我爱你 :heart:

5年前 评论
monkey

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

5年前 评论

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

5年前 评论

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

5年前 评论
chongyi

@hiword 博客:私有 Composer 镜像和仓库的实现 我的一个粗暴思路。

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

5年前 评论

此处需要一个感谢

5年前 评论

方便大家 👍

5年前 评论

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

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

5年前 评论
阿麦

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

5年前 评论

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

5年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!