0

当 Windows 客户端尝试在此服务器上打开网站时,我们在开发服务器上运行 xdebug 时遇到问题。服务器向客户端发送一个 xdebug 请求,如果没有客户端应用程序(例如 phpstorm)在 xdebug 端口上侦听,该请求似乎会卡在 windows 防火墙中。这会导致尝试从开发服务器打开网站的浏览器超时。

问题似乎是 Windows 防火墙的隐身模式无法禁用,并且不会将 ICMP Port Unreachable 发送回调试服务器。

迄今为止发现的唯一解决方案是完全为内部域关闭防火墙。

有没有机会摆脱这种行为,而不必在网络中的任何 Windows 客户端上安装特殊软件来尝试在开发服务器上打开网站?

以下选项之一对我们来说是一个很好的解决方案 - 但我们不知道如何实现它:

  • 对子域进行特殊的 php / xdebug 配置
  • 更改 xdebug 端口上 Windows 防火墙的行为

由于某种原因,以下选项被丢弃:

  • 在每个 Windows 客户端上安装一个客户端应用程序(例如 PHPStorm)监听相应的端口。
  • 完全关闭windows防火墙。
  • 完全关闭 xdebug 或在每个请求上都需要特殊的请求参数。
4

1 回答 1

0

我正在运行 Windows 7、EasyPHP 13.1 开发服务器和 NetBeans 7.3.1。当我点击“调试”时,我的网络浏览器(chrome)只会等待一个从未出现过的页面。我通过断开与 Internet 的连接然后关闭 Windows 防火墙来确定 Windows 防火墙是问题所在。

我的解决方案是允许更多程序通过防火墙。控制面板 -> 系统和安全 -> windows 防火墙 -> 允许程序或功能通过 windows 防火墙。为了安全起见,我添加了许多可执行文件,但我很确定它授予了 php 可执行文件(php.exe 和 php-win.exe)的权限。

于 2013-06-25T13:43:16.003 回答