zoukankan      html  css  js  c++  java
  • 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

    否则会报无写入权限

  • 相关阅读:
    读写文件流
    关闭和退出窗口
    有什么问题?
    将aspx页面转换成htm页面
    读取rss聚合文件
    运算符重载实例
    委托
    将 Visual Studio .NET 调试器用于 ASP.NET 应用程序
    输入的字符串进行有规则的清洗
    几个常用的数据库连接字符串
  • 原文地址:https://www.cnblogs.com/ignacio/p/11064436.html
Copyright © 2011-2022 走看看