【发布时间】:2020-07-10 09:36:31
【问题描述】:
我正在尝试使用 PhpStorm 和 Laradock 配置 Xdebug。
我从这个开始: https://laradock.io/documentation/#install-xdebug
我可以看到 Xdebug 正在运行:
php-fpm/xdebug status
with Xdebug v2.9.6, Copyright (c) 2002-2020, by Derick Rethans
我添加了一个断点,调试器没有停止。
谁能看出我做错了什么?
我的项目位于服务器上的/code/test 中,即/var/www。
Laradock 在/code/laradock
更新: Xdebug 日志显示:
[6] Log opened at 2020-07-10 10:44:55
[6] I: Connecting to configured address/port: host.docker.internal:9000.
[6] E: Time-out connecting to client (Waited: 200 ms). :-(
[6] Log closed at 2020-07-10 10:44:55
更新:
将 ini 更改为此(以及 IDE 中的端口):
xdebug.remote_host=192.168.68.101
xdebug.remote_connect_back=0
xdebug.remote_port=9001
[6] Log opened at 2020-07-10 12:11:03
[6] I: Connecting to configured address/port: 192.168.68.101:9001.
[6] E: Time-out connecting to client (Waited: 200 ms). :-(
[6] Log closed at 2020-07-10 12:11:04
【问题讨论】:
-
1) 您的第二张屏幕截图(路径映射):您已将远程
/var/www/test路径映射到本地项目根目录和子文件夹...这显然是错误的。 2) 显示您的 Xdebug 设置(phpinfo()输出捕获的方式与您尝试调试它的方式相同:无论是浏览器还是 CLI - 这很重要,因为它可能有单独的 php.ini fo CLI 和 Web 服务器 - 我'我自己没有使用 Laradoc,所以对此不确定)。问题必须在于使用默认 TCP 9000 端口——php-fpm 默认也使用该端口。启用并收集 Xdebug 日志——它会告诉你它尝试连接的位置(如果它尝试连接的话)。 -
现在我可能会建议:1) 在 php.ini 和 PhpStorm 中将 Xdebug 端口更改为 9001(以防万一)。 2) 确保“电话手柄”图标打开(因此 IDE 正在侦听传入的 Xdebug 连接)。确保 PhpStorm 是侦听该端口的那个(例如 sudo lsof -nP -iTCP -sTCP:LISTEN` 或类似的)。日志说它根本无法连接。可能是防火墙,IDE 没有监听 .. 甚至可能是一些 Docker 设置...
-
P.S. 当您使用新信息编辑您的帖子时留下评论 - 无法保证试图帮助您的人会定期检查您的帖子以获取更新...
-
顺便说一句-您使用的是什么操作系统?根据您的屏幕截图,它看起来像 Ubuntu 或其他 Linux,对吗?如果是这样——
host.docker.internal在 Linux 上不起作用(仅在 Windows 和 Mac 上)。 github.com/docker/for-linux/issues/264你需要使用一些变通方法来检测正确的IP地址 -
Ubuntu,刚刚从 ifconfig 获取了我的 ip 并将其添加为 xdebug.remote_host。我认为 remote_connect_back 应该可以工作。
标签: laravel phpstorm xdebug laradock