这是我经历过的最难诊断的问题。我似乎无法调用:
exec('call git pull', $output);
该进程挂起,并且往往会导致 IIS 一起挂起。
exec('call git status', $output); //works fine
这是我所做的:
- 生成的 RSA 密钥已添加到 github(密码为空)
- 每个人都有权限
mysite/.git/
, and Program Files/git/bin
and cmd.exe
- 尝试了其他帖子中提到的 ssl 证书修复,并解决了“斜线”问题
- 尝试使用 https:// 而不是 SSH
- 尝试通过管道连接到 stderr
2>NUL
and 2>&1
显然,存在权限问题exec
calls cmd.exe
这又调用git.exe
,这又调用sh.exe
连接到 github,而 github 又利用git-pull
并且可能git-send-pack
天知道还有什么。
我猜测“sh.exe”确定当前用户是 IUSR 并且无法找到用于身份验证的 RSA 密钥。
如果我能弄清楚如何ssh-keygen
IUSR 帐户,我会尝试一下。
如果我能弄清楚如何exec
git bash 而不是 git (通过cmd.exe
)我会尝试的。
这是最简单形式的问题:
如何通过 PHP 从我的 github 存储库中提取内容exec
method?
问题似乎确实出在 SSH 上,但我已经完全无法尝试了。
Help!
我今天遇到了同样的问题,并使用 Process Monitor 查看发生了什么,发现由于某些原因sh.exe
寻找钥匙C:\Windows\SysWOW64\config\systemprofile\.ssh
。所以我复制了所有内容C:\Users\Administrator\.ssh
到该文件夹,它工作得很好。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)