首先在composer.json中添加私有仓库地址,类型为composer;然后通过auth.json配置http基本认证或API令牌,确保域名匹配;最后使用composer require安装私有包,需保证ssl证书有效、Satis索引可访问且git标签正确。

要在 Composer 中使用私有的 Packagist 或 Satis 服务器,关键是正确配置项目的 composer.json 文件,让 Composer 知道从哪里下载私有包。以下是具体操作方法。
配置私有仓库源
在项目的 composer.json 文件中添加 repositories 字段,指向你的私有服务器地址。支持的类型包括 composer(用于 Packagist 兼容服务)和 vcs(用于 Git 仓库),但 Satis 和私有 Packagist 通常使用 composer 类型。
示例:
{ "repositories": [ { "type": "composer", "url": "https://packages.your-company.com" } ] }
配置后,Composer 会优先从该地址查找包信息。
处理认证问题
私有服务器通常需要身份验证。Composer 支持通过 HTTP Basic Auth 或 API Token 进行认证。
推荐将凭证保存在本地的 auth.json 文件中(位于项目根目录或全局 Composer 配置目录),避免泄露到版本控制中。
在项目根目录创建 auth.json:
{ "http-basic": { "packages.your-company.com": { "username": "your-username", "password": "your-token-or-password" } } }
注意:域名必须与仓库 URL 中的主机名完全一致。
安装私有包
一旦仓库和认证配置完成,就可以像使用公共包一样 require 私有包:
composer require vendor/private-package:~1.0
Composer 会自动从你配置的私有源拉取元数据并下载对应的压缩包或通过 Git 安装(取决于 Satis 如何构建索引)。
注意事项
- 确保私有服务器的 SSL 证书有效,若使用自签名证书,可设置 config.disable-tls 或添加可信 CA。
- Satis 生成的 packages.json 必须可通过 HTTP 访问,且 URL 正确。
- 运行 satis build 后要确保 web 服务器能提供静态文件服务。
- 私有包的版本标签(如 v1.0.0)必须存在于 Git 仓库中,否则无法被正确识别。
基本上就这些。只要仓库地址、认证和包元数据都正确,Composer 能无缝集成私有源。不复杂但容易忽略细节,比如 auth.json 的域名拼写或 packages.json 的路径。