我在我的Ubuntu 10.04笔记本电脑上运行PHP 5.3.2,Apache 2.2.14和xdebug 2.2.0rc1,我正在尝试在Netbeans 6.8中的localhost上设置调试。
我的问题是我在Netbeans中设置的断点被忽略了。否则它似乎正常工作。例如,我得到了漂亮的var_dumps,xdebug跟踪,xdebug远程日志,我也可以打勾,以便它在PHP脚本的第一行打破。
基于其他网站和SO问题(例如SO1,SO2,SO3)我已检查了以下所有内容:
在xdebug远程日志中断点的路径是正确的(请参阅此列表下方的代码段,该片段中的路径和其他未显示的路径是正确的)
<- breakpoint_set -i 1014 -t line -s enabled -f file:///var/www/mockup/test.php -n 8 -> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="breakpoint_set" transaction_id="1014" state="enabled" id="135610002"></response>
手动调用xdebug_break()工作
我还尝试在Netbeans项目属性中设置服务器路径和项目路径,因为感觉这可能是问题,但它没有帮助。目前,我的服务器路径为/var/www/mockup
,项目路径为/common/rsync/Dropbox/active-archives/code/Locus/mockup
但是,/var/www/mockup
无论如何都是较长路径的符号链接,所以我甚至不知道这是否有必要?无论我是否指定路径映射,它都不起作用......
答案 0 :(得分:2)
在@ Derick的输入基础上,有效的解决方案是:
/var/www/Locus
localhost/Locus/
换句话说,它不仅是导致问题的源文件路径中的符号链接,而且也是服务器路径中的符号链接。
答案 1 :(得分:1)
Xdebug(通过PHP)尚不支持符号链接(http://bugs.xdebug.org/view.php?id=627存在问题)。 PHP / Xdebug始终使用完全展开的链接,因此您需要确保netbeans设置断点,如:
breakpoint_set -i 1014 -t line -s enabled -f file:///common/rsync/Dropbox/active-archives/code/Locus/mockup/test.php
您必须设置路径映射。在确认breakpoint_set包含正确的路径之后,它应该可以正常工作。
答案 2 :(得分:0)
以下是我修复它的方法:
在我的Mac上的本地xampp环境中,我已经设置了一个映射到apache根目录(/ source / my_project)之外的目录的vhost。我在Net Beans中的项目设置为使用/ source / my_project作为项目的位置。所以我有“无”的URL映射问题,因为我在Apache vhost中使用的路径与我在Net Beans中使用的路径没什么不同。或者也许Apache认为这个目录与Net Beans不同,我无法让路径映射工作。但是,当我将/ source / my_project移动到/ apache / htdocs / my_project并且我将该路径用于我的Net Beans项目源并将我的vhost映射到该目录时,调试器工作正常。附:我在/ source / my_project上设置了版本控制,所以我将my_project更改为符号链接,它仍然在subversion中工作。