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

php中文网
发布: 2025-12-13 19:52:02
原创
304人浏览过
选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 私有版。

OpenAI Codex
OpenAI Codex

可以生成十多种编程语言的工作代码,基于 OpenAI GPT-3 的自然语言处理模型

OpenAI Codex 144
查看详情 OpenAI Codex

用 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 这两环——只要它们通了,后面基本不会卡住。

以上就是如何使用Satis或Private Packagist搭建自己的Composer镜像?(企业内网方案)的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

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