首先,这是我第一次设置webhooks,我不熟悉Windows服务器。我已经看过很多关于此的帖子,但我仍然无法解决问题 - 可能是由于我对Windows服务器和权限缺乏了解。
我有一个Windows 2008 R2,我希望能够在将更改推送到外部GIT存储库后通过PHP脚本自动提取。
C:\Program Files (x86)\Git\.ssh
,如此处所述(Git can't find .ssh)我在该文件夹中有一个带有'pull'代码的PHP脚本:
exec('"C:\Program Files (x86)\Git\bin\git.exe" pull 2>&1', $output);
var_dump($output);
echo '--done--';
页面上挂着浏览器上的加载图标。没有输出。
但如果做'状态':
exec('"C:\Program Files (x86)\Git\bin\git.exe" status 2>&1', $output);
var_dump($output);
echo '--done--';
我得到了预期的输出。
我猜这可能是由于SSH密钥的权限。使用Windows CMD(而不是Git Bash)运行这两个脚本可以正常工作
所以我的麻烦是:
我不敢进一步提及,因为这是为了生产。
谢谢!
答案 0 :(得分:0)
您很可能已经为当前用户存储了git凭据,但是当Web服务器(IIS_IUSRS)执行git命令时,它没有凭据,因此要求输入用户名和密码。然后挂起脚本。
你可以尝试:
请参阅此处了解如何存储Git凭据:https://confluence.atlassian.com/display/STASH/Permanently+authenticating+with+Git+repositories