zoukankan      html  css  js  c++  java
  • Git github webhook 自动更新/部署代码 php自动更新脚本

    这几天尝试了利用github的webhook,当代码更新到github,我们的测试服务器自动更新最新的gitbub仓库代码。

    先列几个大概步骤,有时间再补充详细

    1 . 服务器生成ssh key,一般在个人的家目录下,root用户在  /root/.ssh/id_rsa.pub。配置到github

    2 . php.ini配置开启 shell_exec  函数(可以在php中执行shell脚本)

    3. 查看php的运行用户,下一步要用。在nginx配置文件中查看。一般是www或者nginx

    4.在我们部署代码的服务器写一个php接口 ,配置到github的webhook。

    <?php

    dump(shell_exec('sudo /home/wwwroot/deploy.sh'));

    ?>

    5.写一个git更新代码的脚本(deploy.sh)。注意,git要写绝对路径。可以用  which git 命令查看。

    #!/bin/bash
    
    WEB_PATH='/home/wwwroot/PHPMailer/'
    WEB_USER='www'
    WEB_USERGROUP='www'
     
    echo "Start deployment"
    cd $WEB_PATH
    echo "pulling source code..."
    /usr/local/git/bin/git  reset --hard origin/master
    /usr/local/git/bin/git  clean -f
    /usr/local/git/bin/git  pull
    /usr/local/git/bin/git  checkout master
    echo "changing permissions..."
    chown -R $WEB_USER:$WEB_USERGROUP $WEB_PATH
    echo "Finished."

    6.最后一步,因为我们是php脚本调用shell脚本。php是php运行的,php的执行用户一般缺少一些权限,直接运行shell脚本可能会权限不够。可以通过修改 /etc/sudoers,

    使普通用户可以通过 sudo  + 命令 ,临时获取root权限。具体设置请百度

  • 相关阅读:
    动态规划精讲(一)53. 最大子序和
    ACM计算几何总结
    三角形外心的坐标公式
    三角形外心的坐标公式
    高精度模板
    位运算模板
    同余定理与逆元
    扩展欧几里得算法求二元一次方程
    1004. 最大连续1的个数 III
    剑指 Offer 04. 二维数组中的查找
  • 原文地址:https://www.cnblogs.com/guohong-hu/p/8743144.html
Copyright © 2011-2022 走看看