Windows系统中Docker wsl环境,使用PHP xdebug调试

我的PHP代码放在wsl的linux格式文件夹中,在windows的文件夹中会有很大的性能损耗。

开发工具使用的vs code。

PHP设置

1. 安装PHP的 xdebug 扩展。

2. 配置 xdebug:

在PHP的 ini 配置文件中添加如下设置:

xdebug.mode=debug

# xdebug与开发工具通信的地址和端口号,这里是 xdebug3 版本的设置
# xdebug2 版本对应的是 xdebug.remote_host 和 xdebug.remote_port
xdebug.client_host=host.docker.internal
xdebug.client_port=9003

xdebug.start_with_request=yes
xdebug.discover_client_host=true

可能得问题:client_host 设置的值“host.docker.internal”正常可以获取到 Docker 所在环境的 ip 地址,如果在测试时 VS Code 没有正常调起调试,可以进入 wsl 中,执行“ip a”查看 wsl 的 ip 地址,例如我的 wsl 地址如下:

然后将 xdebug.client_host 的地址改为 wsl 的 IP,我的 IP 是 172.23.250.175,所以 xdebug 设置 xdebug.client_host=172.23.250.175。

VS Code设置

说明:VS Code 开发 wsl 中的 PHP 项目时,需要 VS Code 先连接到 wsl,打开在项目代码后,VS Code 会提示安装 PHP 相关的插件,这些插件会被安装到 wsl 中,而不是 windows 中。

1. 在 VS Code 的扩展插件中找到 PHP Xdebug 插件并安装。

2. 添加调试配置。

点击创建 launch.json 文件,选择 PHP。VS Code 会在项目根目录的 .vscode 文件夹下生成 launch.json 文件。

3. 编辑 launch.json 文件。

在 configurations 中添加调试监听。

其中“pathMappings”字段用来设置项目在 Docker 容器中的目录。

例如我的项目在 wsl 中的目录是“/home/mycodes/www/test”,在 Docker 容器的路径是“/www/test”,那么这里的设置就是“"/www/test": "${workspaceRoot}"”

{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "监听访问",
            "type": "php",
            "request": "launch",
            "port": 9003,
            "pathMappings": {
                "项目根目录在Docker中的路径": "${workspaceRoot}"#此处为本地文件映射到docker中的路径
            }
        }
    ]
}

开始调试

PHP xdebug 和 VS Code 都设置完成后,就可以开始调试。

1. 打开你的项目文件,设置断点。

2. 开启调试监听。

可以通过 F5 开启,或者在 VS Code 的运行运行与调试中开启:

查看开发工具是否出现调试操作的按键:

3. 访问项目。

可以使用浏览器打开项目网页,或者 API 请求工具发送请求,在 PHP 收到访问请求后,会与 VS Code 进行通信,代码调试开启中:

如果调试监听失败,参考 PHP设置 中 xdebug.client_host 设置的说明,修改为 wsl 的固定 IP 地址。

Swoole调试

从 Swoole 5.1 版本开始可直接使用 xdebug 扩展来调试 Swoole 程序

1. 配置 Swoole 调试

在PHP的 ini 配置文件中添加如下设置:

swoole.enable_fiber_mock=On

2. 开始调试

调试时需注意以下两点:

(1) 需要在运行 Swoole 服务之前开启 xdebug 监听。

(2) 启动 Swoole 服务后添加的断点将不会监听,需要重启 Swoole 服务。

  • 25
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
要在Windows安装DockerWSLWindows Subsystem for Linux),请按照以下步骤进行操作: 1. 检查系统要求: - Windows 10 版本必须为 1903 或更高版本。 - 确保已启用虚拟化技术(BIOS 的 Intel VT-x 或 AMD SVM)。 2. 安装Docker Desktop: - 前往Docker官方网站(https://www.docker.com/products/docker-desktop)下载Docker Desktop安装程序。 - 执行安装程序并按照提示完成安装。 3. 启用WSL功能: - 打开PowerShell或命令提示符(以管理员身份运行)。 - 运行以下命令以启用WSL功能: ``` dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart ``` - 重启计算机。 4. 安装WSL发行版: - 打开Microsoft Store(Windows应用商店)应用。 - 在搜索栏输入Linux发行版的名称,如Ubuntu、Debian等。 - 选择相应的发行版,并点击"获取"或"安装"按钮,然后按照提示完成安装。 5. 设置WSL默认版本: - 打开PowerShell或命令提示符(以管理员身份运行)。 - 运行以下命令以查看可用的WSL发行版列表: ``` wsl --list --verbose ``` - 运行以下命令以设置默认的WSL发行版(例如Ubuntu): ``` wsl --set-default-version 2 ``` 6. 配置WSL 2为默认版本: - 打开PowerShell或命令提示符(以管理员身份运行)。 - 运行以下命令以将WSL 2设置为默认版本: ``` wsl --set-default-version 2 ``` 7. 完成安装: - DockerWSL安装完成后,你可以在WSL使用Docker命令来管理容器。 请注意,安装步骤可以因个人设置和系统环境而有所不同。确保按照官方文档和说明进行操作,并根据需要调整配置。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值