2012-02-19 30 views
2

我正在尝试将github设置为websever部署自动化。除了最重要的一点,我已经做好了一切工作。我有一个文件@ mydomain.com/github.php看起来像这样:'git pull'在SSH中执行,但不在github中后接收脚本

<?php 
`git pull`; 
?> 

,这是 - 接收帖子的网址为我的github回购。 Github成功发布,但shell命令没有运行。当我尝试ssh方式连接到我的服务器,并直接运行该脚本:

php github.php 

只是正常工作和更改的文件被成功地拉到

From git://github.com/user/Repo 
    7e3176d..f889c14 master  -> origin/master 

,但在我的浏览器或当github上的POST访问该页面时到它 - shell命令不执行。没有错误 - 只是一个空的结果。我在这里做错了什么?

+1

我从来没有见过PHP语法前 – Vitamin 2012-02-19 20:05:20

+2

http://php.net/manual/en/language.operators.execution.php我刚才了解到它有一天我自己:) – Yev 2012-02-19 20:06:05

+0

试试<?php echo''git拉''?> – Kuba 2012-02-19 20:07:35

回答

3

有2个可能的问题:

  1. 权限 - 最有可能你的web服务器的用户没有必要
  2. 工作目录。仔细检查了在正确的路径执行你的shell命令(getcwd()

UPD

Git的输出错误信息发送到stderr,所以看到你需要

echo `git pull 2>&1`; 
真正的错误信息
+0

1. I我正在做我的VPS的一个子帐户。我完全可以控制进入并对权限进行必要的更改,但不幸的是我不确定我将如何/在哪里执行此操作。你能给我一些指导,我将如何检查和设置适当的权限? 2.当前工作目录是正确的。 “ – Yev 2012-02-19 22:12:31

+0

”错误:无法打开.git/FETCH_HEAD:权限被拒绝“是我收到的错误。 – Yev 2012-02-19 22:20:05