Netbeans Xdebug Vagrant连接超时

时间:2014-08-23 18:18:29

标签: php netbeans vagrant xdebug

我正在尝试让xdebug为PHP工作,Netbeans连接到Vagrant配置的VM(如果重要的话,使用PuPHPet进行设置)

我的VM上有这些php.ini设置:

[XDEBUG]
xdebug.remote_connect_back=1
xdebug.default_enable=1
xdebug.remote_autostart=0
xdebug.max_nesting_level=256
xdebug.remote_enable=1
xdebug.remote_log=/tmp/php5-xdebug.log
xdebug.remote_port=9000
xdebug.remote_handler=dbgp
xdebug.idekey=netbeans-xdebug

Netbeans的路径映射正确并设置为本地网站运行。它正确启动带有GET变量的浏览器以开始调试。我的Windows防火墙允许netbeans,我添加了一条规则,允许从我的VM IP到我的本地IP(192.168.56.x地址,所以它是正确的子网)。

从我的VM我可以ping我的主机操作系统。但是在xdebug日志中,我只看到:

Log opened at 2014-08-23 17:43:28
I: Checking remote connect back address.
I: Remote address found, connecting to 192.168.56.1:9000.
E: Time-out connecting to client. :-(
Log closed at 2014-08-23 17:43:28

在我的主机操作系统上,我尝试过netstat并验证Netbeans正在侦听端口9000。 我在Virtualbox中删除 9000上的端口转发,因为我读过我不需要它(最初我有它,但Netbeans抱怨其他人正在监听9000)。

我已经意识到php-fpm也使用端口9000,所以我尝试了9001(在ini中使用php-fpm重启,在IDE中,也验证了IDE正在监听9001)。相同的结果:

I: Checking remote connect back address.
I: Remote address found, connecting to 192.168.56.1:9001.
E: Time-out connecting to client. :-(
Log closed at 2014-08-23 18:11:59

所以现在我已经阅读了所有内容,而且我被困在这里。有什么想法吗?

1 个答案:

答案 0 :(得分:5)

正如我发布的那样,我找到了答案:

$ netstat -r
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
10.0.2.0        *               255.255.255.0   U         0 0          0 eth0
192.168.56.0    *               255.255.255.0   U         0 0          0 eth1
link-local      *               255.255.0.0     U         0 0          0 eth0
link-local      *               255.255.0.0     U         0 0          0 eth1
default         10.0.2.2        0.0.0.0         UG        0 0          0 eth0

注意最后一行。所以我改变了:

xdebug.remote_connect_back=1

xdebug.remote_host=10.0.2.2

它在php-fpm重启后立即起作用了!