Windows 下用php exec执行git pull遇到的问题及解决方案

发布时间:2019-08-08 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了Windows 下用php exec执行git pull遇到的问题及解决方案脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

Windows下用php exec执行gIT pull遇到的问题及解决方案

具体环境是这个样子的,代码仓库在oschina上面,和网站不在一个服务器上,只能是采用webhook这种方法,在网页更目录设置一个php文件,进行手动更新(不是每次都想自动更新)。

完整代码如下

<?php
exec("git pull 2>&1",$out);
VAR_export($out);

git的全局环境是执行的 C:PRogram FilesGitcmdgit.exe。需要自行检查添加环境。


第一个问题

exec("git pull ",$out);
var_export($out);

用cmd执行git pull的时候相当完美,刷刷的就更新下来了,但是当执行这个代码的时候发现返回的内容为空,而且还tm的没有更新下来,经过查阅资料,发现应该添加 2>&1,
具体原因如下:

Windows 下用php exec执行git pull遇到的问题及解决方案


加上输出重定向之后,有了第二个坑


第二个问题

array ( 0 => 'Host key verification failed.', 1 => 'fatal: Could not read from remote repository.', 2 => '', 3 => 'Please make sure you have the correct access rights', 4 => 'and the repository exists.', )

居然出现了这个问题,用exec执行不能读取用户目录.ssh文件的公钥。
又经过一番折腾,查阅资料,也借鉴这个哥们的答案,但是没有解决我的问题
http://blog.csdn.net/thy38/ar...
最后在这个哥们的博客的提示下
http://www.jianshu.com/p/a0e7...
开始查看哪个.ssh文件下面没有公钥,最后用everything查询.ssh文件

Windows 下用php exec执行git pull遇到的问题及解决方案


最后发现第一个文件里面没有id_ras.pub,拷贝当前用户的pub文件过去后,问题解决了。。


后记:仅发此文以帮助更多的人!

脚本宝典总结

以上是脚本宝典为你收集整理的Windows 下用php exec执行git pull遇到的问题及解决方案全部内容,希望文章能够帮你解决Windows 下用php exec执行git pull遇到的问题及解决方案所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。