资讯专栏INFORMATION COLUMN

使用 satis 搭建 composer 本地仓库

张率功 / 2707人阅读

摘要:如果需要定时更新,则需要配置定时任务去定时更新设置本地仓库设置虚拟主机使用本地仓库中的包文件中添加以下拉取,即可获取本地库了如果本地仓库不存在且有网络会去网络中获取。

环境

windows

nginx

php

composer

安装

拉取 satis 项目包,并拉取项目依赖

composer create-project composer/satis --stability=dev

cd satis

composer install
配置

修改 satis/config.json 文件,文件内容如下

{
    "name": "composer 本地仓库",
    "homepage": "http://packages.example.org", // 访问域名
    "repositories": [// 要拉取包的仓库地址
        { "type": "vcs", "url": "https://github.com/test-lin/db.git" },
        { "type": "vcs", "url": "https://github.com/test-lin/queue.git" },
        { "type": "vcs", "url": "https://github.com/test-lin/cache.git" },
        { "type": "vcs", "url": "http://192.168.6.251:3000/php/xjwSpider.git" }
    ],
    "require": { // 要拉取到本地的包文件 注:不会包含包的依赖
        "test-lin/db": "*",
        "test-lin/queue": "*",
        "test-lin/cache": "*",
        "php/xjwSpider": "*"
    },
    "archive": {
        "directory": "dist",
        "format": "tar",
        "prefix-url": "http://packages.example.org" // * 这个参数是当前项目的域名,作用是以zip压缩包的方式直接下载包文件
    }
}
拉取包到本地仓库

web/ 是本地仓库访问地址。

php bin/satis build config.json web/

如果需要定时更新,则需要配置定时任务去定时更新

设置本地仓库

nginx 设置虚拟主机

server {
    listen 80;
    server_name packages.example.org;
    root /var/www/satis/web;
    index index.php index.html;

    location ~* .php$ {
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
    }
}
使用本地仓库中的包

composer.json 文件中添加以下 json 拉取,即可获取本地库了.

如果本地仓库不存在且有网络会去网络中获取。repositories 参数可以设置多个

{
  "repositories": [{
    "type": "composer",
    "url": "http://packages.example.org"
  }]
}
FQA 1. github 的包需要配置 token
Could not fetch https://api.github.com/repos/test-lin/db/git/refs/heads?per_page=100, please create a GitHub OAuth token to go over the API rate limit
Head to https://github.com/settings/tokens/new?scopes=repo&description=Composer+on+packages.example.org+2018-06-28+0310
to retrieve a token. It will be stored in "/home/vagrant/.config/composer/auth.json" for future use by Composer.

解决方法:

访问命令行中提示的 https://github.com/settings/t...

复制 token description 文本框中内容

拉到页底 点击 generate token

在命令行中粘贴复制内容确认限可

2. 私有包,拉取不了

解决方法:

本地生成 ssh key ,配置到要拉取项目的平台即可,免密拉取了

ssh-keygen -t rsa

cat ~/.ssh/id_rsa.pub

以 gogs 为例

3. composer 不支持 http
Your configuration does not allow connections to http://192.168.6.251:3000/php/xjwSpider.git. See https://getcomposer.org/doc/06-config.md#secure-http for details.

解决方法:

composer config -g secure-http false
4. 拉取的包 composer.json 配置有误
[ComposerRepositoryInvalidRepositoryException]
No valid composer.json was found in any branch or tag of http://192.168.6.251:3000/php/xjwSpider.git, could not load a package from it.

解决方法:

确保项目根部有 composer.json

composer.json 里需要设置 name

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/29453.html

相关文章

  • 使用 Satis 搭建私有的 Composer仓库

    摘要:说明服务器环境代码管理平台码云文章中尽量以一个真实的情况来撰写,但是文章的仓库地址,网页地址均是不可访问的,用虚拟信息替换了真实信息。比如码云,是收费的,对于一个公司来说费用不高,但是加上以上两点原因后,所以未选择。 简述 iBrand 产品立项时是商业性质的项目,但是在搭建架构时考虑后续的通用性,因此每个模块都设计成一个 Package,作为公司内部用,因此这些包并不能提交到 pac...

    lovXin 评论0 收藏0
  • 使用 Satis 搭建私有仓库

    摘要:此时我们就需要一个工具,能够搭建私有源,里面都是私有仓库,对内不对外。就是官方提供的建立私有源的工具。在其它项目中使用私有源只需要在项目的文件的根上添加仓库地址之后再通过或者想要的仓库就可以了。 现在我们常用 Composer 进行依赖管理。和其它语言的包管理工具一样,Composer 使用 GitHub 托管代码,可以根据配置文件管理依赖,也可以建立各种脚本,执行特定任务。总之好处很...

    gityuan 评论0 收藏0
  • composer私有仓库搭建

    摘要:安装包添加配置文件添加类似如下内容配置文件详解仓库名字主页地址包所在地址指定获取哪些包及对应的版本,获取所有包使用,与包中中的名称相同,不同会出现问题必需要的,表示生成的压缩包存放的目录,会在时的目录中压缩包格式默认和 安装satis包 cd /home/wwwroot/ composer create-project composer/satis --stability=dev -...

    h9911 评论0 收藏0
  • 使用satis自建私有镜像

    摘要:假设同一个包有多个开发人员则将其他人员设置为组成员,在同一台跳板机上部署项目,并且设置项目的为。这样在开发环境中通过登陆来判断权限。在跳板机上则通过添加该机器的公钥到来判断权限这样就算其他人有仓库地址也不能拉到代码,目的基本达成。 建立目的 为了不让代码公开,能够让项目基于gitlab快速自动化部署,简化单个composer.json文件配置内容 安装 使用composer compo...

    lscho 评论0 收藏0
  • 这两年多我写PHP业务代码的方式是如何进化的

    摘要:曾今谁都有过迷茫期,下面是我开始开发中,不断改变的代码组织方式。 曾今 谁都有过迷茫期,下面是我开始PHP开发中,不断改变的代码组织方式。 初期:所有代码一股脑控制器controller 曾今只是简单的理解MVC 中期:业务代码抽象一部分到模型层model 开始觉得model层是否该做点什么了 后期:业务代码控制器,模型层只写db的curd方法 复杂的业务代码使contro...

    qqlcbb 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<