我有这个本地仓库,我进行了更改并运行:
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`;