Windows本地Drupal 10开发环境出现GuzzleHttp连接拒绝错误排查
解决Windows本地Drupal 10开发环境Guzzle连接拒绝问题
问题核心
浏览器能正常访问目标URL,但本地Drupal的Guzzle请求、命令行ping都报连接拒绝,本质是不同环境的网络配置不统一,比如代理、DNS解析、权限隔离等差异导致的。
具体解决办法
1. 同步代理配置
浏览器可能自动使用了代理,但PHP(Guzzle)和命令行没继承这个设置:
- 先查系统代理:打开「设置」→「网络和Internet」→「代理」,记下代理地址(比如
127.0.0.1:7890)。 - 给Guzzle手动加代理:在模块的请求代码里补充代理参数:
$client = new \GuzzleHttp\Client([ 'proxy' => 'http://127.0.0.1:7890', // 替换成你的实际代理地址 ]);
- 命令行临时设置代理:打开CMD输入以下命令,之后重启本地开发服务器(XAMPP/WAMP等):
set HTTP_PROXY=http://127.0.0.1:7890 set HTTPS_PROXY=http://127.0.0.1:7890
2. 修复DNS解析差异
浏览器可能用了自定义DNS,而系统默认DNS解析不到目标域名:
- 先查目标IP:浏览器按F12打开开发者工具→「网络」标签,找到目标请求,查看「远程地址」里的真实IP。
- 修改hosts文件:用管理员权限打开记事本,编辑
C:\Windows\System32\drivers\etc\hosts,添加一行IP映射:
192.168.xxx.xxx auth.mywebsite.io
- 刷新DNS缓存:CMD里输入
ipconfig /flushdns。
3. 排查防火墙/安全软件拦截
部分安全软件会拦截非浏览器发起的HTTPS请求:
- 临时关闭Windows Defender防火墙:「控制面板」→「Windows Defender防火墙」→「关闭防火墙」(仅测试用,之后务必重新开启)。
- 检查第三方安全软件(360、腾讯电脑管家等)的拦截规则,把本地服务器进程(apache.exe、php.exe)加入白名单。
4. 容器化环境的网络适配
如果用Docker运行Drupal,容器网络可能和宿主机隔离:
- 将容器网络切换为桥接模式,或者在Dockerfile中添加代理环境变量:
ENV HTTP_PROXY=http://host.docker.internal:7890 ENV HTTPS_PROXY=http://host.docker.internal:7890
内容的提问来源于stack exchange,提问作者Happy Coder
相关产品推荐
相关产品推荐

