新闻中心
如何在本地搭建一个极简的Composer仓库服务器_使用Satis或Toran Proxy进行快速本地镜像
Satis可快速搭建轻量级本地Composer镜像服务器,通过PHP和Nginx部署,生成静态文件供内网共享,支持私有包与归档加速,适合中小型团队使用。

在企业内网或开发团队中,为了提升依赖下载速度、避免外部网络中断影响构建流程,或者出于安全合规考虑,搭建一个本地的 Composer 仓库镜像非常实用。Satis 和 Toran Proxy 是两种常见方案,前者轻量静态,后者功能更全但已停止维护。下面介绍如何用 Satis 快速搭建一个极简本地 Composer 镜像服务器。
选择 Satis:轻量、静态、易于部署
Satis 是官方推荐的“静态包列表生成器”,它会根据配置抓取指定的 Composer 包,并生成一个可被 Composer 客户端识别的 packages.json 文件,配合 Web 服务器即可对外提供服务。
核心优势:
- 部署简单,仅需 PHP 环境和 Web 服务(如 Nginx)
- 生成静态文件,适合 CDN 或内
网共享 - 支持私有包和 GitHub 私有仓库(通过 OAuth Token)
- 资源占用低,适合小到中型团队使用
步骤一:安装 Satis
确保系统已安装 PHP 和 Composer。
composer create-project composer/satis --no-interaction执行后会在当前目录生成 satis 文件夹,包含所有运行所需文件。
步骤二:配置 satis.json
在 satis 目录下创建或修改 satis.json,定义你要镜像的包:
{ "name": "My Private Composer Repository", "homepage": "http://satis.local", "repositories": [ { "type": "vcs", "url": "https://github.com/your-company/your-private-lib" }, { "type": "composer", "url": "https://packagist.org" } ], "require-all": true, "archive": { "directory": "dist", "format": "tar", "skip-dev": true } }关键字段说明:
- repositories:列出你要抓取的源,可以是 Git 地址或其它 Composer 源
- require-all:自动包含 packagist.org 上所有公开包(谨慎使用,可改为 require 列表限定)
- archive:启用归档功能,将包打包成 tar 放入 dist 目录,加快客户端安装速度
如果只同步特定包,建议使用 require 明确列出:
"require": { "monolog/monolog": "^2.0", "guzzlehttp/guzzle": "^7.0" }步骤三:生成静态仓库
运行 build 命令生成文件:
TTSMaker
TTSMaker是一个免费的文本转语音工具,提供语音生成服务,支持多种语言。
2275
查看详情
php bin/satis build satis.json web/
这会把生成的 index.html 和 packages.json 输出到 web/ 目录,同时下载并归档指定包到 web/dist/。
步骤四:配置 Web 服务器
以 Nginx 为例,配置虚拟主机指向 web/ 目录:
server { listen 80; server_name satis.local; root /path/to/satis/web; index index.html; location / { try_files $uri $uri/ =404; } }重启 Nginx 后,访问 http://satis.local 应能看到仓库首页。
步骤五:在项目中使用本地仓库
在你的 PHP 项目 composer.json 中添加仓库配置:
{ "repositories": [ { "type": "composer", "url": "http://satis.local" } ], "require": { "monolog/monolog": "^2.0" } }执行 composer install 时,Composer 会优先从本地仓库拉取信息和包文件,显著提升安装速度。
Toran Proxy 简要说明(已归档)
Toran Proxy 曾是带缓存和 Web 界面的代理方案,支持同步 Packagist 并管理私有包,但它已于 2018 年停止维护。虽然仍可运行,但不推荐用于新项目。Satis 加反向代理(如 Nginx 缓存)已能满足大多数本地镜像需求。
基本上就这些。Satis 虽然功能朴素,但足够稳定高效,适合快速搭建一个可靠的本地 Composer 源。定期通过 cron 自动运行 build 命令,还能实现增量更新。
以上就是如何在本地搭建一个极简的Composer仓库服务器_使用Satis或Toran Proxy进行快速本地镜像的详细内容,更多请关注php中文网其它相关文章!
# 如何解决
# 河北区网站营销推广工作
# seo关键词排名推选火星7
# 荔湾品牌整合营销推广
# 肇庆网站建设官网招聘
# 徐州丰县网站建设哪家强
# 网络推广智能营销
# 精通seo搜索优化
# 网站建设推广小王
# 企业网站优化内容有哪些
# 咸宁seo公司推荐18火星
# 病毒扫描
# 是一个
# 客户端
# 回调
# 如何在
# satis
# 你要
# 内网
# 如何使用
# 镜像
# 本
# cdn
# proxy
# nginx
# github
# composer
# json
# git
# js
# html
# php
相关栏目:
【
科技资讯46185 】
【
网络学院92790 】
相关推荐:
vivo云服务网页版登录 怎么登录vivo云服务网页版
163邮箱登录密码 163邮箱忘记密码找回
抖音网页版企业服务中心登录入口_抖音网页版企业登录平台
苹果手机指南针不准怎么校准 传感器校准方法详解【建议收藏】
如何高效处理PHP中的Excel数据导入导出?PortPHP/Spreadsheet助你轻松搞定!
steam官方网页快速访问 steam账号注册全流程
Golang如何使用net/url解析URL_Golang URL解析与处理方法
Excel函数批量查找替换超快方法_Excel用REPLACE和FIND函数秒级替换
LocoySpider如何部署到云服务器_LocoySpider云部署的远程配置
Win10怎么设置静态IP地址 Win10手动配置IP地址步骤【指南】
如何设置Windows Defender的定时扫描_计划任务实现自动杀毒【安全】
顺丰快递查询系统 官方正版查询入口
CSS布局:解决全屏元素100%尺寸与外边距导致的页面溢出问题
漫蛙网页登录入口 漫蛙漫画官方授权网址
NetBeans Ant项目:自动化将资源文件复制到dist目录的教程
新手怎么开始学化妆 零基础化妆入门教程
Win11怎么用U盘重装系统 Win11制作启动盘并重装系统完整教程【详解】
C#使用XPath查询节点时出错? 常见语法错误与调试技巧
双系统安装时,如何设置默认启动系统? msconfig命令了解一下!
单12V-2×6实现为RTX 5090供电750W!甚至都没敢跑分
如何修改开机登录密码_Windows账户安全设置超详细教程【必学】
解决 Express.js 中 PUT 请求密码修改失败的路由配置指南
Excel文件在线转换快速入口 Excel在线格式转换网站
58动漫网在线官方网 58动漫网正版动漫入口网址
c++如何使用折叠表达式(Fold Expressions)_c++17可变参数模板新技巧
夸克浏览器桌面版同步不了书签怎么处理 夸克浏览器跨设备同步异常解决方案
sublime如何优雅地处理行尾空格_sublime自动清理多余空白字符配置
Spyder启动失败:字体文件权限拒绝错误解决方案
Win11如何开启讲述人功能 Win11屏幕阅读器(讲述人)开启与关闭【教程】
mysql备份恢复性能优化_mysql备份恢复性能优化方法
2306选座时如何选靠窗位置_12306选座靠窗座位查看方法解析
知音漫客官网漫画下载_知音漫客网页版阅读记录
Go语言中高效处理x-www-form-urlencoded表单数据
sublime如何配置Python开发环境_将sublime打造成轻量级Python IDE
谷歌浏览器最新官方入口链接 谷歌浏览器网页版官网导航
小米汽车11月交付量突破40000台!雷军:将继续努力
微信聊天记录怎么加密_微信聊天记录加密方法
微信网页版登录教程_微信网页版登录入口在哪
抖音未来赚钱的新趋势 2025年值得关注的变现风口分析
构建轻量级网站内部消息系统:Formspree 集成指南
处理嵌套交互式控件:前端可访问性指南
QQ邮箱正确登录入口_QQ邮箱官方网站使用地址
顺丰快件物流信息 官方网站查询入口
“音游” × “怪文书” 题材的节奏冒险游戏 《晕晕电波症候群》确定于2026年4月发售!
在J*a中如何使用Stream.map转换元素_Stream映射操作解析
Python中如何避免重复条件判断:利用数据结构实现动态逻辑
PyTorch模型训练准确率不提升:诊断与修复常见指标计算错误
qq邮箱发邮件给国外发不出去_QQ邮箱国际邮件发送失败原因与解决
Golang如何处理RPC请求负载均衡_Golang RPC请求负载均衡策略与实践
精准捕获:如何在页面中监听除特定元素外的所有点击事件


2025-12-02
浏览次数:次
返回列表
网共享