配置Artifactory为Composer远程仓库需先创建指向packagist.org的远程仓库(如composer-remote),再可选创建本地仓库(如composer-local)托管私有包;接着在composer.json中禁用默认源并添加Artifactory为镜像源,格式为"type": "composer", "url": "https://your-artifactory-domain/artifactory/composer-remote",同时设置"packagist.org": false;最后通过composer config添加仓库和认证信息,并使用composer publish或UI/API发布私有包,确保团队和CI/CD环境均配置一致认证以保障访问。

要将JFrog Artifactory配置为PHP Composer的远程仓库,核心是让Composer在安装依赖时从Artifactory拉取包,而不是直接访问packagist.org或其它公共源。通过这种方式,你可以缓存公共包、托管私有包,并统一管理依赖,提升安全性和构建稳定性。
1. 在Artifactory中创建Composer远程仓库
登录Artifactory后,先设置一个指向 packagist.org 的远程仓库,用于代理和缓存公开的PHP包。
- 进入 Repositories → Repositories 页面
- 点击 Add → Remote Repository
- 选择类型为 Composer
- 命名仓库(如:
composer-remote) - 设置远程URL为:
https://packagist.org - 保存配置
此后,Artifactory会通过该远程仓库缓存从 packagist.org 下载的包,类似镜像功能。
2. (可选)创建本地仓库托管私有PHP包
如果你需要发布私有PHP库,需创建一个本地Composer仓库:
立即学习“PHP免费学习笔记(深入)”;
- 添加新仓库,选择 Local Repository
- 包类型选择 Composer
- 命名(如:
composer-local) - 启用“Allow Anonymous Access”(按需),否则需认证上传
- 保存
这个仓库将用于存放你自己的私有Composer包。
3. 配置Composer使用Artifactory作为镜像源
修改项目的 composer.json 文件,将默认的 packagist 源禁用,并添加Artifactory的远程仓库作为替代:
{
"repositories": [
{
"type": "composer",
"url": "https://your-artifactory-domain/artifactory/composer-remote"
},
{
"packagist.org": false
}
]
}
说明:
-
packagist.org": false明确关闭默认源,强制走Artifactory -
url应替换为你的Artifactory实例地址和远程仓库名称
执行 composer install 或 composer require 时,所有包都会通过Artifactory下载,首次会缓存,后续更快。
4. 发布私有包到Artifactory
要将自定义PHP包推送到Artifactory的本地仓库,需配置认证并使用 composer config 添加仓库。
- 在项目根目录运行:
composer config repositories.composer-local composer https://your-artifactory-domain/artifactory/composer-local
- 配置认证(推荐使用API Key或Access Token):
composer config http-basic.your-artifactory-domain your-username your-api-key
- 确保你的
composer.json中包含正确的name、version等信息 - 运行发布命令:
composer publish
或使用Artifactory提供的UI/API上传 .zip 或 .tar 包。
之后其他项目只要配置了相同的仓库源,就能通过 composer require vendor/package-name 安装你的私有包。
基本上就这些。配置完成后,团队所有成员都应使用统一的仓库源,确保依赖一致。不复杂但容易忽略的是权限和认证设置,务必保证CI/CD环境也能正常访问。











