当前位置:首页 > 开发 > 操作系统 > 正文

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

发表于: 2015-01-08   作者:dcj3sjt126com   来源:转载   浏览:
摘要: 环境, 阿里云服务器   1. 本地创建项目, push到github服务器上面   2. 生成www用户的密钥 sudo -u www ssh-keygen -t rsa -C "xxx@xx.com"     3. 将密钥添加到github帐号的SSH_KEYS里面   3. 用www用户执行克隆, 源使

环境, 阿里云服务器

 

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

 

 

 

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

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号