php git fetch 或 git pull 卡死
git
php
卡死
fetch
pull
gitfetch
无法
编程进阶笔记
发布日期
2022-09-26
更新日期
2022-09-26
阅读次数 162
文章字数 324
在 linux 上开发完毕,转 windows 后发现 git fetch 直接卡死了,重启 php 和 nginx 都无法解决,就挺奇怪。
后面打开 debug ,发现走到 session_start() 就卡死了。
后来想到,session_start() 会锁定文件,也就是在第一次 git fetch 时无响应(至于为什么无响应,我看了一下是因为 windows 用了 https 连接,它默认需要账户密码,所以会直接弹出登录,但在 php 中执行此命令显然无法弹窗,所以就bug了),而后续的请求因为 session 没有释放锁,从而一致无法完成。
解决办法:在 git fetch 前,先释放 session 锁。
<?php
session_write_close();
exec("git fetch",$list);
另外,推荐使用 ssh 方式,可以不需要每次都输入账户密码。
文章作者: 朱丰华
文章链接: https://smart.52dixiaowo.com/blog/post-97.html
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。
git
php
卡死
fetch
pull
gitfetch
无法
发表评论
相关推荐