搭建私有Composer源的核心目标是让内部PHP包能像公开包一样用composer require安装且不公开到Packagist;Satis是免费轻量的静态自托管方案,Private Packagist是付费全托管商业服务,选择取决于运维意愿、安全需求和团队规模。

搭建私有 Composer 源的核心目标是:让团队内部的 PHP 包能像安装 monolog/monolog 一样,用 composer require vendor/package 安装,且不公开到 Packagist.org。Satis 和 Private Packagist 是两种主流方案——前者是免费、轻量、静态生成的自托管方案;后者是付费、全托管、带 UI 和权限管理的商业服务。选哪个取决于你是否愿意运维、有没有敏感包、团队规模多大。
Satis 本质是一个“镜像生成器”:它读取你的 satis.json 配置,拉取指定 Git 仓库(支持 GitHub、GitLab、私有 Git),解析 composer.json,然后生成静态 JSON 和 HTML 页面,最后托管在 Nginx/Apache 上即可使用。
composer global require composer/satis(确保 ~/.composer/vendor/bin 在 $PATH 中)satis.json,例如:
{
"name": "my-company/private-packages",
"homepage": "https://packages.my-company.com",
"repositories": [
{ "type": "vcs", "url": "https://gitlab.my-company.com/php/my-lib" },
{ "type": "vcs", "url": "https://github.com/my-company/legacy-tool" }
],
"require-all": true,
"archive": {
"directory": "dist",
"format": "tar",
"skip-dev": true
}
}satis build satis.json web/(web/ 是输出目录)web/ 放到 Web 服务器根目录(如 Nginx 的 root /var/www/packages),确保能访问 https://packages.my-company.com/packages.json
composer config repositories.my-private type composercomposer config repositories.my-private url https://packages.my-company.com
如果你不想碰服务器、需要细粒度权限(比如只让前端组访问某个包)、要审计日志、或希望自动同步 GitHub/GitLab 私有仓库,Private Packagist 是更省心的选择。它不是自己部署的软件,而是注册账号后接入已有 Git 平台的 SaaS 服务。
composer.json 中的 name(如 my-company/utils)索引包composer config repositories.private-packagist composer https://repo.packagist.com/my-company/composer config http-basic.repo.packagist.com _token YOUR_API_TOKEN
无论选哪种方案,这几个点直接影响能否顺利安装:
"name" 字段(如 acme/logger)不能和 Packagist.org 上已存在的同名包冲突,建议统一用公司/组织名作为 vendor 前缀v1.0.0)的版本;Private Packagist 同样依赖 tag 或分支别名(如 "dev-main as 2.0.x-dev")来识别版本auth.json 或 composer config
composer.json 中 "autoload" 必须正确(如 PSR-4 映射),否则即使安装成功也无法自动加载类基本上就这些。Satis 适合小团队、CI 流程简单、追求零成本的场景;Private Packagist 适合中大型团队、重视安全与协作、愿为省时付费的情况。两者都能让你彻底摆脱“拷贝 vendor 文件”或“手动 git clone”的原始做法。
以上就是如何使用 Satis 或 Private Packagist 搭建自己的 Composer 私有源?的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号