这似乎应该超越简单,所以我讨厌问。 但是我试过configurationWindows防火墙,允许XDebug在端口9000上连接到PHPStorm而没有成功。
XDebug在具有专用networking连接的Vagrant Box上运行,因此主机具有虚拟networking适配器。 Vagrant是192.168.33.10,主机PC是192.168.33.1。
在禁用Windows防火墙的情况下,XDebug连接到PHPStorm。 但我显然不想离开我的防火墙。
所以我试着在Windows防火墙中用下面的入站规则设置打开一个端口:
但是不能让XDebug连接到PHP风暴。 我也尝试将协议设置为UDP。 而且我知道,如果这个规定确实起作用了,它会过度开放(我可以收紧这个范围),但是现在我只想在收紧之前看到它的运作。
Virtualbox网络主机专用接口存在问题,因为它是回送接口,Windows以不同的方式管理它。
解决这个问题的简单方法是打开“regedit”。 搜索“HKLM:\ system \ CurrentControlSet \ control \ class {4D36E972-E325-11CE-BFC1-08002BE10318}”。 有很多的接口。 只需看一个名为“VirtualBox主机专用以太网适配器”。 然后添加名为'* NdisDeviceType'的新DWORD(32)键和值'1'(十六进制)。 重启。
我不知道是否有必要添加标准的Fw规则,如主机端口9000允许所有,因为我已经有了。
我发现最简单的方法:Windows高级防火墙(您添加/删除规则) – >右键单击 – >属性(另一个地方/禁用本地/域/公共防火墙)
三个示波器(本地/域/公用)中的每一个都有一个设置来完全排除特定的网络接口(!)
打开任何vmware / virtualbox网络接口的Windows防火墙。 (除非您需要针对您的虚拟机)
这将允许从客人到主机的任何连接。
一般来说,不用协议或端口范围来指定规则会更容易。 相反,只要让程序可执行文件有一个防火墙例外的一切。 因此,不要为9000端口创建一个规则,只要创建一个“xdebug.exe”的规则,但不要把它限制在9000端口。
控制面板 – > Windows防火墙 – >点击“允许通过Windows防火墙的应用程序或功能”,然后添加xdebug.exe(或任何可执行文件名称)。 这将添加一组新的入站规则(一个用于UDP,另一个用于TCP)。 回到高级设置页面,找到新创建的入站规则,并检查每个入站规则以确认设置了“范围”复选框(私有,域名,公共)。
有一种方法可以打开防火墙日志记录,以便您可以在防火墙打开时发现阻塞情况。 然后,您可以根据需要添加规则。
http://technet.microsoft.com/en-us/library/cc787462(v=ws.10).aspx
如果除了虚拟适配器外,还有一个NAT适配器,您可以将php.ini中的xdebug配置更改为您机器上物理接口的IP。 最简单的方法是尝试远程登录到9000端口。