我正在使用Netbeans 6.7和XDebug在我的计算机上调试PHP站点,并从Netbeans中启动请求(“项目”->“调试”)。这很好,并且非常有用。
我的问题是:是否可以将调试器附加到传入的任何请求中,而不仅仅是我从Netbeans中启动的那些请求?
即,不要单击“调试”,而是将Netbeans置于启动调试器并附加到下一个传入请求的模式。
我觉得这可能是一个愚蠢的问题,但是如果有可能,那就太好了。
编辑: 更多信息
我的系统(Ubuntu 9.04)设置如下:
内容 /etc/php5/conf.d/xdebug.ini
/etc/php5/conf.d/xdebug.ini
zend_extension=/usr/lib/php5/20060613/xdebug.so xdebug.remote_enable=on xdebug.remote_handler=dbgp xdebug.remote_mode=req xdebug.remote_host=localhost xdebug.remote_port=9000 xdebug.idekey=netbeans-xdebug
Netbeans PHP调试选项为默认设置:
Debugger Port: 9000 Session ID: netbeans-xdebug Stop at the First Line: ticked
我的/etc/hosts文件重定向www.mywebsite.com到localhost
/etc/hosts
www.mywebsite.com
localhost
如果单击Netbeans中的调试按钮,则Firefox的启动地址为http://www.mywebsite.com?XDEBUG_SESSION_START=netbeans- xdebug,调试器将按预期工作。
http://www.mywebsite.com?XDEBUG_SESSION_START=netbeans- xdebug
但是,如果我只是浏览到http://www.mywebsite.com?XDEBUG_SESSION_START=netbeans- xdebug,则不会在Netbeans中启动调试器。
我也尝试过设置xdebug.remote_host=www.mywebsite.com,但这没什么区别。
xdebug.remote_host=www.mywebsite.com
另外,我已经启用xdebug.remote_log,并且显示的是我从netbeans中启动时的信息,但对于外部请求则没有任何信息。因此,我认为XDebug根本看不到外部请求。
xdebug.remote_log
转到 项目属性 > 运行配置 > 高级 > 调试URL, 然后检查 不要打开Web浏览器 (*)。千万 不能 设置在主机 的调试器代理 。保存这些设置。在项目窗口中的项目上: 右键单击 > 调试 (这开始侦听调试连接)。没有启动浏览器。http://www.mywebsite.com?XDEBUG_SESSION_START=netbeans- xdebug在浏览器中输入。它应该打破netbeans。至少那是这里发生的事情:)
(*)您可能还需要设置 路径映射 -对我来说,它无需