首页 > 解决方案 > 在 docker-compose 中使用 PhpStorm/Idea 和 Symfony 进行 Xdebug:仅在第一个文件 index_dev.php 处中断

问题描述

我正在使用带有 PHP 插件的 Idea Ultimate。 phpinfo()似乎没问题,我已经用想法脚本验证了配置。

在此处输入图像描述

使用的请求是http://localhost:8080/web/index_dev.php/create-file. 我可以在 index_dev() 的任何位置放置断点或使用 xdebug_break();

但是我不能稍后停止一个文件,例如 Symfony 控制器。

我有一条消息说Debug session was finished without being paused并建议在 docker 实例和我的本地卷之间建立映射。

在此处输入图像描述

对我来说看起来不错,它能够index_dev.php在这个主目录中找到。

那么问题出在哪里?

标签: phpsymfonydockerxdebug

解决方案


首先,你需要检查 IP 地址,我假设你在 linux 上。所以尝试制作

ifconfig

然后,找到“docker0”行,取“inet”值。用它替换您的远程主机值。通常 docker ip 地址类似于“172.17.0.1”。

请同时检查您是否在 docker Xdebug 配置中定义了 idekey

idekey=PHPSTORM

所以改变它并尝试再次运行。

如果它不能解决您的问题,请考虑在 PHPStorm 中正确配置 xdebug 远程服务器。

  • Settings > Languages & Frameworks > PHP > Debug中:将默认端口更改为 9000
  • Settings > Languages & Frameworks > PHP > Servers 中使用这些信息创建服务器

    1. 名称:随便你
    2. 主机:您的应用主机(我的通常是“本地主机”)
    3. 端口:你的应用程序端口(我的 80)
    4. 单击“应用”,然后单击“确定”
    5. 关闭设置
  • 现在您必须配置要监听连接的远程调试

    1. 在 PHPSTORM 左上角,点击“编辑配置
    2. 单击+并选择PHP 远程调试
    3. 输入您想要的任何名称 4 服务器:选择在设置面板中创建的上一个服务器
    4. 输入IDE_KEY:PHPSTORM
    5. 单击“应用”,然后单击“确定”
    6. 然后点击小“甲虫”(将鼠标移过时,会弹出“ Debug '{name of remote server you defined before}'

    7. 在要调试的控制器的第一行添加断点

    8. 在浏览器中,转到匹配的路线
    9. 然后魔术发生了!!!!

希望对您有所帮助。


推荐阅读