php+xdebug+phpstorm(mac os x+homebrew)

  今天研究了下用phpstorm作xdebug调试,首先申明本人电脑是mac系统,软件包管理用的是homebrew,phpstorm用的是2016.3.2版本,php56,xdebug2.5.1,但愿对研究此方面的同窗有一点帮助,毕竟我花了一上午,google了好多资料才弄好。下面是效果图:

  先说下原理:xdebug能够控制PHP程序的执行,这意味着xdebug能够在任什么时候候暂停或者恢复正在运行的PHP程序。当PHP程序被暂停的时候,xdebug能够获取到程序的相关信息,好比变量的值等。xdebug也能够修改一个变量的值,而后再恢复暂停的程序,让其继续运行。xdebug配合IDE进行可视化调试的过程(如phpstorm的断点调试)被称为“远程调试”,是由于调试时有一个Server(xdebug)和一个Client(IDE),因此在调试的时候,被调试的PHP程序和调试PHP程序的IDE能够不在同一台电脑上。xdebug在进行远程调试的时候扮演一个Server的角色,它会在一个指定的端口(默认是9000)等待IDE的链接。目前有2种通讯的协议,GDB和DBGp,其中DBGp是DBG的取代协议。IDE在执行调试的时候,给xdebug发送须要执行的命令,xdebug接受到命令后执行,而后将执行的状况和得到的PHP程序运行信息返回给IDE。如今不少IDE都实现了与xdebug通讯的协议,本人用的是phpstorm。php

  1.环境准备及xdebug扩展安装。homebrew搭建nginx+php很是简单,几句命令就搞定了,我就很少说了,这里主要强调一点,homebrew默认安装的php是debug的,可是默认安装的php扩展确实二进制安装方式,非debug,因此brew intall php56-xdebug安装的扩展会报错。解决办法是brew install php56-xdebug -fs,即便用源码编译安装fs时from source的缩写,这样重启php,就能够启用xdebug扩展了。nginx

  2.配置ext-xdebug.ini文件,如图是个人配置,其中xdebug.remote_host/port/根据你本身的本地环境进行配置,另外建议加上最后一条xdebug.remote_log,不少人不加,到时候出错了也不知道去哪里找,加上这个,到时候来看这个文件,就知道哪里出问题了。redis

   3.配置phpstorm。步骤:浏览器

1,Preferences->语言和框架->php
2,Preferences->语言和框架->php->servers
3,Preferences->语言和框架->php->debug
4,Preferences->语言和框架->php->debug->dbgp proxy
以上忽略大小写,下面上图个人配置。

  4.下载浏览器插件。这个根据浏览器不一样,具体安装方式不一样,我用的是JetBrains IDE Support 2.0.9,这个不用多说。框架

  5.设置断点调试。在你配置的Servers根目录下,写代码,这个随意,个人是安装了Redis以及phpredis扩展,就写了个相关的,点击代码行首出现小红点就设置了断点,点击phpstorm右上角的电话标志,而后点击爬虫标志,简单设置下就能够了。而后就出现我开头展现的情形了,xdebug会在断点那里中止php的运行,把前面的变量的值显示在代码的旁边,很方便调试逻辑复杂的程序。phpstorm

  6.篇幅有限,本身研究的也有限,有兴趣的留言评论一块儿讨论吧。google