• github webhook git pull Permission denied


    使用php-fpm 去拉去git 代码 git pull,

    $cmd = "cd $target && git pull ";
    $res = shell_exec($cmd);

    提示 error: cannot open .git/FETCH_HEAD: Permission denied

    直接 在linux 命令行 去执行git pull 成功.

    原因在于没有文件权限. 

    直接用who 去查看当前用户, 看上去是root. 

    所以采取了在webhook文件里执行

    $cmd = "echo yes | ssh-keygen -t rsa 2>&1" ;

    得以查看到当前是apache用户 而非root用户, 再查看apache 所在的组为apache

    所以去linux命令行执行

    chown apache:apache /usr/local/nginx/html/da/.git

    给该目录增加apache用户权限

    最终可成功拉去代码 

    Already up-to-date.

    私有仓需要为apache用户添加ssh public key

    用以下命令生成并在github setting 中添加

    sudo -u apache ssh-keygen -t rsa

    1. 先手动clone 下来 仓库

    2. cd 进入项目目录并git pull , 以便生成.git/FETCH_HEAD

    3. 

    chown apache:apache /usr/local/nginx/html/dat/.git

     ---------------------------------------------------------------------------------------------------------

    php hook 文件存放目录与仓库代码仓库目录都要开启

    chown apache:apache /usr/local/nginx/html
    chmod 775 /usr/local/nginx/html

    否则会报无写入权限

  • 相关阅读:
    vijos1198:最佳课题选择
    vijos1071:新年趣事之打牌
    vijos1153:猫狗大战
    bzoj3594: [Scoi2014]方伯伯的玉米田
    bzoj2753: [SCOI2012]滑雪与时间胶囊
    bzoj1923: [Sdoi2010]外星千足虫
    bzoj2783: [JLOI2012]树
    bzoj4590: [Shoi2015]自动刷题机
    bzoj4580: [Usaco2016 Open]248
    bzoj4579: [Usaco2016 Open]Closing the Farm
  • 原文地址:https://www.cnblogs.com/ignacio/p/11064436.html
Copyright © 2020-2023  润新知