0 前言

网上试过很多方案,有的根本无效,有的是有效一段时间后失效,然而这个方法是一直有效果,所以留底记录一下

1 简介

PhpStorm是一个轻量级且便捷的PHP IDE,其提供的智能代码补全,快速导航以及即时错误检查等功能大大提高了编码效率。它以其独特的开发便利性,短时间内赢得了大量PHPer的青睐。
Xdebug是一个开放源代码的PHP程序调试器(即一个Debug工具),可以用来跟踪,调试和分析PHP程序的运行状况。你可以通过调试器进行前后端交互式地调试脚本。
PhpStorm作为一款强大的IDE,debug功能自然不在话下。 
本案例下只讲述最基本实用的debug方法。
 
2 操作详解
 
2.1准备工作
 
PHPSTORM版本 : 8.0.3
PHP版本 : 5.5.12
xdebug版本:php_xdebug-2.2.5-5.5-vc11.dll 
注 : php版本和xdebug版本一定要相对应。我这里用的是wampserver,PHP与xdebug均已下载。单独下载Xdebug 网址为http://xdebug.org/download.php
 

2.2配置php.ini

找到php.ini所在的目录,在该文件的最后添加以下文本(如果已存在,要把前面的分号;去掉)
zend_extension_ts="d:/wamp/bin/php/php5.5.12/zend_ext/php_xdebug-2.2.5-5.5-vc11.dll"//Xdebug存放路径,
xdebug.remote_enable=ON//是否允许远程终端,这个必须开启
xdebug.profiler_enable = Off//性能优化,本文用不到,选择关闭(不关闭,会以约每分钟几百M的速度产生大量日志文件,用不上一天你的硬盘就哭了)
xdebug.idekey="PHPSTORM";//这里是调试器的关键字
保存,重启服务器。
 
查看Xdebug是否开启成功,打印一下phpinfo即可。把以下代码放到任意php文件中,浏览器访问即可。
<?php echo phpinfo(); ?>
 
 
 
2.3配置PhpStorm
 
下拉选择 Edit Configurations,配置服务器信息,添加项目调试开发地址,点击OK。PhpStorm配置完成。本地服务器配置详情查看 http://blog.csdn.net/knight_quan/article/details/51830683
 
 
 
 
 
 
2.4使用调试功能
 
在需要调试的行上打上断点(点击一下行号后面的空白处即可,再点一次取消断点),需要说明的是当程序运行到该断点时,程序会停留在该行,但该行本身不会执行。自此可以查看程序运行到此处时所包含的所有数据信息。当然,查看信息功能相当于使用echo,print或者var_dump。
操作流程:
打断点—>点击臭虫—>点击浏览器页面触发断点—>自动跳转回PhpStorm—>查看携带的数据(调试的目的)—>可按步执行查找问题点—>点击运行(或者F5)—>浏览器页面继续执行—>调试完成
 

 
 

 
3 补充说明
 
3.1如果端口被占用,可以在php.ini中配置xdebug.remote_port与PhpStorm中的Debug port相同即可。
php.ini中:
xdebug.remote_port = 9000
 
PhpStorm中:
 
 
4 总结:
Xdebug可以用来跟踪,调试和分析PHP程序的运行状况。本文重点是调试。Xdebug本身拥有大量内置函数,可以分析php程序性能瓶颈等问题。关于其高级使用方法,会在其他文章中讲到。灵活使用Xdebug,对提高调试效率会有很大帮助。(

记录下来方便查找备用)

5 参考

1.PhpStorm中如何使用Xdebug工具,入门级操作方法

[转]PhpStorm中如何使用Xdebug工具,入门级操作方法(亲测有效)的更多相关文章

  1. PhpStorm中如何使用Xdebug工具,入门级操作方法

    http://blog.csdn.net/knight_quan/article/details/51953269 1.简介: PhpStorm是一个轻量级且便捷的PHP IDE,其提供的智能代码补全 ...

  2. PhpStorm中如何配置SVN,详细操作方法 - 郑加全的博客 - CSDN博客

      登录|注册       郑加全的博客       目录视图 摘要视图 订阅 CSDN日报0711——<离开校园,入职阿里,开启新的程序人生>      征文 | 你会为 AI 转型么? ...

  3. PhpStorm中如何使用database工具,详细操作方法

    1.简介:   PhpStorm是一个轻量级且便捷的PHP IDE,其提供的智能代码补全,快速导航以及即时错误检查等功能大大提高了编码效率.它以其独特的开发便利性,短时间内赢得了大量PHPer的青睐. ...

  4. PhpStorm中如何配置SVN,详细操作方法

    1.简介: PhpStorm是一个轻量级且便捷的PHP IDE,其提供的智能代码补全,快速导航以及即时错误检查等功能大大提高了编码效率.它是一款商业的 PHP 集成开发工具,以其独特的开发便利性,短时 ...

  5. PhpStorm中如何使用database工具

    环境:ubuntu18.4 mysql5.7 一. 打开database 1.选择View—>Tool Windows—>Database单击打开. 2.新增数据连接 选择 “+”—> ...

  6. 关于iTerm2中颜色配置及快捷键使用技巧(亲测)

    https://github.com/mbadolato/iTerm2-Color-Schemes http://chriskempson.com/projects/base16 (同事用的) 按照g ...

  7. Arduino中数据类型转换 float/double转换为char 亲测好使,dtostrf()函数

    如何轻松玩转Arduino单片机,当我在进行数据转换的时候,遇到了问题,尝试了C语言和C++中的好多函数,都没有达到将float型数据转换为char型的目的.苦苦查阅资料后,终于找到了一个大神级函数! ...

  8. vue中element-ui table列名lable换行问题 ---亲测

    1.lable操作 :label = "'xxxxx \n xxxxx'" // 注意 lable 的: 注:双引号内有单引号,这样才可以解析文本.需要换行的文本处添加 \n 2. ...

  9. [Android Pro] 跨平台反编译工具 jadx (ubuntu亲测 可用)

    github :  https://github.com/skylot/jadx 输入: .dex, .apk, .jar or .class 输出: 资源文件 和  class文件 不支持重新打包, ...

随机推荐

  1. 039、Data Volume 之 bind mount (2019-02-28 周四)

    参考https://www.cnblogs.com/CloudMan6/p/7142150.html     Date Volume 本质上是Dokcer host文件系统中的目录或者文件,能够直接被 ...

  2. window跟vue变量互相绑定

    js实现变量监听 //定义一个对象,挂载到window下,后续在任何模块中,给这个对象的show属性赋值,都将触发set对应的代码,我这么写主要是为了解决vue子组件向父组件传值的问题 window. ...

  3. 一个强大的VS代码搜索工具

    最近一直在寻找一款VS代码搜索插件,终于找到了一个不错的,仅支持vs2012以上. https://marketplace.visualstudio.com/items?itemName=mario- ...

  4. 【五】服务熔断、降级 —— Hystrix(豪猪)

    分布式系统面临的问题 复杂分布式体系结构中的应用程序有数十个依赖,每个依赖关系将在某些时候将不可避免地失败. 服务雪崩 多个微服务之间调用的时候,假设微服务A调用微服务B和微服务C,微服务 B和微服务 ...

  5. 第20月第17天 mvvm 多次点击push -ObjC

    1. 响应式库EasyReact建成后,为了能使其得到更好的利用,更好地降低使用的理解和学习成本,臧成威老师又带领团队开发了基于响应式的MVVM框架:EasyMVVM. https://www.jia ...

  6. 【css】正确的让文本换行

    通常文本换行我们会使用word-break属性,有两个值供我们选择 word-break: break-all; word-break: break-world; 那么如何区分这两个值呢,我们看图说话 ...

  7. C#获取客户端IP地址

    客户端ip:Request.ServerVariables.Get("Remote_Addr").ToString();客户端主机名:Request.ServerVariables ...

  8. Django REST framework 简介

    需求 REST framework需要如下: Python (2.7, 3.2, 3.3, 3.4, 3.5, 3.6) Django (1.10, 1.11, 2.0) 下面的文件包可以选择性安装 ...

  9. 委托(作用:解耦),lambda的演化

    1.了解委托 MyDelegate类代码如下: using System; using System.Collections.Generic; using System.Linq; using Sys ...

  10. 论文笔记系列-iCaRL: Incremental Classifier and Representation Learning

    导言 传统的神经网络都是基于固定的数据集进行训练学习的,一旦有新的,不同分布的数据进来,一般而言需要重新训练整个网络,这样费时费力,而且在实际应用场景中也不适用,所以增量学习应运而生. 增量学习主要旨 ...