现在网上到处充斥这各种搭建私有仓库文档,但对于新手来说,总是有那么多的坑。这里我把我的摸索历程写出来给大家参考,希望大家能少踩一些坑。

现在网上到处充斥这各种搭建私有仓库文档,但对于新手来说,总是有那么多的坑。这里我把我的摸索历程写出来给大家参考,希望大家能少踩一些坑。

一,  安装 ComposerComposer 的安装已经有很完善的教程,这里我就不重复造轮子了。安装 Composer安装好之后就能直接在命令行使用 composer命令,如果不是的话,请检查安装过程,后续步骤会直接使用 composer 来做演示。
二, Composer 配置国内镜像这是使用全局方式:composer config -g repo.packagist composer //packagist.phpcomposer.com 为啥要配置国内镜像。原因大家都懂得。。。。

三,使用Git搭建代码仓库自建Git仓库,github仓库, SVN 仓库 都可以用来做为我们的私有仓库。这里我们选择 自建Git仓库。因为相对于 自建SVN仓库,自建Git仓库配合起来会更方便一些。Github 与自建Git仓库功能大概是一样的,但既然需要私有化,就不希望代码让别人看到,所以我们这里选择自建Git仓库。当然GitHub私有项目也是可以的,但是需要收费,我们这里就不考虑了,有需要使用的可以尝试一下。

四:使用 Satis 搭建私有仓库

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

    composer create-project composer/satis my-satis --stability=dev --keep-vcs2. 

建立配置文件
在/my-satis目录下建立satis.json文件

{
    "name": "packagist.majiameng.com",
    "homepage": "//packagist.majiameng.com/",
    "repositories": [
        {
            "type": "vcs",
            "url": "//49966.cn:3000/majiameng/payment.git"
        }
    ],
    "require-all": true,
    "config": {
        "secure-http": false
    }
}
  • name 厂商名和包名
  • description 这个组件的一些简短描述。这个值也会在packages中显示
  • keywords 关键字。用于在packages找到这个组件
  • homepage 组件网站的url
  • license 软件许可证。我们可以在//choosealicense.com/中...
  • authors 表示这个组件的开发人员信息,是一个数组。每个作者信息至少有姓名和网站url
  • require 这个组件所需的其他PHP组件
  • require-dev 和require相似,表示开发或者测试时需要用到的PHP组件
  • suggest 和require相似,表示建议安装的PHP组件,composer默认不会自动安装这里的组件
  • autoload 表示告诉composer加载器 如何加载这个组件
  1. 生成仓库列表
    执行:

    php bin/satis build satis.json ./web

    就可以在 /my-satis/web/ 里生成仓库列表了。
    可能会报协议错误,默认是禁止 http 方式获取代码。需要单独配置开启。

     "config": {
         "secure-http": false
     }

执行完毕后。会在项目根目录生成 web 目录。4. 配置 webServer将 web 目录配置 webServer 访问。虚拟域名就是之前我们配置的 homepage : packagist.example.com

  1. 在其它项目中使用私有源
    只需要在项目的 composer.json 文件的根上添加

这样便可以正常安装新添加好的包
还要记得配置:

否则项目安装的时候还是提示项目不是HTTPS。五、安装测试$ compser init初始化项目,类型选择:project composer.json 示例:

安装私有包compser require luopingping/test:*如果不出意外,操作完成之后就能将私有Git仓库里的代码都下载下来了。至此安装完成。

版本的具体说明

1.0.2 # 明确版本 
1.0.2 # 大于1.0.2 
=1.0.2 # 大于等于1.0.2 
<1.1|>=1.2 # 小于1.1 或 大于等于1.2 
1.0.* # 执行1.0.的最高版本,与<1.1等效 
1.0,<2.0 # 大于1.0 并且 小于2.0 
~1.2 # >=1.2,<2.0 
~1.2.3 # >=1.2.3,<1.3 
^1.2 # >=1.2,<2.0 
^2.3 # >=2.3,<3.0 
^3.4.6 # >=3.4.6,<4.0.0 
~3.4.6 # >=3.4.6,<3.5.0 
“,逗号”代表and并且关系 
“|竖杠”代表or或的关系 
^:大版限制(封顶到当前版本顶级) 
~:小版限制(封顶到当前版本的次版顶级) 
版本问题: 
一般的软件版本有3个位数,例如2.1.4,从左到右分为1位/2位/3位 
3位:小bug调试 
2位:功能更新 
1位:大版本更新,兼容不好
Last modification:June 11, 2019
如果觉得我的文章对你有用,请随意赞赏