0

0

如何使用Satis或Private Packagist搭建自己的Composer镜像?(企业内网方案)

尼克

尼克

发布时间:2025-12-13 19:52:02

|

306人浏览过

|

来源于php中文网

原创

选Satis还是Private Packagist取决于团队规模与需求:中小团队、成本敏感、包少更新少→选开源轻量的Satis;中大型企业、需权限控制、审计、CI/CD集成→选商业版Private Packagist。

如何使用satis或private packagist搭建自己的composer镜像?(企业内网方案)

直接用 Satis 或 Private Packagist 搭建企业内网 Composer 镜像,核心目标就一个:让公司内部项目能稳定、快速、安全地安装和更新私有及公开的 PHP 包,不依赖外网 Composer 官方仓库(packagist.org)。

选 Satis 还是 Private Packagist?

Satis 是开源、轻量、纯静态生成的方案,适合中小团队或对成本敏感、包数量不多、更新频率不高、不需要实时同步的场景。它本质是生成一个本地 mirror 网站 + packages.json 文件,靠定时脚本拉取和重建。

Private Packagist 是商业服务(也支持私有部署),提供 Web 管理界面、实时同步、权限控制、审计日志、Webhook、自动扫描漏洞等功能,适合中大型企业、有合规要求、需要精细化管控的环境。

简单判断:要省钱、能接受手动/定时同步、运维愿意写点脚本 → 选 Satis;要省心、要权限分级、要审计、要和 CI/CD 深度集成 → 直接上 Private Packagist 私有版。

NatAgent
NatAgent

AI数据情报监测与分析平台

下载

用 Satis 搭建内网镜像(精简实操步骤)

假设你有一台内网 Linux 服务器(如 192.168.10.50),已装好 PHP 7.4+ 和 Git。

  • 全局安装 Satis:composer global require composer/satis(确保 ~/.composer/vendor/bin 在 PATH 中)
  • 新建配置文件 satis.json,例如:
{
  "name": "My Company Internal Mirror",
  "homepage": "https://packagist.internal",
  "repositories": [
    { "type": "composer", "url": "https://packagist.org" },
    { "type": "vcs", "url": "https://git.internal/company/package-a" },
    { "type": "vcs", "url": "https://git.internal/company/package-b" }
  ],
  "require-all": true,
  "archive": {
    "directory": "dist",
    "format": "tar",
    "skip-dev": true
  }
}
  • 运行构建:satis build satis.json web/,生成静态文件到 web/ 目录
  • 用 Nginx 或 Apache 托管 web/(根目录设为 web/,确保 packages.json 可通过 https://packagist.internal/packages.json 访问)
  • 在项目 composer.json 中配置:
"repositories": [
  { "type": "composer", "url": "https://packagist.internal" }
],
"minimum-stability": "stable",
"prefer-stable": true
  • 加个定时任务每天凌晨更新镜像:0 3 * * * /usr/bin/satis build /path/to/satis.json /path/to/web/ >> /var/log/satis-build.log 2>&1

Private Packagist 私有部署要点

它基于 Docker,官方提供一键部署脚本。关键动作包括:

  • 准备一台内存 ≥8GB、磁盘 ≥100GB 的内网服务器(推荐 Ubuntu 20.04+)
  • 申请私有部署许可证(官网购买后获取 license key)
  • 下载并运行部署脚本:curl -sS https://get.privatepackagist.com | bash,按提示填入 license、域名(如 packagist.internal)、管理员邮箱
  • 配置反向代理(Nginx/Apache)支持 HTTPS,证书可用内网 CA 或 Let’s Encrypt(若出口可控)
  • 首次登录后,添加源:可镜像 packagist.org 全量或按命名空间过滤(如 mycompany/*),也可直接添加公司 Git 仓库(支持 GitHub/GitLab/Bitbucket 自托管)
  • 创建组织、团队、用户,并分配包访问权限(比如 dev 团队只能读 public 包,security 组可审核所有包)

内网使用必须注意的几件事

  • HTTPS 强制启用:Composer 默认拒绝 HTTP 包源,内网也要配有效证书(哪怕自签,但需把 CA 加入服务器信任链)
  • DNS 或 hosts 统一解析:确保所有开发机和 CI 机器都能解析 packagist.internal 到镜像服务器 IP
  • 认证方式统一:Satis 无认证,靠网络隔离;Private Packagist 支持 API Token、OAuth、LDAP 同步,建议对接公司统一身份系统
  • 缓存清理策略:Satis 不自动清理旧 dist 包,需定期清理 web/dist/;Private Packagist 后台可设自动过期时间
  • Composer 全局配置(可选):在 CI 或基础镜像中运行 composer config -g repos.packagist.org false,彻底禁用官方源,避免误触发外网请求

基本上就这些。Satis 上手快但后期维护略费神;Private Packagist 前期部署稍重,但长期看省时省力还更稳。不复杂但容易忽略的是 HTTPS 和 DNS 这两环——只要它们通了,后面基本不会卡住。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
composer是什么插件
composer是什么插件

Composer是一个PHP的依赖管理工具,它可以帮助开发者在PHP项目中管理和安装依赖的库文件。Composer通过一个中央化的存储库来管理所有的依赖库文件,这个存储库包含了各种可用的依赖库的信息和版本信息。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

154

2023.12.25

nginx 重启
nginx 重启

nginx重启对于网站的运维来说是非常重要的,根据不同的需求,可以选择简单重启、平滑重启或定时重启等方式。本专题为大家提供nginx重启的相关的文章、下载、课程内容,供大家免费下载体验。

233

2023.07.27

nginx 配置详解
nginx 配置详解

Nginx的配置是指设置和调整Nginx服务器的行为和功能的过程。通过配置文件,可以定义虚拟主机、HTTP请求处理、反向代理、缓存和负载均衡等功能。Nginx的配置语法简洁而强大,允许管理员根据自己的需要进行灵活的调整。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

502

2023.08.04

nginx配置详解
nginx配置详解

NGINX与其他服务类似,因为它具有以特定格式编写的基于文本的配置文件。本专题为大家提供nginx配置相关的文章,大家可以免费学习。

500

2023.08.04

tomcat和nginx有哪些区别
tomcat和nginx有哪些区别

tomcat和nginx的区别:1、应用领域;2、性能;3、功能;4、配置;5、安全性;6、扩展性;7、部署复杂性;8、社区支持;9、成本;10、日志管理。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

234

2024.02.23

nginx报404怎么解决
nginx报404怎么解决

当访问 nginx 网页服务器时遇到 404 错误,表明服务器无法找到请求资源,可以通过以下步骤解决:1. 检查文件是否存在且路径正确;2. 检查文件权限并更改为 644 或 755;3. 检查 nginx 配置,确保根目录设置正确、没有冲突配置等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

341

2024.07.09

Nginx报404错误解决方法
Nginx报404错误解决方法

解决方法:只需要加上这段配置:try_files $uri $uri/ /index.html;即可。想了解更多Nginx的相关内容,可以阅读本专题下面的文章。

3518

2024.08.07

nginx部署php项目教程汇总
nginx部署php项目教程汇总

本专题整合了nginx部署php项目教程汇总,阅读专题下面的文章了解更多详细内容。

33

2026.01.13

C++ 设计模式与软件架构
C++ 设计模式与软件架构

本专题深入讲解 C++ 中的常见设计模式与架构优化,包括单例模式、工厂模式、观察者模式、策略模式、命令模式等,结合实际案例展示如何在 C++ 项目中应用这些模式提升代码可维护性与扩展性。通过案例分析,帮助开发者掌握 如何运用设计模式构建高质量的软件架构,提升系统的灵活性与可扩展性。

0

2026.01.30

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PHP课程
PHP课程

共137课时 | 10.2万人学习

JavaScript ES5基础线上课程教学
JavaScript ES5基础线上课程教学

共6课时 | 11.2万人学习

PHP新手语法线上课程教学
PHP新手语法线上课程教学

共13课时 | 0.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号