Composer 私有仓库搭建

Satis 原理:通过配置文件生成相关库的元数据提供给composer,先通过git 下载 satis 代码库,创建一个 json 配置文件如下示例
复制代码
{
    "name": "longxiangam/repository",                  // Satis 生成的仓库的"名称",显示在 packages.json 中,通常是"我的私有仓库"这种描述性名字
    "homepage": "http://composer.test",                // Satis 生成的静态仓库首页 URL(浏览器访问这个地址能看到 packages.json 和搜索界面)

    "repositories": [                                  // 指定要扫描/镜像的源仓库(可以是 git、vcs、path 等类型)
        {
            "type": "git",
            "url": "https://github.com/longxiangam/dingtalk.git"
        }
    ],

    "require-all": false,                              // 关键字段:false → 不镜像"repositories"里所有包的所有版本
                                                       // 如果 true → 会镜像 repositories 里所有包的所有 commit/branch/tag 版本(非常多,适合全镜像场景)

    "require": {                                       // 关键字段:显式指定要镜像哪些包(Composer 的 require 语法)
        "mingyoung/dingtalk": "*"                      // 只镜像这个包的所有版本(* 表示任意版本,包括所有 tag/branch)
    },

    "require-dependencies": false,                     // 是否自动镜像"require"里包的依赖(dependencies)
                                                       // false → 不镜像依赖,只镜像 mingyoung/dingtalk 本身
                                                       // true → 会递归镜像它的依赖(如它依赖 guzzlehttp/guzzle,则也会镜像 guzzle)

    "require-dev-dependencies": false                  // 是否镜像 dev-dependencies(require-dev 里的包,如测试工具 phpunit)
                                                       // 通常设为 false,除非你想在私有仓库里也提供测试依赖
}

124747a2-8e29-4c04-99b1-209eb8a629cf

再通过命令构建出用于web发布的静态文件,命令如下, 最后两个指定配置与输出目录,构建出dist 后用nginx 发布成一个服务能够访问即可

复制代码
php bin/satis build satis.json dist

在composer.json 中配置私有库

复制代码
{
"repositories": [
        {
            "type": "composer",
            "url": "http://composer.test"   
        }
    ]

}

提示 如下时

复制代码
Your configuration does not allow connections to http://composer.test/packages.json. See https://getcomposer.org/doc/ 06-config.md#secure-http for details.

配置 secure-http 为false

复制代码
composer config secure-http false

如果在 docker 中使用composer 要注意 配置的私有库是否能正常访问

相关推荐
niucloud-admin8 小时前
PHP V6 单商户常见问题——如何修改访问域名默认跳转端口
php
catchadmin8 小时前
使用 PHP TrueAsync 改造 Laravel 协程异步化的可行路径
开发语言·php·laravel
郑州光合科技余经理9 小时前
同城O2O海外版二次开发实战:从支付网关到配送算法
开发语言·前端·后端·算法·架构·uni-app·php
niucloud-admin10 小时前
PHP V6 单商户常见问题——在线升级版本失败后如何回退版本数据
php
0xR3lativ1ty10 小时前
关闭公网IP的两种方式
网络协议·tcp/ip·php
白晨并不是很能熬夜11 小时前
【PRC】第 2 篇:Netty 通信层 — NIO 模型 + 自定义协议 + 心跳
java·开发语言·后端·面试·rpc·php·nio
2401_8734794013 小时前
固件升级如何按地区分批推送?IP地址查询定位决定升级策略
网络协议·tcp/ip·php
阿桂有点桂16 小时前
Laravel队列,使用redis驱动器
php·laravel
淘矿人17 小时前
2026年4月-DeepSeek V4 vs GPT-5.5深度对比测评:weelinking一键切换实测
服务器·数据库·人工智能·python·gpt·学习·php
森总202017 小时前
如何优雅处理 DB 事务提交后的不可控后置逻辑?记一次订单流程的架构重构
php