为了服务 PHP 开发者,2019年7月,阿里云提供了 Composer 镜像服务: https://developer.aliyun.com/composer,其秒级同步、快速访问的能力得到了广大 PHP 开发者的一致好评。
目前,阿里云 Composer 日均使用 200W,为了不断优化和提升 Composer 镜像的能力,更好地服务 PHP 开发者,阿里云决定开源镜像同步系统!欢迎广大网友体验和参与开发,提交PR。一起让 PHP 社区更加繁荣!
话不多说,接下来教大家如何搭建自己的 Composer 镜像。
第 1 步
- 首先,你需要在阿里云上开通一个 OSS Bucket,用于存储镜像文件。建议选择和服务器最近的Endpoint。点击此处进入OSS控制台:https://oss.console.aliyun.com/overview
- 其次,你需要一个存储空间不低于 4G 的 Redis,用于存储任务和队列。
- 最后,确保安装了 Golang 环境,版本大于 1.11。
第 2 步
定制你的配置文件。下载阿里云 Composer 镜像代码,https://github.com/aliyun/packagist-mirror。在项目的根目录新建文件 packagist.yml,并写入如下配置:
REDIS_ADDR: "地址:端口"
REDIS_PASSWORD: "密码"
REDIS_DB: 0
OSS_ACCESS_KEY_ID: "OSS
AccessKeyID"
OSS_ACCESS_KEY_SECRET: "OSS AccessKeySecret"
OSS_ENDPOINT: "OSS Endpoint,如:oss-cn-hangzhou.aliyuncs.com"
OSS_BUCKET: "Bucket 名"
GITHUB_TOKEN: "Github Token,如:6a023b828b17*****0ab5tgj6ddb3f0ccb3d30e0"
DATA_URL: "同步源地址,如:[https://mirrors.aliyun.com/composer/"](https://mirrors.aliyun.com/composer/%22)
MIRROR_URL: "镜像网址,如:[https://developer.aliyun.com/composer/"](https://developer.aliyun.com/composer/%22)
DIST_URL: "ZIP包下载地址,如:[https://mirrors.aliyun.com/composer/dists/"](https://mirrors.aliyun.com/composer/dists/%22)
PROVIDER_URL: "Provider 前缀”
主要配置详解
OSS_ACCESS_KEY_ID
可以向 Bucket 写入文件的 Access Key,为了云上资源的安全,强烈建议新建一个专用的子账号,账户的权限配置最小化。点击此处进入阿里云RAM控制台:https://ram.console.aliyun.com/users
GITHUB_TOKEN
大部分依赖包的zip文件被托管在 Github 上,系统需要从 Github 上读取到数据再上传到 OSS 上,如果没有 token 请求 Github 会被限制。点击此处生成新 token 地址:https://github.com/settings/tokens/new。
DATA_URL
从哪里读取 Meta 数据,亚太地区建议使用阿里云源:https://mirrors.aliyun.com/composer/。亚太地区以外使用:https://repo.packagist.org/
MIRROR_URL
你的镜像地址,即你对外提供服务的地址,如果有配置 CDN ,建议是 CDN 的地址,系统会自动请求资源预热。
PROVIDER_URL
你的 providers 文件路径前缀,正常情况下根目录,也存在代理到子目录的配置。
DIST_URL
你的代码包下载地址前缀,会被写入根文件,Composer 客户端会根据这个地址下载 Dist 包。
第 3 步
编译并运行!
go build
./packagist-mirror
注意:
- 推荐使用进程管理工具 supervisor 监听进程,配置文件位于
supervisor/supervisord.conf
- 如果对公网提供服务,推荐 OSS Bucket 启用 CDN 缓存功能,可以减少流量,控制成本。
钉钉群
钉钉群号:23178217
“ 阿里巴巴开源镜像站 提供全面,高效和稳定的系统镜像、应用软件下载、域名解析和时间同步服务。”