“git pull”在 SSH 中执行,但不在 github post-receive 脚本中执行

发布于 2025-01-07 06:37:26 字数 500 浏览 1 评论 0原文

我正在尝试将 github 设置为 Web 服务器部署自动化。除了最重要的一点之外,我已经把一切都做好了。我有一个文件 @ mydomain.com/github.php ,如下所示:

<?php
`git pull`;
?>

这是我的 github 存储库的接收后 URL。 Github 已成功发布,但 shell 命令未运行。当我尝试通过 SSH 连接到我的服务器并直接运行脚本时:

php github.php

它工作得很好并且更改的文件被成功拉取,

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

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

I am trying to setup github to websever deployment automation. I've got everything working except the most important bit. I have a file @ mydomain.com/github.php that looks like this:

<?php
`git pull`;
?>

and this is the post-receive URL for my github repo. Github is posting to it successfuly, but the shell command is not running. When I try SSHing into my server, and running the script directly:

php github.php

it works just fine and changed files are pulled succesfully

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

but when accessing the page in my browser or when github POSTs to it - the shell command is not executed. There is no error - just an empty result. What am I doing wrong here?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

柳若烟 2025-01-14 06:37:26

有 2 个可能的问题:

  1. 权限 - 很可能您的网络服务器用户没有必要的
  2. 工作目录。仔细检查您的 shell 命令是否在正确的路径中执行 (getcwd())

UPD

Git 将错误消息输出到 stderr,以便查看您需要的真正错误消息

echo `git pull 2>&1`;

There are 2 possible issues:

  1. Permissions - most likely your webserver user doesn't have necessary
  2. Work directory. Double check that your shell command is being executed in correct path (getcwd())

UPD

Git outputs the error messages to stderr, so to see the real error message you need

echo `git pull 2>&1`;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文