当 Windows 客户端尝试在此服务器上打开网站时,我们在开发服务器上运行 xdebug 时遇到问题。服务器向客户端发送一个 xdebug 请求,如果没有客户端应用程序(例如 phpstorm)在 xdebug 端口上侦听,该请求似乎会卡在 windows 防火墙中。这会导致尝试从开发服务器打开网站的浏览器超时。
问题似乎是 Windows 防火墙的隐身模式无法禁用,并且不会将 ICMP Port Unreachable 发送回调试服务器。
迄今为止发现的唯一解决方案是完全为内部域关闭防火墙。
有没有机会摆脱这种行为,而不必在网络中的任何 Windows 客户端上安装特殊软件来尝试在开发服务器上打开网站?
以下选项之一对我们来说是一个很好的解决方案 - 但我们不知道如何实现它:
- 对子域进行特殊的 php / xdebug 配置
- 更改 xdebug 端口上 Windows 防火墙的行为
由于某种原因,以下选项被丢弃:
- 在每个 Windows 客户端上安装一个客户端应用程序(例如 PHPStorm)监听相应的端口。
- 完全关闭windows防火墙。
- 完全关闭 xdebug 或在每个请求上都需要特殊的请求参数。