原理了解
安装
#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 解释器配置 那里不用配置, 那它具体是干嘛的呢? 请待下回分解
版权声明:本文为eebaicai原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。