这应该是最完善的一篇php xdebug 配置了 (mac + docker)

原理了解

安装

#dockerfile
RUN set -ex; \
	wget http://xdebug.org/files/xdebug-2.8.0.tgz; \
	tar -xzvf xdebug-2.8.0.tgz; \
	cd ./xdebug-2.8.0; \
	phpize; \
	./configure --enable-xdebug; \
	make && make install
	
COPY xdebug.ini /usr/local/etc/php/conf.d/make-php-ext-xdebug.ini

#或者
RUN pecl install xdebug && docker-php-ext-enable xdebug
COPY xdebug.ini /usr/local/etc/php/conf.d/make-php-ext-xdebug.ini
#xdebug.ini
zend_extension=/usr/local/lib/php/extensions/no-debug-non-zts-20180731/xdebug.so


; xdebug.remote_enable=1 ;开启访问ide
; xdebug.remote_autostart=off ;是否开启自动调试
; xdebug.remote_connect_back=1 ;任意 ide ip
; xdebug.remote_host=192.168.0.16 ;指定 ide ip (容器网关好像不行?)
; xdebug.remote_port=9003 ;ide 端口号
; xdebug.remote_log = "/var/log/fpm/xdebug.log" ;xdebug 日志位置
; xdebug.idekey=PHPSTORM  ;ide key 对配置没啥影响 应该是做个标识

ide 配置

  • 这个不用配置的 有些文章会配置这个 多余
    在这里插入图片描述

  • 配置服务器 注意: docker 下要映射 本机不用配置映射
    在这里插入图片描述

  • 配置 ide 的端口和 ip
    在这里插入图片描述

  • 可以配置 ide key
    在这里插入图片描述

  • 编辑调试配置
    在这里插入图片描述

  • 好了, 配置就这些了 没有多的了

在开始调试教程之前说一下:

  • 改 ini 配置后,记得重启你的 php (如果你是 apache 模块的方式,就重启 apache)
  • 还有如果在下面的每一个方式中,没出现调试效果,请自行去查看 xdebug 的日志(日志会很仔细的告诉你的错误是什么),具体日志文件在哪,不用我说了,前面都有参数指定位置了 请认真看文章

好,我们开始

第一种方式 (手动触发调试)

  • xdebug 配置
xdebug.remote_enable=1 ;开启访问ide
xdebug.remote_host=192.168.0.16 ;指定 ide ip (容器网关好像不行?)
xdebug.remote_port=9003 ;ide 端口号
xdebug.remote_log = "/var/log/fpm/xdebug.log" ;xdebug 日志位置
xdebug.idekey=PHPSTORM  ;ide key 对配置没啥影响 应该是做个标识
  • 打个断点
    在这里插入图片描述
  • 点击这个
    在这里插入图片描述
  • 浏览器弹出 数字 对于 ide 的 弹出的调试终端
    在这里插入图片描述在这里插入图片描述
  • 手动触发调试就完成了

第二种方式 (配合浏览器插件触发调试)

  • xdebug 配置
xdebug.remote_enable=1 ;开启访问ide
xdebug.remote_host=192.168.0.16 ;指定 ide ip (容器网关好像不行?)
xdebug.remote_port=9003 ;ide 端口号
xdebug.remote_log = "/var/log/fpm/xdebug.log" ;xdebug 日志位置
xdebug.idekey=PHPSTORM  ;ide key 对配置没啥影响 应该是做个标识
  • 打个断点
    在这里插入图片描述
  • 点击这个
    在这里插入图片描述
  • chrome 浏览器安装 xdebug 插件
  • 开启xdebug插件 再访问 url
    在这里插入图片描述
  • ide 弹出调试终端
    在这里插入图片描述
  • 插件方式完成了

第三种方式(自动触发调试)

  • xdebug 配置 注意这个配置和上面的不一样
xdebug.remote_autostart=on ;开启自动调试

xdebug.remote_enable=1 ;开启访问ide
xdebug.remote_host=192.168.0.16 ;指定 ide ip (容器网关好像不行?)
xdebug.remote_port=9003 ;ide 端口号
xdebug.remote_log = "/var/log/fpm/xdebug.log" ;xdebug 日志位置
xdebug.idekey=PHPSTORM  ;ide key 对配置没啥影响 应该是做个标识
  • 打个断点
    在这里插入图片描述

  • 点击这个
    在这里插入图片描述

  • 为了避免你理解混乱 换个浏览器 不要用 chrome 我这里用 safari

  • 地址栏 直接访问 url
    在这里插入图片描述

  • ide 会弹出调试终端
    在这里插入图片描述

  • 自动调试完成

以上都是在 Mac + docker 的环境下完成
如果你是 win 或者 vagrant 方式 , 大同小异的, 只是 ide 服务器那里的配置不一样 (后续我再用 win 电脑写一篇)

注: 前面说的 ide cli 解释器配置 那里不用配置, 那它具体是干嘛的呢? 请待下回分解

xdebug 3

https://blog.csdn.net/raoxiaoya/article/details/111984667

zend_extension="xdebug.so"
[xdebug]
; 默认是XDEBUG_SESSION=任何值都行, 改了之后就是XDEBUG_SESSION=VSCODE或者XDEBUG_SESSION=PHPSTORM
xdebug.trigger_value=VSCODE,PHPSTORM
; xdebug.start_with_request=yes
xdebug.start_with_request=trigger
xdebug.mode=debug
xdebug.client_host=127.0.0.1
xdebug.client_port=9003
# 在项目下生成, 一般不用, 写文件要io的, xdebug用不了时用来排错的挺不错的
; xdebug.log=xdebug.log
 [Config] INFO: Trigger value for 'XDEBUG_TRIGGER' not found, falling back to 'XDEBUG_SESSION'
[Config] WARN: The trigger value '1', as set through 'XDEBUG_SESSION', did not match any of the shared secrets (xdebug.trigger_value) for mode 'debug'
这里的意思就是 XDEBUG_TRIGGER 参数没有, XDEBUG_SESSION的值又不等于上面自定义的值

解决方法:
1. 在地址栏带上 ?XDEBUG_TRIGGER=VSCODE 或者 ?XDEBUG_SESSION=VSCODE 都行
2. 或者在终端设置设置下面两者之一都行
export XDEBUG_TRIGGER=VSCODE
export XDEBUG_SESSION=VSCODE

远程服务器配置

xdebug.trigger_value=PHPSTORM
xdebug.start_with_request=yes
xdebug.mode=debug
xdebug.discover_client_host=1
xdebug.client_host=192.168.10.11
xdebug.client_port=9001
xdebug.log=/tmp/xdebug.log
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值