让 Xdebug 与 Laravel Sail + PhpStorm 配合使用

问题描述 投票:0回答:1

我现在已经花了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 脚本中的第一行中断”,但仍然什么都没有。

任何帮助将不胜感激。 🙏

laravel phpstorm xdebug wsl-2 laravel-sail
1个回答
0
投票

我的 dockerfile 已经完全过时了。我什至不知道到底哪里出了问题,但我通过创建一个全新的 laravel sail 项目、复制 8.0 docker 文件、将所有内容更改为 7.4、将节点更改为版本 18 来修复它。并且构建成功,并且 xdebug 3.1。 2 现已安装并运行。

© www.soinside.com 2019 - 2024. All rights reserved.