PhpStorm+Xdebug配置单步调试PHP
(一)php安装xdebug扩展,PHPStorm+XDebug单步调试
(二)PHPStorm配置XDebug
(三)PHPStorm使用XDebug调试
(四)PhpStorm+Xdebug配置单步调试PHP
一、原理:
Xdebug是一款php调试插件,支持在Windows或Linux上进行远程调试。在php文件运行时,通过TCP协议发送调试信息到远程端口,IDE在收到调试信息时,可以向Xdebug发送单步运行,中止运行,运行等命令。此插件还可以进行代码覆盖率的统计,有兴趣的小伙伴可以一起交流。
二、需要的环境:
1. 已搭建好的web服务器,本例使用的是Apache+PHP;
2. 一款支持Xdebug远程调试的IDE,本例使用的是PhpStorm7,IDE下载地址:http://www.jetbrains.com/phpstorm/ ;
3. 一款与你的php对应版本的Xdebug。
三、 服务端配置
1. 下载与PHP对应版本的Xdebug:
方法一:
如果你知道所使用的php版本,即可到官网直接下载对应版本的Xdebug,官网地址:http://Xdebug.org/download.php 。
方法二:
a. 如果你不知道你的PHP版本,请echo phpinfo();
b. 按Ctrl+A复制整个页面;
c. 访问 http://Xdebug.org/wizard.php ,将复制的内容粘贴到文本框中,如下图。
d. 点击页面下面的“Analyse my phpinfo() output”按钮,页面会自动分析你的php版本,如下图:
e. 点击Download后面的链接,下载与你机器配置的php相匹配的Xdebug版本。
f. 将下载的dll文件保存到PHP文件路径中的ext文件夹中。
2. 配置php.ini文件,连接Xdebug。
a. 打开PHP文件目录下的配置文件php.ini
b. 在文件的末尾添加如下设置:
[Xdebug]
zend_extension = "E:\php\ext\php_Xdebug.dll" (值为dll文件的绝对路径)
Xdebug.remote_enable=
Xdebug.remote_host=127.0.0.1
Xdebug.remote_port=
Xdebug.idekey=phpstorm
Xdebug.remote_autostart=
注:第一行是加载Xdebug.romote_enable是开启远程调试,下面是远程调试的参数,ip、端口、识别字符串、自动远程调试。
c. 保存文件,重启apache。
d. 在CMD里输入 E:\php\php.exe -m 看到[Xend Modules]中出现如下字样Xdebug,说明开启成功。如下图
e. 至此,服务器端配置完毕。
注意:Xdebug就加载成功后,访问网站可能会会慢一些,原因是因为你开启了自动远程调试,每一次访问都会连接一下定义的ip和端口。
四、客户端配置:
1. 打开phpStorm,点击进入File>Settings>PHP>Servers。
2. 点击“+”,填写服务器端的相关信息,name填127.0.0.1,host填127.0.0.1,port填80,debugger选Xdebug,如下图:
3. 点击进入File>Settings>PHP>Debug。
4. 看到右侧Xdebug选项卡,Debug port填9000,其他默认
5. 点击进入File>Settings>PHP>Debug>DBGp Proxy
6. IDE key 填 phpStorm(与php.ini文件中的Xdebug.idekey值相同),host 填127.0.0.1,port 填80
7. 点OK退出设置。
8. 点击phpStorm界面右上角像电话一样的按钮,打开监听,如下图:
9. 如果变为绿色,则为开启监听成功,如下图:
五、开始调试
1. 打开php文件
2. 设置断点,如下图:
3. 点击run>debug,或者按Alt+Shift+F9,如下图:
4. 在弹出的对话框中选则带有php图标的php文件,如下图:
5. 底部会出现调试信息,如下图:
6. 按F8执行Step Over(单步进入函数),按F7执行Step Into(单步跳过函数),更多操作如下图:
7. 鼠标移至参数上之后,会出现当前的值,如下图:
8. 点击run>stop或者按Ctrl+F2,停止调试。
PhpStorm+Xdebug配置单步调试PHP的更多相关文章
- 使用 PHPStorm + Xdebug 实现断点调试(二)
一.配置 Xdebug 配置 Xdebug 相关参数,在 php.ini 文件中新增如下配置,如果没安装的,请参考<PHP 安装 Xdebug扩展>: [xdebug] xdebug.re ...
- phpstorm+wamp+xdebug配置php调试环境
本篇文章主要是:教大家如果搭建一套phpstorm+wamp+xdebug调试php的环境现在大多数的程序员使用的调试方式一般都是echo, var_dump, file_put_contents等其 ...
- Phpstorm Xdebug Web程序调试
平时调试php程序的时候,可以通过在代码中添加var_dump等函数来实现简单的断点调试. 下面介绍另一种方法,通过Phpstorm和Xdebug来进行调试. 1.下载Xdebug 这个是官网下载地址 ...
- phpstorm + xdebug 配置
PHPSTORM版本 : 8.0.1 PHP版本 : 5.6.2 把php-xdebug.dll复制到xamapp/php/ext目录下,打开php.ini配置如下参数 [xdebug] zend_e ...
- phpstorm + x-debug 进行php调试
参照http://www.cnblogs.com/tippoint/p/3429092.html 进行安装xdebug: 首先自己写一个打印php的页面,将phpinfo 拷贝到下面的框内进行分析. ...
- PHPStorm+Xdebug断点远程调试PHP xdebug安装
一.xdebug安装 wget http://www.xdebug.org/files/xdebug-2.2.3.tgz #下载Xdebug tar xzf xdebug-2.2.3.tgz cd x ...
- phpstorm如何配置xdebug?(hpStudy+PhpStorm+XDebug配置)
xdebug是什么? 初次接触,反复试了几次终于把这个xdebug给搞清楚了,类似于前端的控制台这样的东西,可以根据断点展示我们想要看的数据. 如何配置xdebug? 配置前说明: 1.phpStud ...
- phpstorm xdebug 无法断点调试问题
最近用phpstorm+xdebug调试一段php代码的时候莫名其妙的无法切入断点调试 本地用的php集成环境是UPUPW ANK V1.1.7 64Bit 选择了集成环境中php版本为7.1.x 搞 ...
- php+phpStorm+xdebug配置方法
1.下载xdebug文件 http://xdebug.org/wizard.php 将phpinfo()的源代码复制到文本框中,xdebug会提示如何配置和下载哪个版本的xdebug. 全部下载地址: ...
随机推荐
- CCF_201604-2_俄罗斯方块
用一个4*2的数组记录方块的位置,每一次移动前判断每个方块位置下面是否已有方块,直到不能移动,将该数组更新到原来的图上,输出即可. #include<cstdio> #include< ...
- 《Python学习手册 第五版》 -第1章 问答环节
第一章的主要内容是解疑答惑的,这个部分也是很适合初学者的,回答了大部分初学者所关注的问题 1.为什么使用Python,或者说Python的优点, 作者是分为两个部分来谈的,人们使用中的经验总结以及Py ...
- How to make as map two or more device located in the same media pool by using ddboost + nw
How to make as map two or more device located in the same media pool by using ddboost + nw ? That is ...
- Why all application lack a kind of most really charm ?
Website and APP we used now are mostly web2.0 applications. While people practise in use, they can n ...
- vuejs之vue和springboot后端进行通信
一.新建一个vue项目,建立好后的相关文件 查看一下新建好的vue项目的结构: 当前各个文件中的内容: App.vue:主入口 <template> <div id="ap ...
- WampServer 更换 mysql
下载另外版本的mysql,复制到 wamp/bin,初始化号 修改wamp 的/wampmanager.conf 复制相关配置文件 [mysqloptions] mysqlPortUsed = &qu ...
- this的使用情况
this的几种使用情况 1.在普通函数内部,this指向的是window,在严格模式下,this的值是undefined function fun(){ console.log(this); } fu ...
- aws 社交媒体技术大会 部分总结
早上会议总结:. 1. 介绍了aws的应用,无技术知识点.略 2. 云原生: 就是一种在云中原生的一种技术 新常态:已经成为一种常态,基本都有的服务都可以部署在云端. 对 “互联网+” 和 “+互联 ...
- 工程引用libm.a文件的sin函数后
更改前后的main.c //#include <math.h> ; int var_bss; int main() { double d; // d = sin(3.14/2); ; } ...
- Linux内存管理解析(二) : 关于Linux内存管理的大体框架
什么是内存管理 ? 首先内存管理管理的主要对象是虚拟内存,但是虚拟内存对应的映射主要为物理内存,其次也可能通过交换空间把虚拟内存与硬盘映射起来,既然如此,那我们先了解物理内存的管理. 对于物理内存而言 ...