php docker xdebug,Docker PHP 配置 VS Code Xdebug PHP 调试工具: Xdebug for Docker

本文详细介绍了如何在Docker环境下安装和配置Xdebug,包括通过PECL安装插件,启用Xdebug,修改php.ini配置,以及解决VSCode调试时的端口冲突问题。同时,提供了VSCode的launch.json配置示例,帮助开发者实现PHP项目的远程调试。
摘要由CSDN通过智能技术生成

必要条件:安装 xdebug 插件:

如果是直接使用镜像生成的容器,到容器里面执行:

//安装xdebug

pecl install xdebug-2.8.1

//启用xdebug

docker-php-ext-enable xdebug

如果是通过 Dockrfile,则可通过 run 命令定义:

FROM php的一个镜像

RUN (balabala) ..\

&& pecl install xdebug-2.8.1 \

&& docker-php-ext-enable xdebug \

(balabala)

配置 php.ini

核心配置项是:

xdebug.remote_enable = 1

xdebug.remote_autostart = 1

xdebug.remote_host=192.168.xxx.xxx#填电脑真实的IP,也就是宿主IP

xdebug.idekey=VSCODE

在 php docker 里面, 实际没有明确的 php.ini, 只要把配置文件放到一个目录下(/usr/local/etc/php/conf.d/),重启容器即可,如果是通过 Dockerfile 来定义的容器,则可以先写好 php.ini,然后使用 copy 命令,复制到配置目录下即可,如:

FROM php的一个镜像

RUN (balabala) ..\

&& pecl install xdebug-2.8.1 \

&& docker-php-ext-enable xdebug \

(balabala)

COPY php.ini /usr/local/etc/php/conf.d/

编译之后,启动容器,然后进入到容器,就可以看到:

root@4ce41612c609:/var/www/html# cd /usr/local/etc/php/conf.d/

root@4ce41612c609:/usr/local/etc/php/conf.d# ls -l

-rw-r--r-- 1 root staff 81 Jun 12 02:59 docker-php-ext-xdebug.ini

-rwxr-xr-x 1 root root 113 Jun 16 01:50 php.ini #只要后缀为.ini就行

VS Code 配置

VS Cdoe 要提前安装 PHP Debug

一般在 VS Code 里面开启一个 PHP 项目,点击调试工具,它会自动提示生成一个 .vscode 的目录,在目录下,会有一个 launch.json,如:

6294f42103eb74835fb1a737390ad936.png

第一步 添加 Xdebug for Docke 配置:

8d381ee493c0ebb579e1b69b2f956583.png

会生成:

b0c6e41ab66149fefd461b05332a4a76.png

第二步 指定 pathMappings 映射关系,如:

也就是指明在 容器里面目录 对应 当前本地的目录

// server -> local

"pathMappings": {

"/var/www/html": "${workspaceRoot}/www"

}

第三步 翻车现场

设置好以配置后, 设置断点,然后开启调试,不出意料应该会报错:Error: listen EADDRINUSE: address already in use :::9000,如:

1b66328960702a68420cff19d1b354a6.png

第四步 调试>调试工具的问题

VS Code xdebug 插件 默认主机(hostname)就是 localhost,而 localhost:9000 早就提供给 php-fpm使用,所以报错,只需要指定主机IP为本机IP即可,即再指明 hostname 配置,如:

{

"name": "Xdebug for Docker",

"type": "php",

"request": "launch",

"hostname": "192.168.123.119",

"port": 9000,

"pathMappings": {

"/var/www/html/www": "${workspaceFolder}"

}

}

怎么看本机IP地址? 在控制台输入: ipconfig, Linux? 那就:ifconfig!

不出意外的话,应该能够正常使用上 xdebug.

其它参考资料

本作品采用《CC 协议》,转载必须注明作者和本文链接

Less is more.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值