COMPOSER_AUTH环境变量用于在无交互环境中安全配置私有仓库认证,支持http-basic、github-oauth、gitlab-token等类型,其值为JSON字符串,优先级高于auth.json,需确保格式正确并通过密钥管理工具注入敏感信息。

Composer 的 COMPOSER_AUTH 环境变量用于在无交互环境下(如 CI/CD 流水线、部署脚本)安全地配置私有仓库的认证信息,比如访问私有的 Packagist 服务器、GitHub 或 GitLab 的私有包。它避免了将凭据硬编码到 auth.json 文件中。
配置 COMPOSER_AUTH 环境变量
该变量的值是一个 JSON 字符串,包含不同类型仓库的认证方式,常见支持:
- http-basic:HTTP 基本身份验证(如私有 Packagist)
- github-oauth:GitHub OAuth Token
- gitlab-token:GitLab Personal Access Token
- bitbucket-oauth:Bitbucket OAuth(较少用)
示例值:
{"http-basic": {"repo.private.com": {"username": "user", "password": "pass"}}, "github-oauth": {"github.com": "your_github_token"}, "gitlab-token": {"gitlab.com": "your_gitlab_token"}}使用方式
你可以在运行 Composer 命令前通过环境变量传入:
在 Linux/macOS 中:
export COMPOSER_AUTH='{"http-basic": {"repo.private.com": {"username": "admin", "password": "12345"}}, "github-oauth": {"github.com": "ghp_abc123..."}}' composer install在 Windows CMD 中:
set COMPOSER_AUTH={"http-basic": {"repo.private.com": {"username": "admin", "password": "12345"}}} composer install在 Windows PowerShell 中:
$env:COMPOSER_AUTH='{"http-basic": {"repo.private.com": {"username": "admin", "password": "12345"}}}' composer install在 CI/CD 中(如 GitHub Actions):
env: COMPOSER_AUTH: '{"http-basic": {"repo.example.com": {"username": "ci", "password": "${{ secrets.REPO_PASS }}"}}}'注意事项
- 确保 JSON 格式正确,否则 Composer 会解析失败
- 敏感信息应通过密钥管理工具(如 CI 的 secrets)注入,不要明文写在脚本中
- 如果同时存在
auth.json和COMPOSER_AUTH,后者优先级更高 - 某些平台(如 Heroku)也支持直接设置该环境变量来启用私有包安装










