1

我有这个本地仓库,我进行了更改并运行:

git add .
git commit -m "message"
git push -u origin master

我的 github 有两个 WebHook 设置,一个转到http://requestb.in URL,另一个转到同一文件夹中的 PHP 可执行脚本 (755)(可从外部访问)。

PHP 脚本:

<?php echo `git pull origin master`; 
// echo "works"; 
// echo `whoami` ?>

注释的测试行正在工作,所以这是我证明脚本路径和语法都可以的证明。

但是,在我将更改从本地推送到 github 存储库后,我检查了服务器上的文件但没有任何反应,显然git pull origin master我的 PHP 脚本的回显什么也没做。

如果我在以 root 身份登录的 shell(git pull origin master)中运行它,则文件将使用 repo 中的最新版本进行更新。

此外,我设置的第二个钩子,来自 requestb.in 的钩子可以正常工作,因为我可以看到来自 github 的请求。

我在服务器上的文件夹具有正确的权限,可以从外部访问,我很绝望,我不知道如何让它工作。

出了什么问题,我怎样才能使它工作?如何在 github 的管理面板中设置 WebHook,或者是 PHP 脚本,是否存在权限问题,出了什么问题?!:O

谢谢你。

在我的 3 条评论之后更新:在处理了几个小时之后,我可以清楚地看到 WebHook 并没有真正启动 php 文件。如果我在以 root 身份登录的 shell 中运行“php test.php”,我会得到:

root@echo [/home/moove/public_html/dev/wert]# php hooh.php 
remote: Counting objects: 5, done.
remote: Compressing objects: 100% (1/1), done.
remote: Total 3 (delta 1), reused 3 (delta 1)
Unpacking objects: 100% (3/3), done.
From github.com:chrisdemetriad/wert
 * branch            master     -> FETCH_HEAD
Updating 0c67b85..89e4fdf
Fast-forward
 XXX.php |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
root@echo [/home/moove/public_html/dev/wert]# 

这是我需要的,并且服务器上的文件得到更新。但是如果我不手动执行,文件不会得到更新,这一定是因为 php 脚本。我的最新版本有效:

<?php echo `git pull origin master`;
4

0 回答 0