為了服務 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
“ 阿里巴巴開源鏡像站 提供全面,高效和穩定的系統鏡像、應用軟件下載、域名解析和時間同步服務。”