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 】
相关推荐:
Linux如何自动分析系统异常日志_Linux日志智能检测
银信通自动开通原因揭秘
大众点评了却看不到是怎么回事
附近酒吧怎么找?
《偃武》甘宁技能详解
菜鸟裹裹怎样获得取件码_菜鸟裹裹获得取件码步骤
sublime如何配置PHP开发环境_在sublime中运行与调试PHP代码
LocoySpider如何批量采集电商商品_LocoySpider电商采集的模板应用
创建快捷方式启动系统保护
抖音小程序怎么开通?小程序开通条件是什么?
顺丰快递在线查询系统 顺丰快递官方查单入口
GBA模拟器手柄按键设置
掌握CSS :has() 选择器:父选择器、嵌套限制与常见陷阱解析
怎样设置开机后自动运行某个程序_Windows启动文件夹与任务计划【自动化】
抖音号显示企业机构号是什么意思?企业机构号申请条件是什么?
Win11如何分屏操作_Win11多窗口分屏技巧
如何修改Windows截图的默认保存位置_告别C盘让桌面更整洁【教程】
漫蛙manwa官网浏览入口_漫蛙漫画网页版访问链接
行者app怎样导出日志
Win10通知横幅停留时间修改 Win10自定义通知显示时长【技巧】
圆通快递官网入口查询单号 手机版官方查询入口
c++20的指定初始化(Designated Initializers)怎么用_c++ C风格结构体初始化
鲨鱼剧场app金币获取方法
漫蛙manwa漫画官网链接_漫蛙manwa最新可用网址推荐
创建您的便携版VS Code:让配置随身携带
荣耀盒子应用管理技巧
Excel如何快速合并单元格内容_Excel文本合并与函数操作技巧
《幻兽帕鲁》手游帕鲁捕捉技巧分享
TikTok视频播放中断怎么办 TikTok播放异常修复方法
《原神》月之一版本新增书籍一览
如何在mysql中设计餐饮点餐系统_mysql点餐系统项目实战
《随手记》启用语音备注方法
《淘票票》添加到苹果钱包教程
mysql如何回滚事务_mysql ROLLBACK事务回滚方法
CSS过渡如何实现按钮悬停效果_transition属性控制背景颜色变化
Word如何将文字快速转成表格 Word文本转换成表格功能使用技巧【效率】
优化 React onClick 事件处理:函数引用与箭头函数的对比
iPhone17Pro如何连接蓝牙耳机_iPhone17Pro蓝牙设备配对与连接方法介绍
小红书网页版怎么进 小红书网页版通用入口
Dash应用多值文本输入处理与类型转换教程
优化2xN网格最大路径和的动态规划算法实践
三星A55应用闪退排查步骤_Samsung A55稳定性优化技巧
《虎扑》取消评分记录方法
抖音号升级成企业资质怎么弄?有什么好处?
b站怎么用微信登录_b站微信登录方法
12306APP选座怎么选充电位置_12306APP带充电插座座位选择方法与技巧
智云Q3和Q2有什么升级_智云Q3与Q2手持云台功能与性能对比分析
《磁力猫》最好用的磁官网
C++如何实现单例模式_C++线程安全的单例模式写法
解决Go encoding/json 将JSON大数字解析为浮点数的问题
2025-11-29
运城市盐湖区信雨科技有限公司是一家深耕海外推广领域十年的专业服务商,作为谷歌推广与Facebook广告全球合作伙伴,聚焦外贸企业出海痛点,以数字化营销为核心,提供一站式海外营销解决方案。公司凭借十年行业沉淀与平台官方资源加持,打破传统外贸获客壁垒,助力企业高效开拓全球市场,成为中小企业出海的可靠合作伙伴。