最简单的git部署方案

本地提交代码 到 git仓库之后  网站 远程自动同步代码 。php

git 的 webhook  正好能 知足 这个需求。git

服务器端:github

服务器端php程序是以www用户来执行,以前设置的ssh密钥是以root用户来设置的,php以www用户执行脚本中的git pull 命令时就没有权限web

//以www用户的身份生成秘钥
sudo -u www ssh-keygen -t rsa -C “jianl@example.com”

将生成的 id_rsa.pub 内容复制到github 的公钥设置里。shell

建立文件放入网站根目录下数据库

<?php 

$secret = "";
$path = ".";
 //passowrd 是webhook哪里设置那个密码
 if(json_decode($_POST['hook'])->password == 'password'){
     echo shell_exec("/usr/local/git/bin/git pull 2>&1");
     exit();
 }

  //echo shell_exec("cd {$path} && /usr/bin/git reset --hard origin/master && /usr/bin/git clean -f && /usr/bin/git pull 2>&1");
http_response_code(200);

?>

去github置webhookjson

彻底以上配置 。服务器端自动同步代码的功能就可以实现了。安全

缺点:php有执行shell的权限不安全,在安全模式下没法使用此函数。bash

服务器数据库再开启远程链接,本地链接服务器数据库进行开发十分方便。服务器

相关连接:http://my.oschina.net/dhyana/blog/738028

相关文章
相关标签/搜索