【发布时间】:2017-07-19 19:58:30
【问题描述】:
我正在尝试使用 Xdebug 和 Vagrant (Drupal VM) 配置 PhpStorm 2016.2。我已经阅读了许多指导如何配置这三个应用程序的教程。我想它快到了,但我不确定这个错误是什么?
当我单击设置路径映射时,“项目中的文件路径”似乎是问题所在。在 Vagrant 我有:
- /var/www/drupalvm/sitelog/index.php
在我的本地我有:
- /Users/24ma13wg/PhpstormProjects/sitelog/index.php
...但我的项目文件中没有 index.php:
我该如何解决这个问题?谢谢。
【问题讨论】:
-
1) "...但是我的项目文件中没有index.php:" 那是因为你创建了一个项目仅适用于您网站的一部分。 2) “在我的本地我有:
/Users/24ma13wg/PhpstormProjects/sitelog/index.php” -- 你没有 -- 再次比较你的路径 -- 你的截图显示你已经创建了项目在子文件夹中 (/sitelog/modules/sitelog) .. 而index.php应该在/sitelog/index.php-- 现在它在项目之外。 -
没错,index.php 在项目之外。我承认这是一个不寻常的设置。我从 drupal.org 上的 git repo 创建了我的项目,它只包含模块文件。我在它周围添加了其余的站点文件,只是为了获得一个工作站点。你是说要让调试器工作,所有站点的文件都必须在项目中 - 所以我需要重新创建我的项目。抱歉,我不知道所有这些应用程序是如何工作的。
-
嗯......您创建项目的方式可能足以进行实际编码。但这对于调试整个站点可能还不够好——抱歉,我自己不是 Drupal 用户,所以不知道最佳实践等。如果您阅读/观看的教程说它可以通过这种方式进行调试(只有您的模块代码)然后......看起来更深入。现在 IDE 正在寻找
index.php,因为它是您网站的入口点 .. 在项目中找不到它.. 所以从 IDE 方面来看,这表明可能配置错误(这是一个调试会话,文件被执行.. 但是你没有)。 -
IDE 在
Settings/Preferences | Languages & Frameworks | PHP | Debug有选项,特别是 --Force break at first line when a script is outside of the project-- 这是这里必须发生的事情。如果你禁用它..调试器应该忽略这一刻(正在执行的脚本在项目之外)并且应该像往常一样继续运行直到断点被命中(当执行通过 Drupal 的内部并到达它命中的点时您的实际文件)。理论上它应该可以工作(同样:我自己不是 Drupal 用户,所以不能肯定地说明这一点)。 -
一些链接以防万一:1)confluence.jetbrains.com/display/PhpStorm/… 2)confluence.jetbrains.com/display/PhpStorm/…。所以... 1)为您在项目中拥有的代码设置路径映射(对于您当前的项目根,它应该是
/var/www/drupalvm/sitelog/modules/sitelog) 2)禁用上述选项 3)查看我给您的第二个链接 4)尝试调试再次
标签: drupal vagrant phpstorm xdebug