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 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> Phpstorm + Xdebug进行断点调试(详细!!) -> 正文阅读

[开发工具]Phpstorm + Xdebug进行断点调试(详细!!)

目录

环境配置

xdebug配置

phpstorm配置

浏览器配置

phpstorm配置

xdebug原理

php代码调试tips


php中的代码调试不同于其他语言,一直以来配置调试环境是件棘手的问题,下面我就把我详细的调试配置过程进行记录一下

环境配置

实验配置环境如下

  • win 10 x64
  • phpstudy 2018 (php5.5.38)
  • phpstorm 2021.2
  • Firefox + Xdebug-ext

以下都基于php服务器在本地的情况!

xdebug配置

1. 配置xdebu

找到phpstudy自带的xdebug路径

?2. 配置 php.ini

?打开php.ini后移动到文件最末尾,添加如下内容

;xdebug库文件
zend_extension = "D:\phpStudy\PHPTutorial\php\php-5.5.38\ext\php_xdebug.dll"
;开启远程调试
xdebug.remote_enable = On
;客户机ip
xdebug.remote_host = 127.0.0.1
;客户机xdebug监听端
xdebug.remote_port = 9001
;idekey
xdebug.idekey=PHPSTORM

?注:红色部分根据自己实际路径来设置,监听端口可以自己决定,不要端口冲突就行

?3. 测试xdebug是否配置成功

重启phpstudy,查看phpinfo,如下

在打开的页面搜索xdebug,如下存在则说明安装正确

phpstorm配置

1. 在 file - Settings - PHP - Debug 中设置端口,端口默认为9000,由于经常会被其他程序占用,这里建议设置为9001(与php.ini中的设置相同)

2. 在DBGp Proxy中配置你的idekey,idekey就是你在配置文件中最后一项,host是你的服务器ip或者是已经可以解析的域名,port还是填xdebug.remote_port端口9001

3. Servers配置

自己手动添加一个,Host填服务器ip,然后port是需要调试的网站的端口,我这里的网站端口默认是80。然后点击ok

浏览器配置

我这里使用的火狐浏览器,下载火狐扩展-Xdebug-ext

?设置 IDE key,与php.ini保持一致

?

phpstorm配置

这里以sqli-labs less1为例

1. 配置debug

如下选择

?然后出现如下页面,配置后点击ok

?接着如下

?2. 开启debug监听

点击之后会弹出浏览器,关闭就行。图标变成如下

?3. 浏览器开启debug

然后刷新浏览器,红点中出现一个√,代表调试成功

?到这里环境配置就全部完成了

xdebug原理

Xdebug的工作原理可以总结为下面几个步骤

1)IDE(比如PhpStorm,下文所述的客户端)中已经集成了一个遵循BGDp协议(一个专门用来调试的协议)的Xdebug插件。当要debug的时候,点击一些IDE的某个按钮,启动这个插件。该插件会启动一个默认9000的端口监听远程服务器发过来的debug信息。

2)浏览器向Httpd服务器发送一个带有XDEBUG_SESSION_START参数的请求,Httpd收到这个请求之后交给后端的PHP进行处理(下面就忽略Httpd,直接把Php叫做Server)。

3)Php看到这个请求是带了XDEBUG_SESSION_START 参数,就告诉Xdebug,“嘿,我要debug喔,你准备一下”。这时,Xdebug这时会向来源ip客户端的9000端口(即客户端,也即是IDE)发送一个debug请求,然后客户端的9000端口响应这个请求,那么debug就开始了。

4)Php知道Xdebug已经准备好了,那么就开始开始一行一行的执行代码,但是每执行一行都会让Xdebug过滤一下。

5)Xdebug开始过滤代码,Xdebug在过滤每一行代码的时候,都会暂停代码的执行,然后向客户端的9000端口发送该行代码的执行情况,等待客户端的决策(是一句代码还是下一个断点待)。

6)相应,客户端(IDE)收到Xdebug发送过来的执行情况,就可以把这些信息展示给开发者看了,包括一些变量的值等。同时向Xdebug发送下一步应该什么。

php代码调试tips

当我们成功启动调试后,就可以开始追踪代码流。如下点击按钮或者按F7快捷键,程序会往下执行一步,这样,我们就能很清楚的看清代码的执行过程,方便我们进行代码审计

其他几个按钮,大家多点几下就知道怎么用了

参考资料:

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2021-08-18 12:54:08  更:2021-08-18 12:56:02 
 
开发: 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年5日历 -2024/5/17 17:38:54-

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