想要 Xdebug -- 使用 Win10 WSL Ubuntu 20、vscode

在Laravel中启动一个新项目。在Win10 v2004 (2020年4月)下使用最新的WSL2而不是Homestead。一切都很好。现在我勇敢地想要使用Xdebug来设置 PHP 断点。我已经在WSL中的Ubuntu 20中安装了Xdebug。


~/STGdev/lv $ php -v

PHP 7.4.3 (cli) (built: May 26 2020 12:24:22) ( NTS )

Copyright (c) The PHP Group

Zend Engine v3.4.0, Copyright (c) Zend Technologies

    with Xdebug v3.0.0-dev, Copyright (c) 2002-2020, by Derick Rethans

    with Zend OPcache v7.4.3, Copyright (c), by Zend Technologies

我无法让任何断点工作。最大的问题是 --- vs code Xdebug扩展是否使用Ubuntu PHP还是需要我在 Windows 下安装XAMPP PHP ?说明中暗示可以使用其中之一吗?


慕莱坞森
浏览 186回答 3
3回答

弑天下

您不需要安装 XAMPP,所有设置都由安装了 PHP 的 WSL 管理。我在 Windows 10 21H2 中使用 WSL2 (Ubuntu 20) 有一个带有 docker 的 Laravel 项目,这是我使 xdebug 工作的设置。我使用 Xdebug 2.9.8,xdebug.ini 中的文本有一些更改,但大部分是相同的。PHP 7.1.33 (cli) (built: Nov 22 2019 18:34:33) ( NTS )Copyright (c) 1997-2018 The PHP GroupZend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies    with Xdebug v2.9.8, Copyright (c) 2002-2020, by Derick Rethans如果您使用将项目/文件从 Windows 挂载到 WSL2 环境xdebug.inixdebug.remote_enable = Onxdebug.remote_autostart = Onxdebug.remote_connect_back = Offxdebug.remote_host = "host.docker.internal"xdebug.remote_port=9009 DockerfileFROM php:7.1-fpmRUN pecl install xdebug-2.9.8 \&& docker-php-ext-enable xdebugCOPY xdebug.ini /usr/local/etc/php/conf.d/Docker-compose.ymlservices: webapp:  working_dir: /var/www/html  volumes:  - ./my-project-folder:/var/www/html进入您的项目文件夹,输入code .以使用 WSL 打开项目,然后创建调试文件 (launch.json):(通过单击扩展并选择“启用”在 WSL 中启用 PHP Xdebug 扩展)"name": "Listen for Xdebug","type": "php","request": "launch","port": 9009,"pathMappings": {    "/var/www/html": "${workspaceFolder}"}如果您使用 wsl 文件系统(在 wsl 环境中克隆您的项目,而不是从 Windows 挂载它):设置几乎与 (1) 类似,但您需要一些额外的修改:Docker-compose.ymlextra_hosts:  - "host.docker.internal:host-gateway"VS Code 的 launch.json"hostname": "0.0.0.0",就这样。根据我的经验,第二种方法比第一种方法快得多。

缥缈止盈

您有两个选项来启用调试:使用VSCode Remote - WSL 扩展,让 VSCode 为您配置其他所有内容在 php.ini 中配置 XDebug远程配置我的建议是使用 WSL 扩展方法。请记住,如果您决定使用扩展方法,则会出现 Git 无法正确识别修改后的文件的问题

侃侃无极

您已经安装了 XDebug 3。Xdebug 的版本 3 改变了您需要配置其设置的方式。最重要的重大变化是监听端口现在是9003而不是9000。这是我的本地主机中 Xdebug 3 的php.ini配置(它应该可以在任何地方工作):[xdebug]zend_extension="C:\xampp\php\ext\php_xdebug-3.0.4-7.4-vc15-x86_64.dll"xdebug.mode=develop,debugxdebug.client_host=127.0.0.1xdebug.client_port=9003xdebug.start_with_request=trigger更改 Xdebug 扩展的路径,您现在应该可以调试代码了。
打开App,查看更多内容
随时随地看视频慕课网APP