在我们的日常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,应该也可以直接存到私有库的服务器上(这里笔者没尝试)

          

Satis搭建composer私有库(自定义下载目录)的更多相关文章

  1. satis 搭建 Composer 私有库的方法

    安装 satis 命令行下执行: php create-project composer/satis --stability=dev --keep-vcs . 配置 创建 satis.json 文件, ...

  2. 在 Docker 搭建 Maven 私有库

    在 Docker 搭建 Maven 私有库 小引 If you are developing software without a repository manager you are likely ...

  3. docker学习---搭建Docker私有库及删除库内镜像

    环境准备系统: cat /etc/redhat-release CentOS Linux release (Core) 主机两台,分别是docker私有库服务器(IP 192.168.121.121) ...

  4. 使用 satis 搭建 composer 本地仓库

    环境 windows nginx php composer 安装 拉取 satis 项目包,并拉取项目依赖 composer create-project composer/satis --stabi ...

  5. 创业公司十分钟简单搭建GIT私有库

    欢迎关注老码农的微信公共账号,与CSDN博客同步 一.背景 小公司.协同开发的人不多,建gitlab比較麻烦,仅仅须要在Server端建立一个简单的git共享库就OK. 二.建立仓库 Server端: ...

  6. maven私有库搭建

    一.在企业中基本上都会有自己的maven私有库,主要的目的就是方便依赖包的下载.如果采用远程的方式来实现的话,很多时候会考虑网速问题.如果自己活着公司搭建的私有库,这一样在使用上面会效率更高. 二.私 ...

  7. Dubbo入门到精通学习笔记(四):持续集成管理平台之Maven私有库和本地库的安装与配置

    文章目录 介绍 Maven私有库和本地库的安装与配置 Nexus安装 Nexus 配置(登录后) 介绍 如果构建的Maven项目本地仓库没有对应的依赖包,那么就会去Nexus私服去下载, 那么如果Ne ...

  8. 安装Maven并搭建Maven私有仓库

    一.说明 Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具.我们在进行Java代码开发的时候,Eclipse+Maven+Jetty是一个十 ...

  9. 使用 satis 搭建一个私有的 Composer 包仓库

    在我们的日常php开发中可能需要使用大量的composer包,大部份都可以直接使用,但在公司内部总有一小部份包是不能公开的,这时候我们就需要搭建一个公司内部使用的composer仓库,好在compos ...

随机推荐

  1. February 12th, 2018 Week 7th Monday

    One man's fault is another man's lesson. 前车之覆,后车之鉴. We make mistakes every day, large or small, fail ...

  2. Lingo求解线性规划案例2——多阶段投资问题

     凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 某公司现有资金30万元可用于投资,5年内有下列方案可供采纳:   1号方案:在年初投资1元,2年后可收回1. ...

  3. Nmap参考指南(Man Page)

    Table of Contents 描述 译注 选项概要 目标说明 主机发现 端口扫描基础 端口扫描技术 端口说明和扫描顺序 服务和版本探测 操作系统探测 时间和性能 防火墙/IDS躲避和哄骗 输出 ...

  4. lua 编译安装

    官网http://www.lua.org/download.html Building Lua is implemented in pure ANSI C and compiles unmodifie ...

  5. jvisualVM的使用

    jvisualvm能干什么:监控内存泄露,跟踪垃圾回收,执行时内存.cpu分析,线程分析... jvisualvm已经被集成在jdk1.6以上的版本中(不是jre).自身运行需要最低jdk1.6版本, ...

  6. js开发打印证书功能(二)

    在上一篇的基础上,实现了一下另外一种方式. 上一篇地址:https://www.cnblogs.com/ljwsyt/p/9525290.html 首先,该方式也是有几种方法. 1.在上一篇的基础上, ...

  7. tomcat的webapps目录中的abc.war

    1  在tomcat的webapps目录中,会有类似abc.war类型的文件,在tomcat启动时会自动解压为abc目录. 2  如果tomcat在运行中,不要直接删除abc.war文件,删除后,ab ...

  8. tomcat 设置虚拟路径的4种方法

    通常使用方法1或者方法2  方法1 (添加配置文件):推荐使用,不需要重启服务器 在Tomcat根目录下的/conf/Catalina/localhost/ 路径下新建一个filename.xml,并 ...

  9. 报错Unexpected token u

    报错Unexpected token u,出错位置提示在index.html的第一行. 出现这个错误的原因是尝试JOSN.parse一个undefined的对象导致的,解决办法就是如果为undefin ...

  10. js 常用的比较排序算法总结

    每天学习一点点 编程PDF电子书.视频教程免费下载:http://www.shitanlife.com/code 一直很惧怕算法,总是感觉特别伤脑子,因此至今为止,几种基本的排序算法一直都不是很清楚, ...