基于satis搭建私有composer仓库

本文介绍如何使用Satis工具搭建PHP私有包仓库,包括安装配置Satis、生成静态仓库页面及Nginx配置等步骤,并演示如何在新项目中引用私有包。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

what`s satis

Satis 是一个静态的 composer 代码库生成器。

安装satis

cd /www/
composer create-project composer/satis --stability=dev --keep-vcs
mv satis packages.your.com
cd packages.your.com

配置satis

satis的配置是通过satis.json进行的,我们在当前目录新建一个satis.json。

{
    "name": "Test Repository",
    "homepage": "packages.your.com",
    "repositories": [
        {"type": "vcs", "url": "http://gitlab.your.com/test/package1.git"},
        {"type": "vcs", "url": "http://gitlab.your.com/test/package2.git"},
    ],
    "require": {
        "test/package1": "*",
        "test/package1": "*",
    }
}
  • name:仓库的名字,可以随便定义
  • homepage:仓库建立之后的的主页地址
  • repositories:指定去哪获取包,url中需要带.git
  • require:指定获取哪些包,如果想获取所有包,使用require-all: true,

生成

php satis/bin/satis build

我们生成的时候一般会生成html和paceages.json文件

php satis/bin/satis build satis.json public/

nginx配置

server {
    listen  80;
    server_name packages.your.com;
    root /www/packages.your.com/public;
}

访问

http://satis.xxxx.cn/
(记得域名指向nginx的ip哟)

使用

假设我们前面 repositories 中 http://gitlab.your.com/test/package1.git test/package1 的composer.json 如下:

{
    "name": "test/package1",
    "description": "测试",
    "type": "library",
    "license": "MIT",
    "authors": [
        {
            "name": "wangyu",
            "email": "123445678@qq.com"
        }
    ],
    "minimum-stability": "dev",
    "require": {
        "php": ">=7.0"
    },
    "autoload": {
        "psr-4": {
            "Test\\": "src/"
        }
    }
}

我们新的工程需要安装这个包,只需在新工程的composer.json中修改下:

"repositories": [ 
    { "type": "composer", "url": "http://satis.xxxx.cn/" } 
], 
"require": { 
    "test/package1": "*"
}
"config": {
    "secure-http": false
}
  • repositories 我们仓库的地址
  • require中加入我们上面的包
  • config中secure-http设置false 允许http

composer install下,会发下我们的私有包出现在新工程了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值