Satis 是一个轻量级私有 PHP 包仓库生成器,由 Composer 团队开发,通过 satis.json 配置文件抓取指定包(支持私有 Git 等源),生成静态 composer.json 和网页用于内部依赖管理;适合团队安全分发私有包,无需复杂服务,结合 HTTPS 与访问控制可高效运行。

Satis 是一个由 Composer 团队开发的静态包仓库生成器,它可以帮你创建一个私有的 PHP 包仓库。你不需要运行复杂的数据库或服务,Satis 会根据你的配置文件(通常是 satis.json)抓取指定的 Composer 包(可以是私有 Git 仓库、公开包或镜像),然后生成一个静态的 composer.json 文件和相关网页,供你在公司内部或其他私有环境中使用。
当你在团队或企业中开发多个私有 PHP 包时,不想把它们发布到公共的 Packagist 上,但又希望用 Composer 来统一管理依赖,这时 Satis 就非常有用。你可以通过私有仓库安全地分发这些包,并控制谁可以访问。
Satis 是一个命令行工具,可以通过 PHAR 或 Composer 全局安装:
确保你的 Composer 全局 bin 目录在系统 PATH 中,这样可以直接运行 satis 命令。
在项目根目录创建一个 satis.json 文件,定义你的仓库设置和要包含的包:
{ "name": "My Private Composer Repository", "homepage": "https://packages.example.com", "repositories": [ { "type": "vcs", "url": "git@github.com:mycompany/package-one.git" }, { "type": "vcs", "url": "https://github.com/mycompany/package-two" }, { "type": "package", "package": { "name": "vendor/existing-package", "version": "1.0.0", "dist": { "url": "https://example.com/dist/existing-package-1.0.0.tgz", "type": "tar" } }} ], "require-all": true, "output-dir": "web" }说明:
运行以下命令生成静态仓库:
satis build satis.json ./web这会拉取你配置中的所有包信息,并生成一个 web/composer.json 文件,以及一个可选的 HTML 页面用于浏览。
将输出目录(如 web/)部署到一个可通过 HTTPS 访问的 Web 服务器上(比如 Nginx 或 Apache)。假设你的域名是 packages.example.com,用户就可以通过这个地址访问仓库。
在你的 PHP 项目中,修改 composer.json,添加你的私有仓库:
{ "repositories": [ { "type": "composer", "url": "https://packages.example.com" } ], "require": { "mycompany/package-one": "^1.0" } }执行 composer install 时,Composer 会优先从你的私有仓库查找包。
你可以设置定时任务(如 cron)定期重新运行 satis build,以同步最新代码提交或标签:
0 * * * * /usr/local/bin/satis build /path/to/satis.json /path/to/web基本上就这些。Satis 轻量、稳定,适合中小型团队搭建私有包管理平台。只要配置好 Git 权限和 Web 访问控制,就能安全高效地管理私有 PHP 包。不复杂但容易忽略细节,比如权限和 HTTPS。
以上就是什么是Satis,如何用它搭建一个私有的composer仓库?的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号