首先配置好xdebug
在php.ini里面加入以下配置(修改完注意重启apache或nginx):
<span class="pun">[</span><span class="pln">xdebug</span><span class="pun">]</span>
<span class="pln">zend_extension</span><span class="pun">=</span><span class="str">"/usr/local/opt/php55-xdebug/xdebug.so"</span>
<span class="pln">xdebug</span><span class="pun">.</span><span class="pln">remote_enable</span><span class="pun">=</span><span class="typ">On</span>
<span class="pln">xdebug</span><span class="pun">.</span><span class="pln">remote_autostart</span><span class="pun">=</span><span class="typ">Off</span>
<span class="pln">xdebug</span><span class="pun">.</span><span class="pln">remote_host</span><span class="pun">=</span><span class="str">"localhost"</span>
<span class="pln">xdebug</span><span class="pun">.</span><span class="pln">remote_port</span><span class="pun">=</span><span class="lit">9002</span>
<span class="pln">xdebug</span><span class="pun">.</span><span class="pln">remote_handler</span><span class="pun">=</span><span class="str">"dbgp"</span>
<span class="pun">;</span><span class="pun">可以是任意</span><span class="typ">Key</span><span class="pun">,这里设定为</span><span class="pln">PHPSTORM</span>
<span class="pln">xdebug</span><span class="pun">.</span><span class="pln">idekey</span><span class="pun">=</span><span class="str">"PHPSTORM"</span>
注:我所用的是mac的brew-emp(nginx+mysql+php),它的xdebug配置文件不在php.ini,而是在/usr/local/etc/php/5.5/conf.d里的ext-xdebug.ini中
配置phpstorm xdebug监听的服务器以及php应用程序(项目)
phpstorm右侧的Edit Configurations
接上图:
如下图,填写php网站的名称,以及Server(一开始没有server,需要先添加(看下图),host就是你虚拟主机名,端口一般是80除非你虚拟主机配置的时候特别指定了其他端口)
配置好之后,如下图所示:
注:Start URL看具体情况,我是用nginx的,www.test.com是在浏览器上可以直接访问到我网站主页的,所以我就直接填个斜线“/”就行,如果你要具体指定到某个文件,那就自己填上去。
最后应用(apply)——保存(save)。
设置phpstorm xdebug监听的端口
(端口号只要是系统没用到的就行,但是要跟前面xdebug配置文件"xdebug.remote_port=9002"中的端口号相同),设置方法如下:
在phpstorm的设置里,搜索debug,找到Languages & Frameworks——PHP——Debug
上一步点击Debug进入如下界面:
其他选项可以看着选,不过注意Debug port要和xdebug的配置里的端口一样:
浏览器中安装xdebug插件
1、谷歌浏览器安装Xdebug helper插件
2、火狐浏览器安装easy Xdebug 插件
搜索到两个easy debug,用比较新的那个
如下图,点击小虫,当小虫下方有个红色减号的时候,表示开始监听debug,当下图的正方形为红色的时候(鼠标点击可切换状态),会在cookie中记录xdebug profile
cookie:
开始使用xdebug
首先在代码中打一个或多个断点(程序运行到这里会中断,然后会输出debug信息)
然后在phpstorm中选择要debug的应用程序(因为可以创建多个要debug的应用程序),然后点击小电话图标开始监听debug(不监听状态:,监听状态:),最后点击小虫子
点击小虫子后,会自动用浏览器打开然后又会自动跳回到phpstorm(看你debug的是什么位置,有时候不一定会跳),并且此时在phpstorm下方会输出debug信息。
设置debug的时候,运行到的那一行的代码颜色颜色
debug的行的这些信息怎样去掉?
点击下面这个按钮就能去掉
step into就是单步执行,遇到子函数就进入并且继续单步执行;
step over是在单步执行时,在函数内遇到子函数时不会进入子函数内单步执行,而是将子函数整个执行完再停止,也就是把子函数整个作为一步。有一点,经过我们简单的调试,在不存在子函数的情况下是和step into效果一样的。
step out就是但单步执行到子函数内时,用step out就可以执行完子函数余下部分,并返回到上一层函
数。
step into:进入子函数
step over:越过子函数,但子函数会执行
step out:跳出子函数