我现在已经花了3天时间来解决这个问题,但我无法弄清楚。我正在 WSL2 上使用 Laravel Sail 运行一个项目,我在 IDE 中使用 PhpStorm 并尝试使用 Xdebug 进行步骤调试。该项目是从现有容器构建的,它不是新的,但它是一台新计算机,无论我做什么,我都无法让 Xdebug 工作。
我尝试了几个 .env 变量,包括文件中当前的这些变量:
XDEBUG=true
XDEBUG_MODE=develop,debug
XDEBUG_CONFIG="client_host=host.docker.internal"
SAIL_XDEBUG=true
SAIL_XDEBUG_MODE=develop,debug
SAIL_XDEBUG_CONFIG="client_host=host.docker.internal"
我的 docker compose.yml 有:
environment:
WWWUSER: '${WWWUSER}'
LARAVEL_SAIL: 1
XDEBUG: '${SAIL_XDEBUG:-false}'
XDEBUG_PORT: '${SAIL_XDEBUG_PORT:-9003}'
XDEBUG_MODE: '${SAIL_XDEBUG_MODE:-off}'
XDEBUG_CONFIG: '${SAIL_XDEBUG_CONFIG:-client_host=host.docker.internal}'
并且运行
./vendor/bin/sail exec laravel.test php -v
显示 Xdebug 正在工作
PHP 7.4.3-4ubuntu2.19 (cli) (built: Jun 27 2023 15:49:59) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
with Zend OPcache v7.4.3-4ubuntu2.19, Copyright (c), by Zend Technologies
with Xdebug v2.9.2, Copyright (c) 2002-2020, by Derick Rethans
甚至连 PhpStorm 验证器都是勾选的。
但是我可以设置任何我想要的断点,甚至“在 PHP 脚本中的第一行中断”,但仍然什么都没有。
任何帮助将不胜感激。 🙏
我的 dockerfile 已经完全过时了。我什至不知道到底哪里出了问题,但我通过创建一个全新的 laravel sail 项目、复制 8.0 docker 文件、将所有内容更改为 7.4、将节点更改为版本 18 来修复它。并且构建成功,并且 xdebug 3.1。 2 现已安装并运行。