前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >composer私有仓库搭建之系列一:创建自己的私有仓库

composer私有仓库搭建之系列一:创建自己的私有仓库

作者头像
joshua317
发布2020-06-15 10:53:45
3.1K0
发布2020-06-15 10:53:45
举报
文章被收录于专栏:技术博文技术博文

首先有自己的项目仓库,项目的composr.json配置如下

代码语言:javascript
复制
{
  "name": "test/packag1",
  "description": "私有仓库创建测试",
  "type": "library",
  "license": "proprietary",
  "minimum-stability": "dev",
  "require": {
    "ext-curl": "*",
    "ext-redis": "*",
    "ext-fileinfo": "*",
    "ext-libxml": "*",
    "ext-simpleXml": "*",
    "ext-json": "*",
    "monolog/monolog": "^1.25",
  },
  "keywords": [
    "test,library"
  ],
  "authors": [
    {
      "name": "joshua317",
      "email": "joshua317@joshua317.com",
      "role": "Master"
    }
  ],
  "repositories": {
    "composer.joshua317": {
      "type": "composer",
      "url": "http://composer.joshua317.com"
    }
  },
  "prefer-stable": true,
  "config": {
    "optimize-autoloader": true,
    "preferred-install": "dist",
    "sort-packages": true,
    "secure-http": false,
    "process-timeout": 120
  },
  "require-dev": {
    "phpunit/phpunit": "^9.0"
  }
}

一、使用 Satis 搭建私有仓库

使用 Composer 自带的建项目功能,这个相当于git clone+composer install+ 运行 post-install 脚本。

私有仓库的创建很简单,直接通过使用下面命令创建就可以

代码语言:javascript
复制
cd /data/wwwroot/
composer create-project composer/satis --stability=dev --keep-vcs  --no-secure-http

二、建立satis.json配置文件

上面命令完成后,进入到目录,进行satis.json文件的创建

代码语言:javascript
复制
{
    "name": "My Repository",
    "homepage": "http://composer.joshua317.com",
    "repositories": [
    {
        "type": "vcs",
        "url": "http://gitlab.joshua317.com/test/package1.git"
    }],
    "require":
    {
"test/package1": "dev-master"
    },
    "require-all": false,
    "archive":
    {
        "directory": "dist",
        "format": "tar",
        "skip-dev": true
    }
}

配置文件详解

代码语言:javascript
复制
name:仓库名字
homepage:主页地址
repositories:包所在地址
require:指定获取哪些包及对应的版本,获取所有包使用”require-all”: true,与包中composer.json中的名称相同,不同会出现问题

二、生成仓库及更新仓库列表

使用下面命令会生成一个public目录,里面有生成的所有包的信息,然后把这个目录设置到可以用域名访问的地方,比如  composer.joshua317.com

代码语言:javascript
复制
cd /data/wwwwoot/
php bin/satis build satis.json public/

也可以使用下面命令行生成指定包的信息

代码语言:javascript
复制
php bin/satis build satis.json public/ test/test1 test/test2

三、NGINX配置

代码语言:javascript
复制
server {
    listen  80;
    server_name composer.joshua317.com;
    index index.html index.php;
    root /home/wwwroot/satis/public;
    access_log /data/log/composer-access.log  default_access;
    error_log /data/log/composer-error.log  error;

    location ~ \.php$ {
        include fastcgi_params;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include fastcgi_params;
    }  
}

服务起来后,浏览器输入:http://composer.joshua317.com 进行访问

四、使用私有仓库包

 在自己项目中的composer.json中添加类似如下内容

代码语言:javascript
复制
{
    "require":
    {
        "test/package1": "*"
    }
    "config":
    {
        "secure-http": false
    }
    "repositories":
    {
        "packagist":
        {
            "type": "composer",
            "url": "http://composer.joshua317.com"
        }
    }
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-06-13 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档