首先,这是我第一次设置 webhook,我对 Windows 服务器不熟悉。我已经看过很多关于此的帖子,但我仍然无法解决这个问题 - 可能是由于我对 Windows 服务器和权限缺乏了解。
我有一个 Windows 2008 R2,我希望能够在将更改推送到外部 GIT 存储库后通过 PHP 脚本自动 pull 。
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 key 的权限。使用 Windows CMD(不是 Git Bash)运行这两个脚本虽然有效
所以我的烦恼是:
我不敢进一步摆弄,因为这是为了生产。
谢谢!
最佳答案
很可能您已经为当前用户存储了 git 凭据,但是当 Web 服务器 (IIS_IUSRS) 执行 git 命令时,没有凭据,因此要求输入用户名和密码。这然后挂起脚本。
你可以试试:
请参阅此处了解如何存储 Git 凭据:https://confluence.atlassian.com/display/STASH/Permanently+authenticating+with+Git+repositories
关于php - 在 IIS 上通过 PHP 设置 git 部署时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22165150/