现在网上到处充斥这各种搭建私有仓库文档,但对于新手来说,总是有那么多的坑。这里我把我的摸索历程写出来给大家参考,希望大家能少踩一些坑。
现在网上到处充斥这各种搭建私有仓库文档,但对于新手来说,总是有那么多的坑。这里我把我的摸索历程写出来给大家参考,希望大家能少踩一些坑。
一, 安装 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 搭建私有仓库
建立项目
使用 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加载器 如何加载这个组件
生成仓库列表
执行:php bin/satis build satis.json ./web
就可以在
/my-satis/web/
里生成仓库列表了。
可能会报协议错误,默认是禁止 http 方式获取代码。需要单独配置开启。"config": { "secure-http": false }
执行完毕后。会在项目根目录生成 web 目录。4. 配置 webServer将 web 目录配置 webServer 访问。虚拟域名就是之前我们配置的 homepage : packagist.example.com
- 在其它项目中使用私有源
只需要在项目的 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位:大版本更新,兼容不好