【发布时间】:2021-12-11 06:36:39
【问题描述】:
我的机器上有两个独立的 Laravel 8 应用程序。
我在.env 中设置SAIL_XDEBUG_MODE=develop,debug 并使用no-cache 标志构建容器。
这些是我的 PHP/DEBUG 条目:
“PHP | 服务器”中没有条目。
这是我无法对自己解释的最奇怪的事情:
一个容器正在监听端口 localhost:89(文件夹 app-a),另一个容器监听端口 localhost:8083(文件夹 app-b)。
当我使用 PhpStorm 打开项目文件夹 app-a 并在 index.php 处设置断点并启用侦听调试连接时,当我打开 localhost:89 时没有任何反应。但是,当我打开 localhost:8083 时,调试突然开始了?
为什么一个应用程序会触发我的另一个应用程序的调试?
当我使用 PhpStorm 打开文件夹 app-b 时,只有 localhost:8083 才会触发调试启动(如预期的那样)。
您有什么想法吗?对于浏览器,我使用带有 Xdebug 扩展的 Chrome。
【问题讨论】:
-
在
app-b,你有Ignore external connections through unregistered server configurations enabled吗?触发调试会话的不是 PhpStorm,它们启动是因为您的服务器看到了调试 cookie。除非您启用了此选项,否则我看不出app-b会忽略来自localhost:8083的调试会话的任何原因。 -
@EugeneMorozov no 该选项被禁用,就像在屏幕截图中一样。配置会根据我打开的项目而改变吗?我检查了 app-b 和 app-a,它们都具有相同的配置,并且“服务器”为空。
-
@EugeneMorozov 我刚刚再次对其进行了测试,似乎
app-b确实有效。我的问题是我无法调试app-a -
@Adam 启用 Xdebug 日志,尝试调试并查看它的内容。然后将同一日志与工作项目进行比较。你看有什么不同吗?这是你现在的起点。在不知道它是如何设置的情况下,很难提出任何建议。
-
@EugeneMorozov 启用了
Ignore external connections through unregistered server configurations确实会阻止 app-a 在 app-b 处启动调试。这是因为我没有启用它:D