(一)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的更多相关文章

  1. 使用 PHPStorm + Xdebug 实现断点调试(二)

    一.配置 Xdebug 配置 Xdebug 相关参数,在 php.ini 文件中新增如下配置,如果没安装的,请参考<PHP 安装 Xdebug扩展>: [xdebug] xdebug.re ...

  2. phpstorm+wamp+xdebug配置php调试环境

    本篇文章主要是:教大家如果搭建一套phpstorm+wamp+xdebug调试php的环境现在大多数的程序员使用的调试方式一般都是echo, var_dump, file_put_contents等其 ...

  3. Phpstorm Xdebug Web程序调试

    平时调试php程序的时候,可以通过在代码中添加var_dump等函数来实现简单的断点调试. 下面介绍另一种方法,通过Phpstorm和Xdebug来进行调试. 1.下载Xdebug 这个是官网下载地址 ...

  4. phpstorm + xdebug 配置

    PHPSTORM版本 : 8.0.1 PHP版本 : 5.6.2 把php-xdebug.dll复制到xamapp/php/ext目录下,打开php.ini配置如下参数 [xdebug] zend_e ...

  5. phpstorm + x-debug 进行php调试

    参照http://www.cnblogs.com/tippoint/p/3429092.html 进行安装xdebug: 首先自己写一个打印php的页面,将phpinfo 拷贝到下面的框内进行分析. ...

  6. 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 ...

  7. phpstorm如何配置xdebug?(hpStudy+PhpStorm+XDebug配置)

    xdebug是什么? 初次接触,反复试了几次终于把这个xdebug给搞清楚了,类似于前端的控制台这样的东西,可以根据断点展示我们想要看的数据. 如何配置xdebug? 配置前说明: 1.phpStud ...

  8. phpstorm xdebug 无法断点调试问题

    最近用phpstorm+xdebug调试一段php代码的时候莫名其妙的无法切入断点调试 本地用的php集成环境是UPUPW ANK V1.1.7 64Bit 选择了集成环境中php版本为7.1.x 搞 ...

  9. php+phpStorm+xdebug配置方法

    1.下载xdebug文件 http://xdebug.org/wizard.php 将phpinfo()的源代码复制到文本框中,xdebug会提示如何配置和下载哪个版本的xdebug. 全部下载地址: ...

随机推荐

  1. 深入理解计算机系统大作业——程序人生P2P

    程序人生P2P 前言 经过一个学期的快乐学习(折磨),计算机系统终于结课了,自认为对于计算机系统算是有了粗浅的理解.为了庆祝结课,顺带总结自己的学习经历(只是为了完成大作业),便通过一个简单的程序he ...

  2. 洛谷P3177 [HAOI2015]树上染色(树形dp)

    题目描述 有一棵点数为 N 的树,树边有边权.给你一个在 0~ N 之内的正整数 K ,你要在这棵树中选择 K个点,将其染成黑色,并将其他 的N-K个点染成白色 . 将所有点染色后,你会获得黑点两两之 ...

  3. Go语言中的单例模式(翻译)

    在过去的几年中,Go语言的发展是惊人的,并且吸引了很多由其他语言(Python.PHP.Ruby)转向Go语言的跨语言学习者. Go语言太容易实现并发了,以至于它在很多地方被不正确的使用了. Go语言 ...

  4. CCF_ 201412-1_门禁系统

    水. #include<iostream> #include<cstdio> using namespace std; int main() { ],num[] = {}; c ...

  5. 51nod 1133 不重叠的线段 (贪心,序列上的区间问题)

    题意: 最多能选几条不重叠的线段 思路: 按R从小到大排序,维护一个最大的右端点 右端点最小的那个线段是必选的,可以贪心地证明 代码: #include<iostream> #includ ...

  6. Python学习框架(持续更新)

    1.数据类型 整型:整数,1.2.3...这种 浮点型:简单理解就是小数,1.23.3.141572653等等 字符型:“这是字符”,简单说就是我们说的话,都可以作为字符 布尔值:只有2种,true. ...

  7. Mysql:自动化备份

    简介 在这个数据为王的时代,数据的备份十分重要,这里就分享一篇mysql数据库自动备份的脚本(是从网上搜到的),其将配置文件和备份脚本分离,提高了安全性,脚本风格规范严谨,分享给大家希望对需要的小伙伴 ...

  8. get post 区别【转】

    应该是最简洁直接的了???? Get:是以实体的方式得到由请求URI所指定资源的信息,如果请求URI只是一个数据产生过程,那么最终要在响应实体中返回的是处理过程的结果所指向的资源,而不是处理过程的描述 ...

  9. 手写-- K-means++

    1. K-means++原理 K均值聚类属于启发式方法,不能保证收敛到全局最优,初始中心的选择会直接影响聚类结果.K-means是随机选择样本点作为聚类中心,容易造成算法局部收敛或者需要较多迭代次数, ...

  10. Python3(八) 枚举详解

    一.枚举其实是一个类 建议标识名字用大写 1.枚举类: from enum import Enum class VIP(Enum):     YELLOW = 1     GREEN = 2      ...