我正试图在以下场景中使用XDebug
- Windows 7上的物理主机,带有Netbeans 7.1.1
- Ubuntu上的虚拟访客,使用Apache服务器和PHP 5.3.10
- 我网站的PHP代码在Ubuntu上的一个共享文件夹中,位于/var/www/mysite
- PHP代码可以从我的Windows主机''''guestIP''mysite上访问,并具有R/W权限
- 可访问的网站http://mysite.local.fr,来自主人和客人
我在Windows主机上创建了一个Netbeans项目,指向''''guestIP''mysite。在项目Run配置中,我有以下内容:
- 运行方式:本地web服务器
- 项目URL:http://mysite.local.fr
- 索引文件:Index.php(项目中确实存在)
在高级运行配置中:
- 我选中了"每次都询问"(我还尝试过使用"请勿询问"并自己使用会话密钥启动浏览器)
- 我尝试为映射设置"/var/www/mysite"-''''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直接从我的VM进行调试效果良好
有人能告诉我如何让我的调试器从Windows远程工作吗?感谢
对不起,我不能再发表评论了@大卫@JamesB41:我也一直在找这个。我的设置是一个带有NetBeans 7.1的Windows7主机,以及VirtualBox中的Ubuntu虚拟机。我将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->Debugging中设置了选项)但是,它不会在NetBeans创建的断点上停止,因为它是从VM的文件中运行的。不过,您可以使用xdebug_break(),它将显示堆栈和变量如果您在项目配置>运行配置>高级中正确映射文件夹,它将在NetBeans断点处停止并高亮显示。令人惊叹的我完成了。
(connect_back
配置似乎没有帮助,可能是因为没有填充$_SERVER['REMOTE_ADDR']。)
使用NetBeans进行远程调试。很有帮助。http://stuporglue.org/setting-up-xdebug-with-netbeans-on-windows-with-a-remote-apache-server/
In知道这是旧的,但这是一个很好的提醒。如果您在virtualbox中使用nat,请确保将xdebug端口上的端口转发设置回本地机器,默认情况下通常为9000。
另一个选项是将虚拟机配置为与自己的localhost:9000(xdebug的默认值)通信,然后通过ssh从主机到虚拟机,并为该端口建立一个返回主机的端口隧道。然后,您的主机调试器只需连接到localhost:9000,一切都应该像在同一台机器上运行一样正常工作。
请参阅:多用户XDebug和PHP调试
使用Linux+Apache+PHP+xdebug+NetBeans(SFTP)进行远程调试
我有下面的设置,它工作。
主机PC(客户端)
- Linux Debian Jessie**
- NetBeans版本8.0.2
- NetBeans有一个创建为"远程PHP应用程序"的项目服务器",必须进行调试
- NetBeans使用SFTP连接到远程服务器
- IP(例如):192.168.0.2
**我知道OP问题提到了Windows,但关于解决这个问题的主要设置应该在VM上进行,我希望这无论如何都能帮助到一些人。
访客电脑(服务器)/虚拟机
- Linux Debian Jessie
- Apache
- PHP 5.6
- xdebug 2.2.5
- IP(例如):192.168.0.1
应在"访客PC(服务器)/虚拟机"上执行以下步骤
- 安装xdebug
sudo apt-get install php5-xdebug
- 编辑CCD_ 3
在[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
- 重新启动apache
sudo service apache2 restart
参考
如何配置XDebug-远程调试http://wiki.netbeans.org/HowToConfigureXDebug#Remote_Debuging
您需要在上正确配置属性xdebugremote.host远程机器。必须在中定义本地计算机的IP地址此属性。例如,您希望在上调试源代码远程机器192.168.0.1,使用安装在192.168.0.2上的Netbeans。您需要将192.168.0.1上的xdebug.remote_host更改为xdebug.remote_host=1192.168.0.2。如果不起作用,请验证您是否有端口在两台机器上打开的xdebug.remote_port中配置。
如果一切似乎都是正确的,但你仍然从netbeans内部得到"等待连接",你应该在php.ini设置中尝试
xdebug.remote_connect_back=on
因为它允许从任何ip连接,或者查看有关该问题的更多信息http://www.devside.net/wamp-server/netbeans-waiting-for-connection-netbeans-xdebug-issue