0

我正在尝试在 Windows 7 上的 NetBeans 中调试本地 Wordpress 实例(在 xampp 上)。由于某种原因,位于网络服务器根目录中的任何文件之外的断点都会被忽略。

我已经用谷歌搜索了很多年,但无济于事。我读过SO1SO2SO3SO4SO5SO6,也无济于事。所有这些 SO 都提到了路径映射。我已经映射了我的所有文件夹,但是由于我的项目文件夹与我的项目文件夹相同,因此这些映射完全相同。此外,xdebug 日志中的路径指向正确的文件(见下文)。

仅当在网络服务器根目录中的一个文件(在我的情况下为“wp-develop”)中调用它时调用xdebug_break();才有效,所以我怀疑我没有正确映射路径。

我的 php.ini 文件中与 xdebug 相关的部分如下所示:

[XDebug]
zend_extension = "C:\xampp\php\ext\php_xdebug.dll"
xdebug.profiler_append = 0
xdebug.profiler_enable = 1
xdebug.profiler_enable_trigger = 0
xdebug.profiler_output_dir = "C:\xampp\tmp"
xdebug.profiler_output_name = "cachegrind.out.%t-%s"
xdebug.remote_enable = On
xdebug.remote_handler = "dbgp"
xdebug.remote_host = "localhost"
xdebug.remote_port=9000
xdebug.trace_output_dir = "C:\xampp\tmp"
xdebug.var_display_max_depth = -1
xdebug.var_display_max_children = -1
xdebug.var_display_max_data = -1
xdebug.remote_log = "C:\xdebugremotelog.txt"  

xdebug 日志的输出如下所示:

<- breakpoint_set -i 122 -t line -s enabled -f file:///c:/xampp/htdocs/wp-develop/wp-content/themes/gap/gap.php -n 32
-> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="breakpoint_set" transaction_id="122" state="enabled" id="81240001"></response>

c:/xampp/htdocs/wp-develop/wp-content/themes/gap/gap.php是正确的路径。

我在这里想念什么?任何帮助,将不胜感激。

事实上,我想我可能做错了路径映射。有人可以给我一个他们应该看起来如何的例子吗?

4

1 回答 1

1

我在 Windows 系统上遇到过类似的问题:Eclipse 断点适用于任何 php 命令行项目,但不适用于任何 Web 应用程序。我花了两个小时来解决这个问题。

请检查您的 Web 服务器是否正在侦听 127.0.0.1 地址而不是“localhost”。为什么 ?因为从 Vista 开始,Windows 使用 ipv4 连接到 127.0.0.1,而使用 ipv6 连接到“localhost”地址。

因此,解决方案是在所有调试堆栈上使用 ipv4:

启动 php 内置网络服务器(任何或其他)以侦听 127.0.0.1

我希望这会帮助你

来自意大利的问候

于 2014-03-30T18:36:31.750 回答