美文网首页
老司机手把手教你如何搭建Composer私有仓库

老司机手把手教你如何搭建Composer私有仓库

作者: 稀饭不加糖C | 来源:发表于2017-06-03 00:08 被阅读0次

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

    一,  安装 Composer

    Composer 的安装已经有很完善的教程,这里我就不重复造轮子了。安装 Composer

    安装好之后就能直接在命令行使用 composer命令,如果不是的话,请检查安装过程,后续步骤会直接使用 composer 来做演示。

    二, Composer 配置国内镜像

    这是使用全局方式:

    composer config -g repo.packagist composer https://packagist.phpcomposer.com

    为啥要配置国内镜像。原因大家都懂得。。。。

    三,使用Git搭建代码仓库

    自建Git仓库,github仓库, SVN 仓库 都可以用来做为我们的私有仓库。

    这里我们选择 自建Git仓库。因为相对于 自建SVN仓库,自建Git仓库配合起来会更方便一些。

    Github 与自建Git仓库功能大概是一样的,但既然需要私有化,就不希望代码让别人看到,所以我们这里选择自建Git仓库。当然GitHub私有项目也是可以的,但是需要收费,我们这里就不考虑了,有需要使用的可以尝试一下。

    第一步: 安装Git

    $ sudo apt-get install git

    第二步:创建一个git用户,用来运行git服务:

    $ sudo adduser git

    第三步:客户端机器生成公钥

    $ ssh-keygen

    上面的命令可以直接在Linux上执行,但是在Windows上可能找不到命令。需要安装 Git客户端才能使用。点击下载 . 

    查看公钥路径:

    [Linux]: /Users/you/.ssh/id_rsa.pub 

    [Windows]: C:\Users\[username]\.ssh\id_rsa.pub

    第四步:创建证书登录

    收集所有需要登录的用户的公钥,就是他们自己的id_rsa.pub文件,把所有公钥导入到/home/git/.ssh/authorized_keys文件里,一行一个。如果文件或路径不存在,自行创建即可。

    第五步:初始化Git仓库

    先选定一个目录作为Git仓库,假定是/srv/sample.git,在/srv目录下输入命令:

    $ sudo git init --bare sample.git

    Git就会创建一个裸仓库,裸仓库没有工作区,因为服务器上的Git仓库纯粹是为了共享,所以不让用户直接登录到服务器上去改工作区,并且服务器上的Git仓库通常都以.git结尾。然后,把owner改为git:

    $ sudo chown -R git:git sample.git

    第六步:禁用shell登录

    出于安全考虑,第二步创建的git用户不允许登录shell,这可以通过编辑/etc/passwd文件完成。找到类似下面的一行:

    $ git:x:1001:1001:,,,:/home/git:/bin/bash

    改为:

    $ git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell

    这样,git用户可以正常通过ssh使用git,但无法登录shell,因为我们为git用户指定的git-shell每次一登录就自动退出。

    第七步 : 克隆远程仓库

    现在,可以通过git clone命令克隆远程仓库了,在各自的电脑上运行:

    $ git clone git@server:/srv/sample.git

    第八步:配置Git裸仓库HTTP克隆

    $ cd /srv/sample.git

    $ mv hooks/post-update.sample hooks/post-update

    $ chmod a+x hooks/post-update

    之后就可以使用 HTTP 方式克隆:

    $ git clone http://example.com/sample.git

    注意:上面步骤执行完毕之后,可能会不成功。需要在仓库根目录下执行:

    $ git update-server-info

    第九步:创建包代码并提交到Git仓库

    $ composer init

    按照提示一步一步输入,类型选择:library

    配置完成后如下所示:


    $ git add .

    $ git commit -m "init" 

    $ git push

    $ git tag -a v0.1.2 -m 'add 0.1.2 version....'

    $ git push origin v0.1.2

    提交代码,添加 tag 并推送到服务器。tag 就是包的版本号

    四:使用 Satis 搭建私有仓库

    1. 建立项目

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

    $ composer create-project composer/satis my-satis --stability=dev --keep-vcs

    2. 建立配置文件

    在/path/to/my-satis目录下建立satis.json文件

    name: 项目名称

    homepage : 私有包主页,后续会用到。

    repositories : 资源包来源,里面配置私有仓库url,就是上前面创建的私有Git仓库地址。

    require : 配置 git仓库中存在的包。

    3. 生成仓库列表

    执行:

    php bin/satis build satis.json ./web

    就可以在path/to/my-satis/web/里生成仓库列表了。

    可能会报协议错误,默认是禁止 http 方式获取代码。需要单独配置开启。

    执行完毕后。会在项目根目录生成 web 目录。

    4. 配置 webServer

    将 web 目录配置 webServer 访问。虚拟域名就是之前我们配置的 homepage : packagist.example.com

    5. 在其它项目中使用私有源

    只需要在项目的 composer.json 文件的根上添加

    这样便可以正常安装新添加好的包

    还要记得配置:

    否则项目安装的时候还是提示项目不是HTTPS。

    五、安装测试

    $ compser init

    初始化项目,类型选择:project 

    composer.json 示例:

    安装私有包

    compser require luopingping/test:*

    如果不出意外,操作完成之后就能将私有Git仓库里的代码都下载下来了。

    至此安装完成。


    相关文章

      网友评论

          本文标题:老司机手把手教你如何搭建Composer私有仓库

          本文链接:https://www.haomeiwen.com/subject/bupufxtx.html