為了服務 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/usersGITHUB_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

“ 阿裡巴巴開源鏡像站 提供全面,高效和穩定的系統鏡像、應用軟體下載下傳、域名解析和時間同步服務。”