我正在尝试在以下场景中使用XDebug
我从Windows主机创建了一个Netbeans项目,指向\\ guestIP \ mysite。 在项目运行配置中,我有以下内容:
在高级运行配置中:
我的Ubuntu VM上的php.ini中有以下内容
xdebug.remote_enable = on
xdebug.profiler_enable = off
xdebug.profiler_enable_trigger = off
xdebug.profiler_output_name = cachegrind.out.%t.%p
xdebug.profiler_output_dir = /tmp
;xdebug.remote_host=localhost,<HostIP>, mysite.local.fr
xdebug.remote_connect_back=1
xdebug.remote_handler=dbgp
xdebug.idekey="netbeans-xdebug"
xdebug.remote_mode=req
这些都不起作用,Netbeans不会在Windows的任何断点处停止。
使用Netbeans直接从我的虚拟机调试工作正常。
有人能告诉我如何让我的调试器从Windows远程工作吗? 感谢
答案 0 :(得分:15)
对不起,我不能发表评论了。 @David @ JamesB41:我一直在寻找这个。我的设置是带有NetBeans 7.1的Windows 7主机和VirtualBox中的Ubuntu VM。我将NetBeans项目设置为远程项目,使用SFTP上传和下载。
以下设置适用于我,只需将主机的IP用作remote_host,并确保VM可以看到它。
xdebug.remote_enable=1
xdebug.remote_handler=dbgp
xdebug.remote_host=10.217.165.193
xdebug.remote_port=9000
xdebug.remote_log="/tmp/log/xdebug.log"
NetBeans将在入口点断点处停止(如果您在PHP-&gt; Debugging中设置了选项)。 但是,它不会停止在NetBeans创建的断点上,因为它会运行VM的文件。您可以使用xdebug_break(),它将显示堆栈和变量。它将在NetBeans断点处停止并突出显示您是否在项目配置中正确映射文件夹&gt;运行配置&gt;高级。真棒。我完成了。
(connect_back
配置似乎没有帮助,可能是因为没有填充$ _SERVER ['REMOTE_ADDR']。)
答案 1 :(得分:3)
使用NetBeans进行以下文档以进行远程调试。很有帮助。 http://stuporglue.org/setting-up-xdebug-with-netbeans-on-windows-with-a-remote-apache-server/
答案 2 :(得分:1)
知道这是旧的但很好的提醒。确保您是否在虚拟机中使用nat,默认情况下将xdebug端口上的端口转发设置回本地计算机9000。
答案 3 :(得分:0)
另一种选择是将VM配置为与其自己的localhost:9000(xdebug的默认值)对话,然后从主机ssh进入VM,并为该端口建立端口隧道返回主机。然后你的主机调试器只需连接到localhost:9000,一切都应该像在同一台机器上运行一样工作。
答案 4 :(得分:0)
我有以下设置并且有效。
主机PC(客户端)
**我知道OP问题提到了Windows,但是关于这个问题的主要设置应该在VM上进行,我希望这对任何人都有帮助。
来宾PC(服务器)/虚拟机
应在“来宾PC(服务器)/虚拟机”上进行以下步骤
sudo apt-get install php5-xdebug
/etc/php5/apache2/php.ini
,在[Date]
之前添加这些行并更改xdebug.remote_host
以反映您的“主机PC(客户端)”IP:
[debug]
; Remote settings
xdebug.remote_autostart=off
xdebug.remote_enable=on
xdebug.remote_handler=dbgp
xdebug.remote_mode=req
xdebug.remote_host=192.168.0.2
xdebug.remote_port=9000
sudo service apache2 restart
<强>参考强>
如何配置XDebug - 远程执行http://wiki.netbeans.org/HowToConfigureXDebug#Remote_Debuging
您需要正确配置属性xdebug_remote.host 远程机器。必须在中定义本地计算机的IP地址 这个性质。例如,您要调试源代码 远程机器192.168.0.1使用安装在192.168.0.2上的Netbeans。 您需要将192.168.0.1上的xdebug.remote_host更改为 xdebug.remote_host = 192.168.0.2。如果不起作用,请确认您有端口 在两台机器上打开的xdebug.remote_port中配置。
答案 5 :(得分:0)
如果一切似乎都是正确的,但你仍然可以从netbeans内部获得“等待连接”,那么你应该尝试使用php.ini设置
xdebug.remote_connect_back=on
因为它允许从任何IP连接或查看有关该问题的更多信息http://www.devside.net/wamp-server/netbeans-waiting-for-connection-netbeans-xdebug-issue