phpstorm2022.3.3和xdebug 3 调试代码记录

news2024/9/24 4:35:25

有鉴于之前使用log日志调试代码,或者var_dump()调试代码太慢了,系统出了问题排查效率低下。最终决定使用xdebug工具提高效率。总结如下:

1. xdebug版本要和phpstorm兼容,
     这里使用xdeubug 3.1.6,phpstorm 2022.3.3 (破解)
     据说 xdeubug 3版本必须是phpstorm 2020 版本以上
2. xdebug版本要和php 版本兼容
3. xdebug 3 版本配置 和网上大部分文章所说 的xdebug 2 有很大区别

开始:

一. 安装兼容的xdebug

步骤:
1.打印 phpinfo()
2. 在浏览器 界面中 Ctrl+A 全选复制整个界面 (phpinfo) 的信息
3. 打开网站 https://xdebug.org/wizard
3.把复制到的信息粘贴入白色框
4.点击下方的 Analyse my phpinfo() output 按钮,如图:

在这里插入图片描述

即可获得以下信息:
5.按照图片中的箭头指示一步步编译安装xdebug安照箭头指示一步步编译安装xdebug
如图是第9步骤的 /etc/php/7.3/fpm/conf.d/99-xdebug.ini 配置

在这里插入图片描述

zend_extension = xdebug
;这是xdebug3.1.6的配置
;开启xdebug
xdebug.mode = debug
;允许任意 ip 电脑的phpstorm客户端调试xdebug,默认只允许127.0.0.1 本机的phpstorm调试xdebug
xdebug.discover_client_host = 1

二. 配置 phpstorm

在这里插入图片描述

xdebug 3 ,默认使用 9003 端口,不同于xdebug 2,默认使用 9000

2.1 配置监听xdebug的端口 9003

在这里插入图片描述

2.2 配置远程服务器相关

在这里插入图片描述

2.2.1点击Validate 验证xdebug是否配置成功了

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

复制此行命令,到linux /windows 服务器,并回车执行

curl -f -L  -o ./phpstorm_xdebug.zip "https://packages.jetbrains.team/files/p/ij/xdebug-validation-script/script/phpstorm_xdebug_validator.zip";unzip ./phpstorm_xdebug.zip -d .;rm -f ./phpstorm_xdebug.zip

在这里插入图片描述
解压生成了3个 文件,其中最重要的phpstorm_index.php

在这里插入图片描述
在这里插入图片描述

显示找不到 http://192.168.11.168/phpstorm_index.php 文件

显然phpstorm 是想要我们能浏览器访问phpstorm_index.php(默认80端口)

在这里插入图片描述
那我们就来配置下
我这里是 yii 框架,nginx,那么就配置下nginx,能够访问到phpstorm_index.php
先copy phpstorm_debug.php,phpstorm_debug_validator.phar,phpstorm_index.php 到指定的目录

在这里插入图片描述
我随意设置了一个访问端口,7374,
在这里插入图片描述

重新配置下
在这里插入图片描述
点击访问浏览器
在这里插入图片描述
如下图所示,能访问页面,并显示Xdebug 的一些信息
在这里插入图片描述
使用phpstorm 验证xdebug 配置是否对
在这里插入图片描述
出现如下 红框的提示,说明成功了
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
最后浏览器打开某个接口,开始debug,设置断点,点击右边的虫子按钮,用来监听来自服务器的消息
在这里插入图片描述

设置断点
在这里插入图片描述
能显示变量的值,说明成功了

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1143478.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

nvm的安装和使用

nvm用途 nvm是用来管理node版本的,安装成功之后可以去切换自己的node版本,就不需要通过安装卸载不同版本的node包 下载与安装 下载地址是https://github.com/coreybutler/nvm-windows/releases 下载nvm-setup.zip,然后安装就可以了 默认路径是C:\Users\wangjingtao\AppData\…

实现成绩发布的高效与便捷

老师们想不想告别繁琐的手动操作,简单省心的发布和查询考试成绩?今天分享的这个方法,可以让学生和家长自主查询成绩,是不是感觉超级方便呢?我来给各位老师讲解一下什么是成绩查询系统吧! 成绩查询系统 成绩…

Reflect 对象的创建目的

目录 前言 逻辑 代码示例 使用 Reflect 操作属性 使用 Reflect 检查属性是否存在 使用 Reflect 创建代理 用法 结论 参考资料 前言 Reflect是JavaScript中的一个内置对象,它提供了一组用于访问对象属性和执行对象方法的方法。Reflect的设计目的是为了在语…

IDEA部署SSM项目mysql数据库MAVEN项目部署教程

如果 SSM 项目是基于 Maven 构建的,则需要配置 maven 环境,否则跳过这一步 步骤一:配置 Maven 第一步:用 IDEA 打开项目,准备配置 maven 环境 ,当然如果本地没有提前配置好 maven,就用 IDEA 默…

多线程面试相关知识点

文章目录 (一) 进程线程和协程的区别创建线程的4种方式1. 继承Thread类2. 实现runnable接口3. 实现Callable接口4. 线程池创建 runnable 和 callable 有什么区别线程的 run()和 start()有什么区别?线程之间的状态变化notify()和 notifyAll()有什么区别?j…

C++之lambda匿名、using、typedef总【全】(二百四十九)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 人生格言: 人生…

如何选择最适合 Android 的 SD 卡恢复软件?

所需要的只是心不在焉地点击了错误的按钮、行为不当的应用程序、或者软件或硬件故障。就这样,您的照片消失了,您的笔记无处可寻,您的文件也消失了。 如何选择最适合 Android 的 SD 卡恢复软件 对别人最好的可能对你不起作用,这取…

【Unity小技巧】可靠的相机抖动及如何同时处理多个震动

每篇一句 围在城里的人想逃出来,站在城外的人想冲进去,婚姻也罢,事业也罢,人生的欲望大都如此。——钱钟书《围城》 前言 相机的抖动我相信大家都不陌生,网上其实已经有非常非常多的教程了,之前我也写过…

2.21每日一题(隐函数求导+变上限积分求导)

1、首先 t 0 时,x ? 或者 y ? 求出来 2、等式两边进行一阶求导,把一阶导函数(隐函数求导)求出来 3、等式两边再次求导,把二阶导函数(隐函数求导)求出来 注意:隐函数求导及变上…

Java 枚举类型与泛型-第13章

Java 枚举类型与泛型-第13章 1.枚举类型 枚举类型是一种特殊的数据类型,用于表示一组有限的命名常量。枚举类型可以帮助您更清晰地定义和管理相关常量,并提供类型安全性。 1.1使用枚举类型设置常量 枚举类型是一种非常方便的方式来设置常量。我们可以…

YUV空间-两张图片颜色匹配(颜色替换)

在做颜色匹配时,从RGB转换到YUV也有一些优势。因为YUV把亮度和色彩分开了,所以可以更容易地调整图像的亮度分布和色彩平衡⁴。而且,YUV也更接近人类感知颜色的方式,所以可以更好地保持图像的自然感。 这个公式是用来做颜色匹配的&…

Node.js 的适用场景

目录 ​编辑 前言 适用场景 1. 实时应用 用法 代码 理解 2. API 服务器 用法 代码示例 理解 3. 微服务架构 用法 代码示例 理解 总结 前言 Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,它使得 JavaScript 可以脱离浏览器运行在服务器…

如何公网远程访问本地WebSocket服务端

本地websocket服务端暴露至公网访问【cpolar内网穿透】 文章目录 本地websocket服务端暴露至公网访问【cpolar内网穿透】1. Java 服务端demo环境2. 在pom文件引入第三包封装的netty框架maven坐标3. 创建服务端,以接口模式调用,方便外部调用4. 启动服务,出现以下信息表示启动成功…

javaweb+mysql的电子书查阅和下载系统

图书分类查看、热门下载、最新上传、站内数据统计。 登陆注册、图书查询、图书详情、图书下载。 身份分为管理员和用户。 源码下载地址 支持:远程部署/安装/调试、讲解、二次开发/修改/定制

【JavaSE】注释\标识符\关键字\字面常量\数据类型与变量

下面直接介绍Java的基础知识点,很多与C语言相似,但是也有很多不一样的点 目录 一、注释 二、标识符与关键字 1.标识符 2.关键字 三、字面常量 四、数据类型与变量 1.数据类型 2.变量 3.不同类型的变量 4.类型转换与类型提升 5.字符串类型 一…

[减脂期食谱] 自制千岛酱

[减脂期食谱] 自制千岛酱 成品如下: 最中间的那个,算比较居中的颜色吧,其实自己家做原版的千岛酱还是比较简单的,它的底就是蛋黄酱(蛋黄油乳化的酱),随后里面的材料比较自由,维基百科是这么介绍的&#xf…

『C++成长记』C++入门—— 函数重载引用

🔥博客主页:小王又困了 📚系列专栏:C 🌟人之为学,不日近则日退 ❤️感谢大家点赞👍收藏⭐评论✍️ 目录 一、函数重载 📒1.1函数重载的概念 📒1.2函数重载的种类 …

【密评】商用密码应用安全性评估从业人员考核题库(十五)

商用密码应用安全性评估从业人员考核题库(十五) 国密局给的参考题库5000道只是基础题,后续更新完5000还会继续更其他高质量题库,持续学习,共同进步。 3501 单项选择题 根据GM/T 0115 《信息系统密码应用测评要求》&am…

基于人机环境系统的新全局工作空间理论

(旧的)全局工作空间理论是由心理学家伯纳德巴尔斯(Bernard Baars)提出的一种关于意识的理论。该理论认为,意识是一种全局性的心理状态,其中包含了我们当前的感知、思维和意识内容。根据全局工作空间理论&am…

【Python从入门到进阶】40、requests的基本使用

接上篇《39、使用Selenium自动验证滑块登录》 上一篇我们介绍了使用selenium进行滑块自动验证操作。本篇我们结束selenium的章节,来学习requests库的基本使用。 一、requests与urllib的爱恨情仇 1、requests与urllib的区别 大家在前面的学习中,访问网…