本地提交代码 到 git仓库以后 网站 远程自动同步代码 。
git 的 webhook 正好能 满足 这个需求。
服务器端:
服务器端php程序是以www用户来执行,之前设置的ssh密钥是以root用户来设置的,php以www用户执行脚本中的git pull 命令时就没有权限
//以www用户的身份生成秘钥sudo -u www ssh-keygen -t rsa -C “jianl@example.com”
将生成的 id_rsa.pub 内容复制到github 的公钥设置里。
创建文件放入网站根目录下
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置webhook
完全以上配置 。服务器端自动同步代码的功能就能够实现了。
缺点:php有执行shell的权限不安全,在安全模式下无法使用此函数。
服务器数据库再开启远程连接,本地连接服务器数据库进行开发十分方便。
相关链接:http://my.oschina.net/dhyana/blog/738028