zoukankan      html  css  js  c++  java
  • CentOS7 宝塔搭配git 实时更新项目源码

    上一篇文章 介绍了如何在CentOS7上 搭建GIT环境 详见链接:https://www.cnblogs.com/mverting/p/10206532.html

    本章主要介绍git如何和wdcp搭配 , 做到实时提交修改

    如果按照网上常见的教程, 一般都是要新建git用户和用户组, 而wdcp里站点默认的用户是www组里的www用户, 如果强制把站点用户改成git , 很多项目会无法正常运行, 所以本章就介绍如果以www这个用户作为git的默认用户, 并实现git的仓库和代码分离

    一. 需要给www用户创建用户目录

    wdcp中www用户默认的用户目录,指向的是dev/null, 我们需要修改成和自己创建的git用户生成的用户目录同级的目录 /home/www

    如果原来已经创建过用户 只需要在/home文件夹中新建 www文件夹  

    cp /home/user1 /home/www

    未创建过用户的 先创建一个属于www组的用户 然后把目录拷贝下就行了

    adduser -g www aaa

    cp /home/aaa /home/www

    userdel git

    二.  修改用户设置  设置www的用户目录

    vi /etc/passwd

    找到www用户  修改成如下 

    www:x:xxx:xxx::/home/www:/usr/local/git/bin/git-shell

    /home/www这是是用户目录,/usr/local/git/bin/git-shell 这个要设置成自己的git安装的地址, 表示不允许www用户使用ssh登录,只能使用git的相关命令

    三.  创建.ssh 目录, 

    www用户是wdcp安装时候就生成的, 我们并不清楚是否有密码, 也不能确定是否能设置密码, 所以这里不用密码登录, 使用RSA验证

    cd /home/www/

    mkdir .ssh #新建文件夹

    chmod 700 .ssh

    touch .ssh/authorized_keys #新建文件

    chmod 600 .ssh/authorized_keys

    后续用户只需要向authorized_keys中添加自己的公钥

    四  创建git仓库并添加git的钩子文件

    cd /home/www

    git init --bare test.git #创建一个空仓库 仓库名字叫 test

    cd test.git/hooks

    vi post-receive  #git接收到用户提交的提交更新后 会执行此文件中的内容

    写入下面内容  --work-tree 代表代码文件夹 --git-dir  代表仓库目录

    #!/bin/sh

    git --work-tree=/www/web/test/public_html/addons/aaa --git-dir=/home/www/test.git checkout -f

    保存后 记得要改权限 需要有可执行权限

    chmod  777 /home/www/test.git/hooks/post-receive

    这样就把仓库和实际代码区域分开了  每当有改动提交到仓库, 就会自动检出到实际代码文件夹

    五  修改仓库文件夹所有者为www

    chown www:www -R /home/www/test.git

    就是说要保证--work-tree 代码文件夹和--git-dir  仓库文件夹的所有者一致  wdcp站点的默认所有者是www 所以这里把仓库文件夹的所有者也修改成www

    六  本地使用

    git clone www@your-ip:test.git

    这里就是要用www用户了

    剩下的就是正常的git使用了  

    此教程的要点 实际只有一个 就是要保证git仓库的所有者 和 实际代码文件夹的所有者一致 这样才能做到实时的更新项目源码 

    清空git缓存

    git rm -r --cached .

    git add .

    git commit -m 'update .gitignore'

    服务器上执行 可以直接把项目文件添加到仓库 



    作者:非常帅气的昵称吧
    链接:https://www.jianshu.com/p/30f11666a72d
    來源:简书
    简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
  • 相关阅读:
    通俗理解乐观锁和悲观锁
    面试系列-HashMap和Hashtable的区别
    单点登录原理与实现
    CodeReview常见代码问题
    漫画:什么是冒泡排序?
    Redis 和 Memcached 的区别
    动态图文了解 8 大排序算法
    分布式系统常见的事务处理机制
    面试系列-String,StringBuffer,StringBuilder三者区别
    面试系列-高并发之synchronized
  • 原文地址:https://www.cnblogs.com/mverting/p/10206674.html
Copyright © 2011-2022 走看看