IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> PHP知识库 -> phpstrom、laradock、xdebug 进行断点调试 -> 正文阅读

[PHP知识库]phpstrom、laradock、xdebug 进行断点调试

phpstrom、laradock、xdebug 进行断点调试

背景:

  1. laravel 框架封装太完善,经常搞不明白究竟用的是哪个类
  2. 复杂一点的算法,使用 dd方法调试时,需要疯狂dd,显得过于鸡肋

调试流程:

  1. 发请求、跑调试代码
  2. 安装 xdebug 扩展的 PHP 检查是否有预期参数,有就交给 xdebug 处理
  3. xdebug 模块根据配置去链接指定主机的特定端口
  4. 然后就开始快乐的调试

我们要做的:

  1. 确定自己需要执行的 PHP 模式,如 cli,php-fpm,或者两者都要
  2. 安装并开启 xdebug 扩展
  3. 配置充当调试客户端的 phpstrom
  4. 开启监听、打断点、运行程序并开始调试

看完教程后的收获有哪些:

  1. 配置与使用 xdebug 功能
  2. phpunit 单元测试
  3. 两种 CLI 解析器的配置办法,如:SSH、docker composer

cli模式配置说明

1、安装 xdebug 扩展,并升级到 3.x 以上版本,如:
进入 workspace 容器,执行 pecl install xdebug-3.1.3 来安装 xdebug,并记下扩展地址
2、配置 xdebug 配置。通过 php --ini 来确定 PHP 配置的目录,在目录中新建或修改 xdebug.ini 配置文件,内容如下:

	zend_extension=扩展地址
	xdebug.mode=debug
	xdebug.client_host=host.docker.internal
	xdebug.client_port=9300
	;xdebug.client_port 开发机监听端口
	xdebug.log =日志文件.log
	;xdebug.log  查看日志的地址,如果权限不足可能会导致创建失败

3、调通PHP单元测试功能,可以参考这篇文章 phpstrom、laradock、phpunit 进行单元测试
4、修改 phpstrom 进行 Xdebug 调试时所监听的端口,需要与 xdebug.client_port填写的参数保持一致,如: 在这里插入图片描述
5、到这里,我大大的 mac 可以了。但是我的却不行。。。通过查看日志,提示主机172.19.0.1解析失败。经过苦苦寻找,发现这个地址是在调试的时候 由 phpstrom 带过去的,结果 xdebug 还用它了,如图:
在这里插入图片描述
既然如此,那么我们就设置一个新值去覆盖它,如图:
在这里插入图片描述
6、再次运行调试代码,就能发现请求带上了设置的参数,鲜花走起 ^_^^_^。小伙伴赶紧去打个断点试试
在这里插入图片描述

php-fpm 模式配置说明

1、安装 xdebug 扩展,并升级到 3.x 以上版本。为了学习更多,我们通过修改 laradock 配置,并重构容器的方式来修改:

  • a. laradock 的 .env 文件,开启如下配置PHP_FPM_INSTALL_XDEBUG=true,并记下 PHP_FPM_XDEBUG_PORT=9003配置的端口值,如:9003
  • b. 重新构建 php-fpm 容器,执行 docker-compose build -d php-fpm,成功后删除旧容器并运行新的构建好的容器
  • c. 进入容器使用 php -v 检查是否已经成功安装扩展。如果成功,会有with Xdebug字样
  • d. 如果 xdebug 版本不是 3.x 以上的,那就执行 pecl upgrade xdebug 来更新版本

2、配置 xdebug 配置,与 CLI 模式有少许不同,需要额外设置识别参数。通过 php --ini 来确定PHP配置的目录,此时预计会看到两个与xdebug相关的配置,一个是仅导入扩展的,另一个是设置 xdebug 配置的,我们打开设置 xdebug 配置的那个,覆盖如下代码:

	xdebug.client_host=host.docker.internal
	xdebug.idekey=PHPSTORM
	xdebug.client_port=9003
	xdebug.mode=debug
	xdebug.log =日志文件.log
	;xdebug.log  查看日志的地址,如果权限不足可能会导致创建失败

3、修改 phpstrom 配置,这里的修改有点多,需要耐心点捏
a. 新怎一个名为 laradock 的服务器(设置 -> PHP -> 服务器),如图:
请添加图片描述

提示:记得填写服务器上的绝对路径

b. 新增 docker 配置(设置 -> 构建、执行、部署 -> Docker),如图:
请添加图片描述
c. 添加一个链接 php-fpm 容器的 CLI 解析器(设置 -> PHP),如图:
请添加图片描述

创建后,CLI 解析器会自动命名为 php-fpm

d. 修改新建 CLI 解析器的生命周期为连接到现有容器,如图:
请添加图片描述
e. 添加一个远程调试配置请添加图片描述

此步骤弄完后,调试配置步骤,算是弄完了

4、切换 phpstrom 的调试配置为刚刚创建的 web-debug 配置
在这里插入图片描述
5、给项目 URL 添加 XDEBUG_SESSION=PHPSTORM参数后就可以开始调试
在这里插入图片描述
6、此步骤为提升体验的。由于每次调试都主动添加 XDEBUG_SESSION参数,这很是麻烦,且容易忘记那个参数与值,有以下建议:
a. 如果是使用 post man 进行调试接口的,可以添加一个全局的参数 XDEBUG_SESSION=PHPSTORM
b. 如果是 web 页面的,那就安装 xdebug helper 插件,配置里面的 ide key 为 phpstrom -> PHPSTORM 并保存即可。以后调试,只要把小虫虫图标改为绿色即可,如图:
在这里插入图片描述

错误定位:

  1. 打开 xdebug 扩展日志,以便查找问题
  2. 查看发送请求的参数,是否符合预期

意外问题:

  1. 出问题时,请第一时间查看 xdebug 的错误日志,他可以解决 99% 的问题
  2. 端口被占用是,换一个没有被使用的端口,只要确保 phpstrom 监听的端口 与 xdebug 配置的端口一致即可
  3. 调试时,phpstorm 被触发,日志也正常,却无法正常断点。此时查看调试控制台是否有错误的红色提示。一开始笔者的服务器名称并不是 laradock,然后系统提示没有 laradock 服务器(神奇得很),最后我把服务器的名字修改成为 laradock 就好了。 修改第 3.a 步骤的服务器名字

特别感谢:

感谢,感谢,感谢我亲爱的,敬爱的,耐心十足的 old 大大^_^

  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章      下一篇文章      查看所有文章
加:2022-03-11 21:55:31  更:2022-03-11 21:55:44 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 10:38:54-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码