1. 程式人生 > >基於satis搭建私有composer倉庫

基於satis搭建私有composer倉庫

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.mifengkong.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": "
[email protected]
" } ], "minimum-stability": "dev", "require": { "php": ">=7.0" }, "autoload": { "psr-4": { "Test\\": "src/" } } }

我們新的工程需要安裝這個包,只需在新工程的composer.json中修改下:

"repositories": [ 
    { "type": "composer", "url": "http://satis.mifengkong.cn/" } 
], 
"require": { 
    "test/package1": "*"
}
"config": {
    "secure-http": false
}
  • repositories 我們倉庫的地址
  • require中加入我們上面的包
  • config中secure-http設定false 允許http

composer install下,會發下我們的私有包出現在新工程了