JAVA、PHP、前端、APP、网站开发 - 开发技术学习

开发技术学习 » 服务器 » php系统git配置web hook钩子实现自动部署

php系统git配置web hook钩子实现自动部署

此文被围观2055日期: 2019-03-11 分类 : 服务器  标签:  ·····

Git自动部署

 

本方法是通过git网站上提供的WebHooks完成的

 

应用服务器使用的是nginx,用户www-data,这里需要注意查看真实运行环境的用户

 

  1.  生成用户公钥

    sudo –u www-data ssh-keygen –t rsa –C "备注说明"

    此步可能会有权限错误,请根据相应的报错信息进行修改

    我的报错是/var/www目录下没有.ssh

    mkdir /var/www/.ssh
    chown -R www-data:www-data /var/www/.ssh

     

  2.  Clone项目

    Sudo –u www-data git clone git@xxxxxx.com //sshgit地址

    这里又可能出现权限问题,没法新建目录

    mkdir /www/web/test.adophper.com
    chown -R www-data:www-data /www/web/test.adophper.com

     

  3. 上传自己的hooks文件run.php

    $target = '/www/web/test.adophper.com';
     
    echo "Startn";
    echo shell_exec("whoami");//查看真实用户很重要
    $json = json_decode(file_get_contents('php://input'), true);
     
    try {
        if (isset($json['password']) && $json['password'] == 'xxxxxx') {
            $res = shell_exec("cd $target && git pull");
            echo date('Y-m-d H:i:s') . ",Updatedn";
            print_r($res);
            echo "n";
        } else {
     
            echo "Password Errorn";
     
        }
     
        echo "Endn";
     
    }catch (Exception $e) {
        print_r($e);
    }

     

    这里的页面就根据自己需求修改了。


站点声明:部分内容源自互联网,为传播信息之用,如有侵权,请联系我们删除。

© Copyright 2011-2024 www.kfju.com. All Rights Reserved.
超级字帖 版权所有。蜀ICP备12031064号