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" }说明:
运行以下命令生成静态仓库:
Viggle AI Video
Powerful AI-powered animation tool and image-to-video AI generator.
115
查看详情
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中文网其它相关文章!
# 用它
# 龙岗网站建设制作推广
# 安庆seo搜索优化
# 北京正规网站定制推广
# seo推广手段有哪些
# 驿城区网络营销推广团队
# 法语自学网站建设管理
# 合肥网站优化哪家强
# 山西关键词排名推荐
# 乳山百度关键词排名优化
# 淘宝网店免费推广网站
# 访问控制
# 端到
# 创建一个
# 你在
# 你可以
# php
# 配置文件
# 如何解决
# 是一个
# AI-powered
# cur
# ssl
# 工具
# nginx
# github
# apache
# composer
# json
# git
# js
# html
相关栏目:
【
Google疑问12 】
【
Facebook疑问10 】
【
优化推广96088 】
【
技术知识133117 】
【
IDC资讯59369 】
【
网络运营7196 】
【
IT资讯61894 】
相关推荐:
解决Flex容器横向滚动内容截断与偏移问题
CSS过渡如何实现按钮悬停效果_transition属性控制背景颜色变化
苹果电脑如何快速截图并编辑 苹果电脑截屏标注快捷操作
优化 WooCommerce 产品价格显示与自定义短代码集成
拷贝漫画2025网页版入口 拷贝漫画官网免费看全集
192.168.1.1路由器后台入口 192.168.1.1默认登录入口
蛙漫2(台版)正版官网 2025免费网页版分享
电脑桌面图标怎么变大变小_Windows个性化设置第一课【新手入门】
京东快递物流信息不更新怎么办_物流停滞原因与处理方法
PPT页面尺寸怎么修改 PPT自定义幻灯片大小与方向设置【教程】
漫蛙manwa2网页版书签同步链接_漫蛙manwa多设备登录入口
抖音如何解除|直播|权限绑定_抖音关闭并解绑|直播|功能的方法
J*aScript实现下拉菜单驱动的动态表格数据展示
iPhone 13 Pro Max如何设置桌面小组件_iPhone 13 Pro Max小组件添加指南
哔哩哔哩在线观看入口 B站官网免费进入
晨报|开发商暗示《空洞骑士:丝之歌》DLC开发中 《合金装备4》有望重制
《美篇》取消会员自动续费方法
J*aScript与HTML元素交互:图片点击事件与链接处理教程
《洛克王国:世界》国家队搭配攻略
宝妈做视频号该写什么标签话题?宝妈关注的话题有哪些?
《tt语音》超级玩家开通方法
C#解析并修改XML后保存 如何确保格式与编码的正确性
Firefox OS应用开发:解决XMLHttpRequest跨域请求阻塞问题
sublime如何撤销关闭的标签页_sublime重新打开已关闭文件技巧
Lar*el 中高效执行多列更新:单次查询实现
mysql如何回滚事务_mysql ROLLBACK事务回滚方法
谷歌浏览器如何查找和删除恶意软件 谷歌浏览器内置安全清理工具使用教程
空腹吃苹果好吗 苹果空腹摄入指南
在Flask应用中安全高效地更新SQLAlchemy用户数据
折叠屏手机充不进电是什么问题? 特殊结构带来的维修难点
如何在CSS中设置背景图像:一个全面指南
Bootstrap 5导航栏折叠功能失效:数据属性迁移指南
PHP与SQL实践:高效实现数据复制与特定列值修改
J*aScript调试技巧_性能分析与内存快照
edge浏览器怎么修改语言为中文_Edge界面语言切换教程
如何在CSS中使用过渡制作按钮边框渐变_border-color transition实现
《异星探险家》古怪的物品作用介绍
WooCommerce 购物车:始终显示所有交叉销售商品
Magento 2 产品保存事件中安全更新属性的最佳实践
windows10怎么更改下载路径_windows10默认存储位置修改教程
《糖豆》添加舞曲方法
泰拉瑞亚网页版在线登录入口 泰拉瑞亚官方正版入口
汽水音乐车机版 汽水音乐车机版官方入口
《雅迪智行》用手机开锁方法
如何查询个人病历记录
抖音如何进行蓝V认证 抖音企业号申请所需资料与流程
使用CSS :has() 选择器实现父元素样式控制:从子元素反向应用样式
Cassandra中复合主键、二级索引与ORDER BY排序的限制与解决方案
《i莞家》修改昵称方法
胃动力不足?试试这5个调理方法
2025-11-29
运城市盐湖区信雨科技有限公司是一家深耕海外推广领域十年的专业服务商,作为谷歌推广与Facebook广告全球合作伙伴,聚焦外贸企业出海痛点,以数字化营销为核心,提供一站式海外营销解决方案。公司凭借十年行业沉淀与平台官方资源加持,打破传统外贸获客壁垒,助力企业高效开拓全球市场,成为中小企业出海的可靠合作伙伴。