配置好xdebug,也能使得phpstorm像java哪像跑断点调试,爽的一笔!!!

下载xdebug并配置

[XDebug]
zend_extension=php_xdebug-2.4.0rc3-5.6-vc11-nts.dll
xdebug.collect_params = ;打开收集“函数参数”的功能。将函数调用的参数值列入函数过程调用的监测信息中。此配置项的默认值为off。
xdebug.collect_return = on ;收集函数返回值
xdebug.profiler_enable= ;打开效能监测器
xdebug.profiler_enable_trigger = ;不自动打开,触发打开
xdebug.auto_trace=on ;自动打开“监测函数调用过程”的功模。该功能可以在你指定的目录中将函数调用的监测信息以文件的形式输出。此配置项的默认值为off。
xdebug.auto_profile = on ;自动打开性能检测
xdebug.trace_output_dir="F:/php/xdebug/trace_dir" ;设定函数调用监测信息的输出文件的路径
xdebug.profiler_output_dir="F:/php/xdebug/profiler_dir"
xdebug.profiler_output_name = "cachegrind.out.%p" ;设定效能监测信息输出文件的路径
xdebug.remote_enable=on ;远程调试打开
xdebug.remote_handler=dbgp ;远程头请求方式
xdebug.remote_host=localhost ;远程地址,指的是连接本php所在服务器的客户端ip
xdebug.remote_port= ;远程端口号

设置phpstorm

有4处设置

菜单栏,file->settings->php下有3处,分别是:

》Servers

name内容随便,其他由于是本机本地项目,所以localhost,80,debug。

》debug

debug port保持和php.ini里配置的remote_port相同

》dbgp proxy

idekey保持和php.ini一致,主机端口和server一样

第4个配置

图1:

图2:

图1右上角的三个圈圈,第一个红色,选择里面的edit configure弹出图2,新建配置php web application的选项即可,具体内容见上图图2。

开始

图1右上角紫色圈圈,点击切换绿色,启动调试监听,点击第二个蓝色圈圈即可启动调试。

注意:本地的web服务器要开启,比如nginx,apache等,监听80端口。

xdebug原理

参考http://www.softown.cn/post/117.html

使用Zend Studio或其他客户端(下面统称"客户端")通过Xdebug进行远程调试时,客户端就会监听Xdebug调试器(Zend Studio已内置)设置的调试端口(默认为9000),并在当前调试的URL后面加上了XDEBUG_SESSION_START的请求参数,参数值为客户端标识(相当于用户名,用以区别不同的客户端),然后向PHP服务器发送请求,例如:

http://localhost/index.php?XDEBUG_SESSION_START=ECLIPSE_DBGP&KEY=13986635740313
当PHP服务器的Xdebug模块检测到请求URL中带有XDEBUG_SESSION_START参数时,则将该请求的响应挂起,并自动进入调试模式。此时,Xdebug将会尝试以指定的协议(一般是DBGP)与Xdebug配置中指定的地址xdebug.remote_host:xdebug.remote_port建立连接。 如果没有特殊设置,xdebug.remote_host默认为localhost,xdebug.remote_port默认为9000,默认的连接地址即是localhost:。
默认配置下,Xdebug只能为一个客户端提供远程调试服务,如果想要为多个客户端提供远程调试服务,则需要设置xdebug.remote_connect_back = 。
当客户端和Xdebug建立DBGP连接后,客户端就可以为我们提供远程调试服务了,远程调试会话开启流程如下图所示:

 

最新文章

  1. MySQL 事物控制和锁定语句
  2. Android中图片的处理(放大缩小,去色,转换格式,增加水印等)(转)
  3. O(1)快速乘注意事项
  4. linux fork 进程后 主进程的全局变量
  5. 2013年山东省第四届ACM大学生程序设计竞赛 Alice and Bob
  6. WPF杂难解 奇怪的DisconnectedItem
  7. NSArray 跟 NSMutableArray 使用 区别
  8. MFC关于VS内存释放的定位
  9. ADT 连接手机运行android应用程序时报错
  10. JAVA Timer定时器使用方法(一)
  11. linq左连接查询加上into后怎么查询右表是否为空
  12. rabbitmq 死信邮箱配置(dead-letter)
  13. SpringCloud教程 | 第五篇: 路由网关(zuul)(Finchley版本)
  14. 树莓派3代刷ubuntu mate在命令行下配置wifi不能连接的一个诡异的bug的解决
  15. Struts2配置拦截器
  16. JS列表
  17. hdu3879 最大权闭合回路
  18. mybatis generator自动生成sqlmap代码的不完善之处以及解决方法
  19. dnstop DNS分析工具
  20. 【 MAKEFILE 编程基础之四】详解MAKEFILE 函数的语法与使用!

热门文章

  1. (笔记)如何安装Arm-linux-gcc
  2. C语言中重要的小知识汇总
  3. Dubbo推刊
  4. php 判定pc端與移動端
  5. IntelliJ IDEA 终极破解
  6. Ruby gem: Mac 系统下的安装与更新
  7. CentOS 经常使用系统命令
  8. LR URL编码和解码方法
  9. 用iostat对linux硬盘IO性能进行检测
  10. ubuntu-14.04.2-desktop-i386.iso:ubuntu-14.04.2-desktop-i386:安装Oracle11gR2