什么是Satis,如何用它搭建一个私有的composer仓库?


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

什么是satis,如何用它搭建一个私有的composer仓库?

Satis 是一个由 Composer 团队开发的静态包仓库生成器,它可以帮你创建一个私有的 PHP 包仓库。你不需要运行复杂的数据库或服务,Satis 会根据你的配置文件(通常是 satis.json)抓取指定的 Composer 包(可以是私有 Git 仓库、公开包或镜像),然后生成一个静态的 composer.json 文件和相关网页,供你在公司内部或其他私有环境中使用。

为什么使用 Satis?

当你在团队或企业中开发多个私有 PHP 包时,不想把它们发布到公共的 Packagist 上,但又希望用 Composer 来统一管理依赖,这时 Satis 就非常有用。你可以通过私有仓库安全地分发这些包,并控制谁可以访问。

安装 Satis

Satis 是一个命令行工具,可以通过 PHAR 或 Composer 全局安装:

  • 推荐方式:使用 Composer 全局安装
composer global require composer/satis

确保你的 Composer 全局 bin 目录在系统 PATH 中,这样可以直接运行 satis 命令。

  • 或下载 PHAR 文件
curl -sSL https://getcomposer.org/download/latest-stable/satis.phar -o satis.phar

配置 satis.json

在项目根目录创建一个 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" }

说明:

  • name / homepage:仓库名称和访问地址
  • repositories:列出你要抓取的包源,支持 Git、SVN、Mercurial 等 VCS 类型,也支持直接打包
  • require-all:自动包含所有版本(按标签)
  • 你也可以用 "require" 字段精确控制哪些包和版本被包含,例如:
    "require": {
    "mycompany/package-one": "^2.0"
    }
  • output-dir:生成的静态文件存放路径

生成仓库

运行以下命令生成静态仓库:

Viggle AI Video Viggle AI Video

Powerful AI-powered animation tool and image-to-video AI generator.

Viggle AI Video 115 查看详情 Viggle AI Video 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 会优先从你的私有仓库查找包。

安全建议

  • 使用 HTTPS 防止中间人攻击
  • 配合 HTTP Basic Auth 或 IP 白名单限制访问
  • 私有 Git 仓库应配置 SSH 密钥或令牌进行认证,Composer 会使用系统的 Git 凭据

自动化更新

你可以设置定时任务(如 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

了解您产品搜索量及市场趋势,制定营销计划

同行竞争及网站分析保障您的广告效果

点击免费数据支持

提交您的需求,1小时内享受我们的专业解答。

运城市盐湖区信雨科技有限公司


运城市盐湖区信雨科技有限公司

运城市盐湖区信雨科技有限公司是一家深耕海外推广领域十年的专业服务商,作为谷歌推广与Facebook广告全球合作伙伴,聚焦外贸企业出海痛点,以数字化营销为核心,提供一站式海外营销解决方案。公司凭借十年行业沉淀与平台官方资源加持,打破传统外贸获客壁垒,助力企业高效开拓全球市场,成为中小企业出海的可靠合作伙伴。

 8156699

 13765294890

 8156699@qq.com

Notice

We and selected third parties use cookies or similar technologies for technical purposes and, with your consent, for other purposes as specified in the cookie policy.
You can consent to the use of such technologies by closing this notice, by interacting with any link or button outside of this notice or by continuing to browse otherwise.