(一)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. sockaddr与sockaddr_in的关系

    WIN7+VS2013 sockaddr // // Structure used to store most addresses. // typedef struct sockaddr { #if ...

  2. GetModuleFileNameEx遍历获取64bit程序路径失败的一种解决方法(Win7-64-bit)

    问题: 32位程序在64位系统上调用GetModuleFileNameEx()遍历获取64位进程的全路径失败,得到的路径都为空. 根据官方的说法: For the best results use t ...

  3. Mysql 安装出现error Nr.1045

    我们在windows下安装mysql时会出现Access denied for user 'root'@localhost'(using password:No)的问题,这个问题是因为你的机器上之前安 ...

  4. Go语言之路—博客目录

    Go语言介绍 为什么你应该学习Go语言? 开发环境准备 从零开始搭建Go语言开发环境 VS Code配置Go语言开发环境 Go语言基础 Go语言基础之变量和常量 Go语言基础之基本数据类型 Go语言基 ...

  5. 《C# 爬虫 破境之道》:第二境 爬虫应用 — 第四节:小说网站采集

    之前的章节,我们陆续的介绍了使用C#制作爬虫的基础知识,而且现在也应该比较了解如何制作一只简单的Web爬虫了. 本节,我们来做一个完整的爬虫系统,将之前的零散的东西串联起来,可以作为一个爬虫项目运作流 ...

  6. Kittenblock画笔基础,移动留下痕迹的蝴蝶,图形化编程经验分享

    Kittenblock画笔基础,移动留下痕迹的蝴蝶,图形化编程经验分享 跟很多学生聊过,很多学生不是不努力,只是找不到感觉.有一点不可否认,同样在一个教室上课,同样是一个老师讲授,学习效果迥然不同.关 ...

  7. PHP第三方登录——QQ登录

    主要内容 简单回顾OAuth协议基本原理 接入QQ登录的前置条件以及开放平台账号申请 引入官方SDK SDK参数配置 SDK核心方法解读 整合QQ登录SDK到Web应用中 SDK优化 调用API的开发 ...

  8. 《C# 爬虫 破境之道》:第二境 爬虫应用 — 第五节:小总结带来的优化与重构

    在上一节中,我们完成了一个简单的采集示例.本节呢,我们先来小结一下,这个示例可能存在的问题: 没有做异常处理 没有做反爬应对策略 没有做重试机制 没有做并发限制 …… 呃,看似平静的表面下还是隐藏着不 ...

  9. Spark API 之 map、mapPartitions、mapValues、flatMap、flatMapValues详解

    原文地址:https://blog.csdn.net/helloxiaozhe/article/details/80492933 1.创建一个RDD变量,通过help函数,查看相关函数定义和例子: & ...

  10. C++ map通过key获取value

    c++的map中通过key获取value的方法 一般是value  =map[key],或者另一种迭代器的方式 1.在map中,由key查找value时,首先要判断map中是否包含key. 2.如果不 ...