doubo9799 2012-03-22 07:42
浏览 91
已采纳

使用Netbeans和XDebug进行远程PHP调试

I'm trying to use XDebug in the following scenario

  • Physical Host on Windows 7, with Netbeans 7.1.1
  • Virtual guest on Ubuntu, with Apache server and PHP 5.3.10
  • the PHP code of my website is on a shared folder on Ubuntu, in /var/www/mysite
  • the PHP code is accessible from my Windows host, on \\guestIP\mysite, with R/W permissions
  • Website accessible from http://mysite.local.fr, from both host and guest

I created a Netbeans project from my Windows Host, pointing to \\guestIP\mysite. In the project Run configuration, I have the following:

  • Run as: Local web server
  • Project URL: http://mysite.local.fr
  • Index file: index.php (does exist in the project)

In the Advanced Run Configuration:

  • I checked "Ask every time" (I also tried using "Do not ask" and starting the browser with the session key myself)
  • I tried setting '/var/www/mysite' - \\GuestIP\mysite for the mapping (and tried using nothing as well)
  • I haven't touched the proxy settings

I have the following in the php.ini on my Ubuntu VM

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

None of this works, Netbeans does not stop at any breakpoint from Windows.

Debugging directly from my VM with Netbeans works fine.

Can someone tell me how to get my debugger to work remotely from Windows? Thanks

  • 写回答

6条回答 默认 最新

  • dtvgo28624 2012-05-16 15:45
    关注

    Sorry, i can't comment anymore. @David @JamesB41: I've been looking for this too. My setup is a Windows 7 host with NetBeans 7.1, and an Ubuntu VM in VirtualBox. I have the NetBeans project set up as a remote project, uploading and downloading using SFTP.

    The following setup works for me, just use your host's IP as remote_host, and make sure the VM can see it.

    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 will stop at the entry point breakpoint (if you have the option set in PHP->Debugging). But, it won't stop on NetBeans-created breakpoints, because its running off the VM's files. You can use xdebug_break() though, and it will show stack and variables. It will stop at NetBeans breakpoints and highlight if you map the folders correctly in project config > Run Config > Advanced. Awesome. I am complete.

    (The connect_back config didn't seem to help, possibly because $_SERVER['REMOTE_ADDR'] isn't populated.)

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?

悬赏问题

  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3
  • ¥15 用matlab 设计一个不动点迭代法求解非线性方程组的代码
  • ¥15 牛顿斯科特系数表表示
  • ¥15 arduino 步进电机
  • ¥20 程序进入HardFault_Handler
  • ¥15 oracle集群安装出bug
  • ¥15 关于#python#的问题:自动化测试
  • ¥20 问题请教!vue项目关于Nginx配置nonce安全策略的问题