美文网首页程序员
git 本地 push 后服务器自动 pull

git 本地 push 后服务器自动 pull

作者: 清行_717f | 来源:发表于2020-05-09 11:58 被阅读0次

会遇到的问题

  1. git 后台 webhooks 的设置
  2. 回调地址中 shell 的编写
  3. 执行回调地址用户的问题
  4. php-fpm.conf 里的引入文件 www.conf 的用户设置
  5. linux 系统中指定用户免 sudo 设置
  6. 执行接口遇到的坑等。

下面我一一讲解。

一、设置WebHooks

进入 Git 管理后台找到 WebHooks 把回调的网址设置进去。

二、服务器上设置

1. 查看 php 进程的用户名

ps -ef | grep php

2. 修改php配置文件

  • 添加用户组

/usr/sbin/groupadd 用户组名
  • 新增用户

/usr/sbin/useradd -g 用户组名 -s /bin/bash 用户名
  • 修改 php 配置

vim /etc/php-fpm.d/www.conf

我的是在 /etc/php-fpm.d/www.conf,修改最上面的 usergroup

3. 重启php

service php-fpm restart

4. 改变免密码执行 sudo

visudo

root ALL=(ALL) ALL 下面加上

用户组 ALL=(ALL)  NOPASSWD: ALL

三、PHP 中的脚本


    // 自动去拉取代码
    public function index(Request $request)
    {
        //查看登录的用户
        echo shell_exec("id -a");
        
        //执行的命令
        $shell = "cd /data/www/website/ && git pull http://username:password@gitee.com/xxxx.git 2<&1";
        system($shell, $status);
        //注意shell命令的执行结果和执行返回的状态值的对   应关系
        $shell = "<font color='red'>$shell</font>";
        if( $status ){
            echo "shell命令{$shell}执行失败";
        } else {
            echo "shell命令{$shell}成功执行";
        }
    }


拉取的命令

git pull https://用户名:密码@gitee.com/xxxx.git

因为在linux系统里切换用户,免输入用户密码后,在网页上拉取还是失败,所以用了这个命令。

  • @gitee.com/xxxx.git 是git地址

补充

其他命令

查看 git 库的地址

git remote -v

指定 git 地址

git remote set-url origin 后面跟地址

相关文章

网友评论

    本文标题:git 本地 push 后服务器自动 pull

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