操作系统 – Ubuntu 14.04

我正在使用GIT webhooks进行部署.

我已经将部署密钥添加到git repo,现在我想在我的本地仓库发生推送时触发git pull origin master命令.

这是我通过浏览器调用的test.php文件:

//echo "THis is a test file on a test repo for testing the deploy functionality using github webhooks!!!!";

echo exec('whoami');

echo exec('sh -x /var/www/proj/test/git.sh');

这是git.sh shell文件:

#!/bin/bash

cd /var/www/proj-dir/test

git pull origin master

当我使用php test.php在终端上运行它时,我得到了正常的结果:

ubuntu From github.com:repo/test

* branch master -> FETCH_HEAD

Already up-to-date.

ubuntu for whoami后跟git pull输出.

现在问题是当我通过浏览器调用相同的http://example.com/test.php它显示用户或whoami输出为www-data,这是apache用户,但我尝试更新php文件的权限执行和更改用户到www数据,但没有工作.

检查了apache日志,当我通过浏览器执行时,我收到了权限错误

Please make sure you have the correct access rights and the repository exists. + cd /var/www/proj/deploy-test + git pull origin master

主机密钥验证失败.致命:无法从远程存储库读取.请确保您具有正确的访问权限并且存储库存在.

我需要做什么更新,以便文件通过浏览器请求工作?

如果我需要更新sudoers文件应该更新什么?

我将.ssh键添加到var / www / dir,因为它是apache用户的主页.但我仍然得到了

git pull origin master

error: cannot open .git/FETCH_HEAD: Permission denied

另外,我为www-data用户添加了一行,以便能够执行sh文件.

www-data ALL=(anthony) NOPASSWD: /var/www/mysite/vendor/tmd/auto-git-pull/scripts/git-pull.sh

参考here仍然没有运气

将.git文件夹的权限更新为www-data用户

sudo chown www-data:www-data /var/www/proj/test/.git

安装 git ,生成公钥,加公钥 都有教程,需要注意的是以下几个方面 php 以www用户 执行 ,需要给到权限才能 执行 git pull1、vim /etc/sudoersroot下加一行www localhost=(ALL) NOPASSWD:/usr/bin/ git (安装 git 后目录用which git 查看)2、允许 php 执行 exec shell_exec3、改目录权限4、. git 改权限可写,我直接改成... 分支操作 git branch 创建分支 git checkout -b 创建并切换到新建的分支上 git checkout 切换分支 git branch 查看分支列表 git branch -v 查看所有分支的最后一次操作 git branch -vv 查看当前分支 git brabch -b 分支名 origin/分支名 创建远程分支到本地 git branch --merged 查看别的分支和当前分支合并... 本篇文章主要给大家介绍 Git 怎么用即 Git 的初步使用。 Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。那么在之前的文章中,已经详细得给大家介绍过 Git 是什么以及 Git 工具的安装,需要的朋友可以先参考了解下。我们在本地安装好 Git 工具后,该怎么开始使用呢?下面我们就给大家介绍 Git 工具的初步使用。首先我们可以随便打开一个文件夹,鼠标点击右键,可以出现以下标记。这里我们就可... 获取与创建项目 命令 git init用 git init 在目录中创建新的 Git 仓库。 你可以在任何时候、任何目录中这么做,完全是本地化的。在目录中 执行 git init,就可以创建一个 Git 仓库了。比如我们创建 runoob 项目:$ mkdir runoob$ cd runoob/$ git initInitialized empty Git repository in /Users/t... 开发中我们想推送代码到 git 仓库的时候,在测试环境立马就能看到是什么样的,我们可以通过 git 仓库的webhook钩子配置的,在推送代码到 git 仓库的时候,仓库收到代码,然后可以访问一个url,然后你在这个url写段代码 执行 更新代码的 命令 php 代码 <? php exec("cd /usr/local/nginx/html/yafcms && sudo g... 常用 命令 速查壁纸:1、常用的 Git 命令 git add添加至暂存区 git add-interactive交互式添加 git apply应用补丁 git am 应用邮件格式补丁 git annotate同义词,等同于 git blame git archive 文档归档打包 git bisect二分查找 git blame文件逐行追溯 git branch分支管理 git cat-file版本库对象研究工具 git ch... git 命令 实践, git 命令 一、 命令 git checkout -b 分支名 //创建分支并切换到该分支 git checkout 分支名 //切换到该分支 git merge 分支名 //把分支合并到当前分支 git branch -d 分支名 //删除该分支 git branch -D 分支名 //强制删除该分支 git log|head //最近一次记录 git log --pretty=oneline /... 使用场景:在运维管理中搭建一个可视化的版本控制和代码提交上线部署的平台是非常必要的。在这种情况下运维人员在linux的terminal中使用 命令 行或者 git 工具来不是很方便。我们需要的方式是使用webhook自动部署或者一个网页界面化的操作面板来控制。本文和之前的文章《CentOS上搭建 git 服务以及界面化管理_centos下gogs+nginx+mysql实现私有 git 服务》是承接关系。如...