使用 satis 搭建 composer 本地仓库
环境
- windows
- nginx
- php
- composer
安装
拉取 satis 项目包,并拉取项目依赖
```
composer create-project composer/satis --stability=dev
cd satis
composer install
<h2>配置</h2>
<p>修改 satis/config.json 文件,文件内容如下</p>
{
"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压缩包的方式直接下载包文件
}
}
<h2>拉取包到本地仓库</h2>
<p>web/ 是本地仓库访问地址。</p>
php bin/satis build config.json web/
<p>如果需要定时更新,则需要配置定时任务去定时更新</p>
<h2>设置本地仓库</h2>
<p>nginx 设置虚拟主机</p>
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;
}
}
<h2>使用本地仓库中的包</h2>
<p>composer.json 文件中添加以下 json 拉取,即可获取本地库了.</p>
<p>如果本地仓库不存在且有网络会去网络中获取。repositories 参数可以设置多个</p>
{
"repositories": [{
"type": "composer",
"url": "http://packages.example.org"
}]
}
<h2>FQA</h2>
<h3>1. github 的包需要配置 token</h3>
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.
<p>解决方法:</p>
<p>访问命令行中提示的 <a href="https://github.com/settings/tokens/new?scopes=repo&description=Composer+on+packages.example.org+2018-06-28+0310" rel="nofollow noreferrer">https://github.com/settings/t...</a></p>
<p>复制 token description 文本框中内容</p>
<p>拉到页底 点击 generate token</p>
<p>在命令行中粘贴复制内容确认限可</p>
<h3>2. 私有包,拉取不了</h3>
<p>解决方法:</p>
<p>本地生成 ssh key ,配置到要拉取项目的平台即可,免密拉取了</p>
ssh-keygen -t rsa
cat ~/.ssh/id_rsa.pub
<p>以 gogs 为例</p>

<h3>3. composer 不支持 http</h3>
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.
<p>解决方法:</p>
composer config -g secure-http false
<h3>4. 拉取的包 composer.json 配置有误</h3>
[Composer\Repository\InvalidRepositoryException]
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.
<p>解决方法:</p>
<ol>
<li>确保项目根部有 composer.json</li>
<li>composer.json 里需要设置 name</li>
</ol>
原文地址:https://segmentfault.com/a/1190000016523278
使用 satis 搭建 composer 本地仓库的更多相关文章
- 使用Nexus搭建Maven本地仓库
阅读目录 序 Nexus 本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作. 文章是哥(mephisto)写的,SourceLink 序 在工作中可能存在有 ...
- nexus 搭建maven本地仓库
使用Nexus搭建Maven本地仓库 阅读目录 序 Nexus 序 在工作中可能存在有些开发机器不能上网,大量的机器获取jar包会导致公司网络很慢,还有时候公司会自己发布自己的项目版本,其他的项目 ...
- Linux 用脚本编写搭建yum本地仓库
Linux 用脚本编写搭建yum本地仓库 源码如下: #!/bin/bash #该脚本用于自动化搭建本地yum仓库 #挂载光盘 #作者:雨中落叶 #博客:https://www.cnblogs.com ...
- 搭建YUM本地仓库
本文介绍如何利用CentOS 7 ISO光盘镜像搭建YUM本地仓库. 环境准备: (1)VMware15.5版本虚拟机 (2)CentOS-7-x86_64-DVD-1908光盘镜像文件 1. 搭建Y ...
- 搭建maven本地仓库,idea应用本地maven仓库
提环境: 安装好tomcat.maven.jdk.idea. 打开maven安装目录,在目录下新建 maven仓库文件夹(名子随便): 打开conf\setting.xml 加入<localRe ...
- Satis搭建composer私有库(自定义下载目录)
在我们的日常php开发中需要使用大量的第三方包和类库, 怎么管理是一个问题, 我们用的Yii2框架, 但是并没有把composer用起来, 由于最近更换为docker部署项目, 于是想起来用compo ...
- satis 搭建 Composer 私有库的方法
安装 satis 命令行下执行: php create-project composer/satis --stability=dev --keep-vcs . 配置 创建 satis.json 文件, ...
- 使用apt-mirror搭建debian本地仓库
apt-mirror能够将官方镜像下载到本地,并保证目录结构与其一致,但是不能对镜像仓库进行修改.如果想要修改镜像仓库,需要使用reprepro. 1.安装apt-mirror # aptitude ...
- 使用Nexus2搭建Maven本地仓库
由于OS为WindowsXP,而Nexus3forWindows为x64版本,只能选择安装nexus2了. Windows(x86)平台,Nexus Repository Manager OSS 2. ...
随机推荐
- CentOS 笔记(六) 历史命令 自动补充
history #出现历史的命令 #执行具体的一条历史命令 !458 ②安装自动补充功能 yum install -y bash-completion #输入命令 按Tab 会显示所有内容 syste ...
- Linux操作随笔
1.查看php加载的模块 /usr/local/php/bin/php -m |less 2.查询连接数 netstat -ntu | awk '{print $5}' | cut -d: -f1 | ...
- linux chattr用法
在linux中,我们有的时候发现linux无法删除一个文件或者目录. huskiesir第一次遇见这个问题还是在一次服务器被不法分子入侵之后的事情,我就发现某个进程很多,根据进程的名字,我搜索关键字找 ...
- Python爬虫基础--爬取车模照片
import urllib from urllib import request, parse from lxml import etree class CarModel: def __init__( ...
- SpringBoot2整合activiti6环境搭建
SpringBoot2整合activiti6环境搭建 依赖 <dependencies> <dependency> <groupId>org.springframe ...
- 启动 Appium 自带模拟器
1.先在sclipse中新建并打开一个设备 2.启动appium 3.安装apk 打开cmd 并在sdk安装目录的tools文件夹下输入安装命令adb install xxx.apk(在这之前需要把 ...
- linux入门基础——linux用户基础
这篇内容是linux用户基础,相关内容见linux改动username和ubuntu改动username和主机名. 用户.组 当我们使用linux时,须要以一个用户的身份登入,一个进程也须要以一个用户 ...
- Window7幻灯片字体显示混乱,难道真的是病毒么
这个问题有几天了.就是在其它人的PowerPoint2010做的ppt文件.发到这台有问题的电脑上(PowerPoint2007)就会显示全然不一样.例如以下所看到的. watermark/2/tex ...
- Java-MyBatis:MyBatis3 | 日志
ylbtech-Java-MyBatis:MyBatis3 | 日志 1.返回顶部 1. 日志 Mybatis 的内置日志工厂提供日志功能,内置日志工厂将日志交给以下其中一种工具作代理: SLF4J ...
- [C#] 隐式类型var —— 示例解析
从 Visual C# 3.0 开始,在方法范围中声明的变量可以具有隐式类型var.隐式类型可以替代任何类型,它的具体类型由编译器根据上下文推断而出. 下面就让我来总结下隐式类型的一些特点: 1.va ...