3 回答
TA贡献1818条经验 获得超8个赞
您不需要安装 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 Group
Zend 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.ini
xdebug.remote_enable = On
xdebug.remote_autostart = On
xdebug.remote_connect_back = Off
xdebug.remote_host = "host.docker.internal"
xdebug.remote_port=9009
Dockerfile
FROM php:7.1-fpm
RUN pecl install xdebug-2.9.8 \
&& docker-php-ext-enable xdebug
COPY xdebug.ini /usr/local/etc/php/conf.d/
Docker-compose.yml
services:
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.yml
extra_hosts:
- "host.docker.internal:host-gateway"
VS Code 的 launch.json
"hostname": "0.0.0.0",
就这样。根据我的经验,第二种方法比第一种方法快得多。
TA贡献2041条经验 获得超4个赞
您有两个选项来启用调试:
使用VSCode Remote - WSL 扩展,让 VSCode 为您配置其他所有内容
在 php.ini 中配置 XDebug远程配置
我的建议是使用 WSL 扩展方法。
请记住,如果您决定使用扩展方法,则会出现 Git 无法正确识别修改后的文件的问题
TA贡献2051条经验 获得超10个赞
您已经安装了 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,debug
xdebug.client_host=127.0.0.1
xdebug.client_port=9003
xdebug.start_with_request=trigger
更改 Xdebug 扩展的路径,您现在应该可以调试代码了。
- 3 回答
- 0 关注
- 185 浏览
添加回答
举报