Xdebug 一个应用程序触发来自其他应用程序的调试连接?
Xdebug one applications triggers debug connection from other?
我的机器上有两个独立的 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 触发了调试启动(如预期的那样)。
知道这怎么可能吗?对于浏览器,我使用 Chrome 和 Xdebug 扩展。
app-b
导致 app-a
调试的问题是因为我禁用了 Ignore external connections through unregistered server configurations
。启用此选项可以防止这种情况。
localhost:89
没有初始化调试会话的原因是我的 Laravel 设置。我最初使用的是 Laravel 8 的旧版本(虽然我更新到最新版本,但 docker-compose 文件是从旧版本的 sail 复制的)。特别是,我遗漏了以下条目:
environment:
WWWUSER: '${WWWUSER}'
LARAVEL_SAIL: 1
XDEBUG_MODE: '${SAIL_XDEBUG_MODE:-off}'
XDEBUG_CONFIG: '${SAIL_XDEBUG_CONFIG:- client_host=host.docker.internal}'
extra_hosts:
- 'host.docker.internal:host-gateway'
添加这些条目以及浏览器中的调试插件使调试工作顺利进行。
我的机器上有两个独立的 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 触发了调试启动(如预期的那样)。
知道这怎么可能吗?对于浏览器,我使用 Chrome 和 Xdebug 扩展。
app-b
导致 app-a
调试的问题是因为我禁用了 Ignore external connections through unregistered server configurations
。启用此选项可以防止这种情况。
localhost:89
没有初始化调试会话的原因是我的 Laravel 设置。我最初使用的是 Laravel 8 的旧版本(虽然我更新到最新版本,但 docker-compose 文件是从旧版本的 sail 复制的)。特别是,我遗漏了以下条目:
environment:
WWWUSER: '${WWWUSER}'
LARAVEL_SAIL: 1
XDEBUG_MODE: '${SAIL_XDEBUG_MODE:-off}'
XDEBUG_CONFIG: '${SAIL_XDEBUG_CONFIG:- client_host=host.docker.internal}'
extra_hosts:
- 'host.docker.internal:host-gateway'
添加这些条目以及浏览器中的调试插件使调试工作顺利进行。