在 Eclipse 的 XDebug 中,远程路径如何映射到本地路径?

In XDebug for Eclipse, how are remote paths mapped to local paths?

尽管我现在意识到让 Eclipse 在您的断点处停止的技巧,当从 POST 执行 PHP 脚本并从 ajax/curl 执行 GET 请求时,确保XDEBUG_START_SESSION 变量设置在所有你希望调试器知道的请求中,这似乎只有当你在网络服务器上的所有路径都是正常的相对类型时才有效。

但是,如果您碰巧在网络服务器上有一些别名路径,例如通过 httpd Alias 指令,XDebug 将无法将您工作区中的文件路径与它们在网站 URL.

我有以下目录设置:

Web 服务器的设置方式如下:

ServerName test.local
DocumentRoot "C:\Users\me\projects\testproject\start\here"
Alias /post "C:\Users\me\projects\testproject\post"

<Directory "C:\Users\me\projects\testproject">
    Require all granted
</Directory>

我认为这就是路径映射选项卡的用途,可在 Debug Configurations -> Server -> Configure... -> Path Mapping 中找到。无论我在哪里看,我都被告知将 Path on server 设置为目录或文件的网络服务器上的文件系统路径,并将 Local path 设置为其在文件系统或工作区中的路径。我还尝试将 Path on server 设置为我想映射到 Local path 的站点 URL 路径,但是这两种配置都不会导致 POSTed [=48] 中的一行中断=] 脚本.

我打开了 XDebug 的日志记录,以比较它正确停止的断点的消息,因为它在调试器启动的文件中,以及通过 POST 执行的脚本中的断点请求,不幸的是没有停止。如果 /post 路径对应于 DocumentRoot 的 post 目录,它将在此文件中停止,但如果 post 目录在其他地方并且 "fake" 则不会] /post 站点中的路径 URL 是它的别名。

在我的 XDebug log file 中,index.php 中的第 28 行有几个日志条目,它正在正确破坏该文件。 message.php 中的第 3 行也有一个条目,URL-encoded 路径看起来是正确的,但我没有看到相同类型的条目。

如何配置 Eclipse 才能知道服务器上的 /post 意味着工作区中的 /My Project/post

哦,天哪...这只是将 接受远程会话 (JIT) 设置为本地主机的问题,在我的情况下,或者 off 以外的任何设置:

很高兴确认这从根本上起作用,但我仍然对为什么它不在一个更复杂的项目中感到困惑。运气好的话,我会有更多的分享...