我正在尝试在以下场景中使用XDebug
192.168.1.240
192.168.1.240 mysite
\\HostIP\html\mysite
访问PHP代码,具有R / W权限我在计算机上创建了一个Netbeans项目,指向\\HostIP\html\mysite
。在项目运行配置中,我有以下内容:
http://mysite/
在高级运行配置中:
我在CentOS VM上的php.ini中有以下内容
;extension=xdebug.so
zend_extension="/usr/lib64/php/modules/xdebug.so"
xdebug.remote_enable=on
xdebug.remote_log="/var/log/xdebug.log"
;xdebug.remote_host=192.168.1.31
xdebug.remote_connect_back=1
xdebug.remote_handler=dbgp
xdebug.remote_port=9000
注意:我尝试使用extension=xdebug.so
配置,并尝试使用取消注释xdebug.remote_connect_back=1
评论xdebug.remote_host=192.168.1.31
,这是我的计算机IP地址。
所以基本上我有像这个图像的所有配置
但仍然无法正常工作!运行后,调试器将打开此URL
http://mysite/index.php?XDEBUG_SESSION_START=netbeans-xdebug
并且没有任何事情会发生,只有netbeans列表等待Xdebug连接
答案 0 :(得分:1)
当我想在远程主机上调试时,我通常需要通过ssh隧道将本地9000端口转发到远程服务器的本地9000:
ssh -R 9000:localhost:9000 username@remote.example.com
在Windows上使用bitvise ssh client或putty来获得相同的效果。
同样在项目设置中 - >运行配置 - >高级按钮
确保指定项目文件的远程和本地完整路径,以便调试器可以附加(不要担心此屏幕中的端口是标准的)。
答案 1 :(得分:1)
我知道这是一个老帖子,但它似乎是我今晚最常遇到的那个。
NAT网络设置是获得最少冲突的方法。在Windows 7防火墙中,设置自定义入站规则,以允许入站流量到端口9000,以用于VM所在的整个/ 24网络(192.168.202 / 24)。
我在php.ini中使用 2.2.7 和 Netbeans 8.0.2 进行XDebug设置:
zend_extension=xdebug.so
xdebug.remote_enable=1
xdebug.remote_connect_back=1
xdebug.remote_port=9000
xdebug.idekey="netbeans-xdebug"
xdebug.show_local_vars=0
;xdebug.extended_info=1
xdebug.output_buffering=off
xdebug.remote_log=/var/log/xdebug.log
最后,我想指出Netbeans 侦听远程文件配置中的远程地址设置。做一个快速netstat -an显示Netbeans正在侦听端口9000,在我的初始桥接网络设置的旧地址上具有CLOSE_WAIT状态。 即使更改了项目URL和远程连接IP地址,并关闭了几个xdebug连接,这也从未改变。只有在关闭Netbeans之后,过时的连接才会丢失。再次启动Netbeans后,新的远程服务器URL将用于远程xdebug连接。
从未讨论过提及处于陈旧状态的Netbeans,并且从IDE中停止xdebug连接的能力给出了重置套接字的错误感觉。
如果它仍然不起作用,请使用VM上提供的调试客户端,使用"访问项目页面??XDEBUG_SESSION_START = netbeans-xdebug"附加到index.php URL,并注意进入的xdebug信息。至少你知道它在本地工作。
答案 2 :(得分:0)
尝试为执行的脚本设置任何断点。当ide不遵守“在第一行中断”标志时,调试会话可能不会显示。
同时检查php.ini中的xdebug.idekey属性是否等于Netbeans设置中的ideKey。