PhpStorm调试器从不输入代码,但页面不';调试器运行时,无法完成加载

PhpStorm调试器从不输入代码,但页面不';调试器运行时,无法完成加载,phpstorm,xdebug,Phpstorm,Xdebug,我在Ubuntu上使用PhpStorm,我在Hyper-V机器上运行。我正在尝试用XDebug配置PhpStorm调试器。我在代码中设置了断点,但当我在PhpStorm中单击“开始侦听PHP调试连接”并刷新页面时,调试器从未进入我的代码。调试器必须在执行某些操作,因为浏览器中的页面一直处于加载状态,直到我在PhpStorm中单击“停止”。如果我没有单击调试器以侦听连接,则页面将正确加载 调试窗口显示错误远程文件路径“/var/www/magento2/pub/index.php”未映射到proj

我在Ubuntu上使用PhpStorm,我在Hyper-V机器上运行。我正在尝试用XDebug配置PhpStorm调试器。我在代码中设置了断点,但当我在PhpStorm中单击“开始侦听PHP调试连接”并刷新页面时,调试器从未进入我的代码。调试器必须在执行某些操作,因为浏览器中的页面一直处于加载状态,直到我在PhpStorm中单击“停止”。如果我没有单击调试器以侦听连接,则页面将正确加载

调试窗口显示错误
远程文件路径“/var/www/magento2/pub/index.php”未映射到project中的任何文件路径,但我不知道如何正确映射该路径。在路径映射窗口中的“包含路径”下,它显示了一组路径,但路径
/var/www/magento2/pub
不存在。我找不到任何地方可以添加其他路径。这可能是该文件夹的权限问题吗?我需要什么权限才能允许PhpStorm映射该路径

如果我在
Preferences>Language&Framework>PHP>Servers中取消选中“use path mapping”,并将“Break at first line in PHP scripts”保留为选中状态,那么调试器将在代码的第一行中断,但我不希望在达到断点之前中断

如果我取消选中“使用路径映射”并且没有选中“在PHP脚本的第一行中断”,那么我会得到错误
调试会话在没有暂停的情况下完成。这可能是由于路径映射配置错误或本地和远程项目不同步造成的。要解决此问题,请在PHP服务器上检查“mydomain.local”服务器的路径映射配置,或在PHP脚本选项的第一行启用中断(从“运行”菜单)。

这是我的XDebug配置

zend_extension=xdebug.so

xdebug.remote_autostart=1
xdebug.remote_enable=1
xdebug.remote_handler=dbgp
xdebug.remote_host=127.0.0.1
xdebug.remote_mode=req
xdebug.remote_port=9000
xdebug.var_display_max_depth=-1
xdebug.var_display_max_children=-1
xdebug.var_display_max_data=-1
xdebug.idekey="PHPSTORM"
更新:

以下是对@LazyOne问题的回答

1) 项目根目录的路径是/var/www/magento2

(二)

这里我认为可能与问题有关的一件事是,在
包含路径下,没有显示
/var/www/magento/pub
目录。这就是PhpStorm在我上面描述的第一个错误中引用的内容。这就像PhpStorm发现我的一些目录中有PHP文件,但不是全部

(三)

更新2:

这是我的项目的样子

这是我的目录窗口

我假设所有
vendor/..
目录都位于排除文件夹下的原因是它们位于
.gitignore
中。我在其中设置断点的部分代码位于
供应商
目录之一的子目录中,部分代码位于
app/code/
的子目录中(位于源文件夹下)

我将
/var/www/magento2/pub
添加到
Settings>Languages&Frameworks>PHP
下的
包含路径中。这消除了关于
/var/www/magento2/pub/index.php
的错误。现在它部分工作了。如果我在PHP脚本的第一行有PhpStorm中断,则调试器会在我刷新页面时立即启动。但是,在我跨过第一行代码之后,出现了错误
PHP CS Fixer:无法使用参数正确运行工具…
,然后调试器似乎停止工作

如果我没有在PHP脚本的第一行选择中断,并且我在代码中添加了一个断点,我仍然会得到相同的“调试会话已完成而未暂停”错误


我不确定什么是PHP CS修复程序,也不希望它运行。有没有办法禁用它?

1)项目所在地(路径等)2)路径映射是什么?3) 启用并收集Xdebug日志——它将告诉您它试图调试的文件,等等。1)如果它是本地项目,并且路径中的任何地方都没有使用符号链接,那么您就不需要路径映射。2) 我在那里看到了不止一个调试会话(您应该将其限制为仅一个会话)。在第一个会话中,它尝试调试
/var/www/magento2/pub/index.php
,在第二个会话中,它尝试调试
/var/www/magento2/pub/static.php
;第三个是
/var/www/magento2/pub/get.php
(它与第二个请求并行运行)。然后还有更多的会话……1)您可以在“项目视图”面板中显示项目的外观吗?您需要查看那里有哪些文件夹。尤其是
pub
文件夹(正如您所说,它丢失了)。2) 还请显示
设置/首选项|目录的屏幕截图
——在标记为排除的特定文件夹中(忽略
供应商
文件夹中的composer软件包)。如果排除了
pub
文件夹,则IDE不能停止在那里,“远程文件路径”/var/www/magento2/pub/index.php“未映射到项目中的任何文件路径”是有意义的。。。需要更多关于项目设置的信息。现在它看起来像是IDE侧的错误配置。据我所知,您可能编辑了日志/屏幕截图以隐藏公司名称/网站域?或者它实际上是从mydomain.local提供的,关于多个会话,我认为这是由于Magento的工作方式。我认为它使用JS同时调用多个请求。我只刷新了一次页面。