龚流惠 发表于 2016-4-6 14:55:25

自己实践了github的webhooks, linux上面的权限需要注意

  环境, 阿里云服务器
  
  1. 本地创建项目, push到github服务器上面
  
  2. 生成www用户的密钥

sudo -u www ssh-keygen -t rsa -C "xxx@xx.com"
  
  
  3. 将密钥添加到github帐号的SSH_KEYS里面
  
  3. 用www用户执行克隆, 源使用ssh的克隆方式, 不要用https

sudo -u www git clone git@github.com:xxx/xxx.git
  
  
  4. 创建更新的php脚本,放到网站的根目录, 外网可以正常访问到这个脚本即可
  cat update_hook.php

<?php
$www_folder = "/alidata/www/default/movie";
//在这里获取到了用户提交的内容, 以及提交者等等, 可以记录到数据库中供以后使用
$raw_json = file_get_contents('php://input');
print_r(json_decode($raw_json, true));
echo shell_exec(" cd $www_folder ; git pull 2>&1");
  
  
  5. 将脚本地址填写到项目的webhooks

http://x.x.x.x/update_hook.php
  
  
  提示: 
  注意不要在服务器上用root用户git pull, 这样一些文件的权限会变为root, 就混乱了, 下次 www用户push后就无法通过webhook部署了

sudo -u www git push
  
  
  服务器上面配置全局的用户和邮箱

git config --global user.name “xxx”
git config --global user.email “xxx@xxx.com"
  
  
  将项目根目录权限设置为www用户

chown -R www:www /alidata/www/default/movie
  
  
  
页: [1]
查看完整版本: 自己实践了github的webhooks, linux上面的权限需要注意