Satis搭建composer私有库(自定义下载目录)
在我们的日常php开发中需要使用大量的第三方包和类库, 怎么管理是一个问题,
我们用的Yii2框架, 但是并没有把composer用起来, 由于最近更换为docker部署项目, 于是想起来用composer来管理包并降低部署代码的时间
安装composer(在你当做私有库的服务器上以及开发环境)
参考 https://www.phpcomposer.com/ (有国内镜像使用方法)
安装satis (在你当做私有库的服务器上)
mkdir /data #我是在根目录下 cd data/ mkdir satis cd satis/ composer create-project composer/satis --stability=dev --keep-vcs mv satis mypackages.com cd mypackages.com/ vim satis.json #配置文件需要手动创建
satis.json文件内容如下, 可以复制后修改成你的参数
{"name": "MyRepository","homepage": "http://mydandan.wang","repositories": [{ "type": "vcs", "url": "https://github.com/LIzheng1993/test.git"},{ "type": "vcs", "url": "https://git.oschina.net/1129103472/ceshi.git"}],"require-all" : true,"archive":{"directory":"dist","format":"tar","prefix-url":"http://mydandan.wang","skip-dev":true} }
其中部分配置的含义
- repositories: 包的存储路径,这里可以是内网, 为了演示, 我用github来存储代码
require:具体的包的名称,后面的版本号实际就是git里的tag 。也可以直接使用 require-all:true 的配置获取全部。
archive:下载远端项目到本地存储,会自动生成tar包保存在dist里,可以加快后续composer的速度。
PS:如果git使用的是ip访问,需要设置composer config -g secure-http false再PS:如果设置了archive,对于nginx用户请注意nginx用户与php-fpm的执行用户相同,否则会导致下载tar包无效
生成(类似于build) 一般出问题的话都是目录的权限问题
php bin/satis build satis.json public/
配置Nginx
server {listen 80;server_name mydandan.wang;root /data/satis/mypackages.com/public;index index.php index.html;access_log /var/log/nginx/mypackages.com.log;error_log /var/log/nginx/mypackages.com.log.err debug;rewrite_log on;location ~* \.php$ {include fastcgi_params;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;fastcgi_pass unix:/var/run/php-cgi.sock;fastcgi_index index.php;}location = /favicon.ico {log_not_found off;access_log off;} }
成功后进入mydandan.wang 会出现这样的页面
使用
在自己的项目中添加composer.json文件
{"repositories": [{"type": "composer","url": "https://packagist.phpcomposer.com"},{"type": "composer","url": "http://mydandan.wang"}],"require": {"sapolang/ceshi": "*","test/helloworld": "*"},"config": {"secure-http": false}}
"secure-http": false 是检查是否https, 设置false就可以使用http地址作为仓库了, 否则会报错
然后执行composer install 或 composer update
也可以添加 -vvv选项来观察运行的详情
自定义路径
在这里我仅说明作为一个包使用者时如何把包下载到我们想安装的任何位置
仅需要在composer.json文件中的 requires 中添加这个包 "composer/installers": "*" 并在 extra 下设置 installer-paths
属性。(extra和require是同级别的)
Drupal 的多站点设置就是一个很好的例子,其中的资源包应该被安装到各自网站的子目录。
在这里我们使用 composer/installers 来覆盖安装路径:
{"extra": {"installer-paths": {"sites/example.com/modules/{$name}": ["vendor/package"]}} }
上面的 "sites/example.com/modules/{$name}": ["vendor/package"] 中 sites/example.com/modules/ 可以是你项目中的任何目录, {$name} 会被 : 后面的["vendor/package"] 替换掉
至此,可以用于公司内部的私有仓库就搭建完成了
总结
本地 : 只需配置composer.json使用就行, 最多设置下目录, 设置下https检查为false
用作私有库的服务器 : 主要是起了一个packagist的作用, 但是它是我们自己私有的, 而packagist是公开的, 如不理解可以看下packagist网站 https://packagist.org/
需要做也很简单, 安装satis, 配置satis.json文件, 配置Nginx, 然后Build生成代码库
真正代码存放的地方:
可以是github也可以是你们公司本地的gitlab,应该也可以直接存到私有库的服务器上(这里笔者没尝试)
转载于:https://www.cnblogs.com/lz0925/p/9168542.html
Satis搭建composer私有库(自定义下载目录)相关推荐
- satis 搭建 Composer 私有库的方法
安装 satis 命令行下执行: php create-project composer/satis --stability=dev --keep-vcs . 配置 创建 satis.json 文件, ...
- 使用satis创建Composer私有库
介绍 Satis 是一个静态的 composer 资源库生成器.它像是一个超轻量级的.基于静态文件的 packagist 版本.你给它一个包含 composer.json 的存储库,定义好 VCS 和 ...
- 使用 satis 结合 gitlab 搭建 composer 私有包仓库
使用 satis 结合 gitlab 搭建 composer 私有包仓库 环境 centos 7.3 composer gitlab nginx 使用 安装 satis composer create ...
- 基于https搭建habor私有库
基于https搭建habor私有库 1.编辑/etc/docker/daemon.json文件,如果文件不存在,则新建该文件,在该文件中加入:"insecure-registries&quo ...
- 前端人员如何在linux服务器上搭建npm私有库
为什么要搭建npm私有库? 为了方便下载时,公共包走npmjs,私有包走内部服务器. npm包下载的速度较慢,搭建npm私有库之后,会先操作私有库中是否有缓存,有缓存直接走缓存,而不用重新再去请求一遍 ...
- 搭建CocoaPods私有库
基于git搭建CocoaPods私有库 1.创建并设置一个私有的Spec Repo. 2.创建Pod的所需要的项目工程文件,并且有可访问的项目版本控制地址. 3.创建Pod所对应的podspec文件. ...
- 使用 satis 搭建 composer 本地仓库
环境 windows nginx php composer 安装 拉取 satis 项目包,并拉取项目依赖 composer create-project composer/satis --stabi ...
- 如何使用Docker搭建Gitlab私有库
第一步.安装环境 Node IP Descprition Gitlab 192.168.50.102 Gitlab服务 域名:www.example.com 第二步.安装Docker Linux安装D ...
- 使用satis 搭建私有Composer
前言 网上有很多教程,但是作为小白,遇见很多错误浪费了很多时间. 这里记录下我自己安装的整个流程 准备工作 安装composer 参考 http://docs.phpcomposer.com/00-i ...
最新文章
- 慌!年中总结完全没思路,这份安全汇报让你抄作业
- 使用VS2015远程GDB调试
- 损失函数,梯度下降与牛顿法
- CLR via C# (二)
- 关于MUI框架中,“侧滑导航“之“div模式下拉菜单“的a标签(超链接)的失效问题?
- java注解获取参数_JAVA 自定义注解及参数获取 | 学步园
- DropDownList 数据绑定
- 8.3CSS代码缩写 颜色值
- 关于java文件乱码解决
- 鸿蒙os手机有哪些,华为正式发布鸿蒙手机操作系统 鸿蒙操作系统是什么?鸿蒙适用机型首曝光...
- 引擎选择:GameMaker
- 《斯坦福高效睡眠法》读书笔记思维导图版,成年人的睡眠解决法
- 【附源码】Python计算机毕业设计软件学院社团管理系统
- Azure Log Analytics产品API文档读后感
- GROUP Function
- 计算机程序设计考题,计算机程序设计员试题与答案.doc
- 昨晚深夜听到清青门前有个女生在哭
- matlab赌徒输完问题,Gambler's Ruin(赌徒破产问题 概率论)
- 数据通信技术_数据通信相关汇总
- 微软超级麻将AI Suphx,破解非完美信息游戏