Phpstorm+Xdebug断点调试PHP的方法


Posted in PHP onMay 14, 2018

为什么使用断点调试

大家可能会觉得使用var_dump和echo也能调试啊,为什么还要安装Xdebug断点调试呢?

确实是这样。但是var_dump和echo写的代码后面还要删除,而且明确是知道在哪打的,如果发现没有运行到打点的地方,还要修改代码再运行一次。而断点调试,可以在调试过程中动态打断点,逐行查看当前各个变量的值,甚至临时修改变量的值,更方便。建议大家使用Xdebug断点调试。

安装Xdebug

pecl install xdebug

如果是php7以下版本,需要加上版本号:

pecl install xdebug-2.5.5

pecl如果提示找不到该扩展,则使用源码编译。例如:

wget http://pecl.php.net/get/xdebug-2.5.5.tgz \
  && tar xzf xdebug-2.5.5.tgz && cd xdebug-2.5.5/ \
  && phpize \
  && ./configure \
  && make && make install

注:php5.6只能使用2.5及以下版本xdebug。

安装好后需要在php.ini进行配置:

[xdebug]
zend_extension=xdebug.so
xdebug.enable=1
xdebug.remote_enable=1
;如果开启此,将忽略下面的 xdebug.remote_host 的参数
;xdebug.remote_connect_back=1
;自动启动,无需XDEBUG_SESSION_START=1
xdebug.remote_autostart=1 
;宿主机IP
xdebug.remote_host=192.168.36.101 
xdebug.remote_port=19001
xdebug.remote_handler=dbgp

需要注意的是:

1、是zend_extension,不是extension;

2、xdebug.remote_autostart开启后,就不用手动在请求url里加上XDEBUG_SESSION_START=1了,只要Phpstorm开启断点调试就ok了。很方便;

3、remote_host配置的是安装有Phpstorm的机器,这点需要注意。如果php安装的机器和Phpstorm安装的机器是同一台机器,那么地址写127.0.0.1即可。

如果你采用的是docker环境,remote_host写宿主机的IP。

4、xdebug.remote_port端口我写的是19001,那么Phpstorm也需要修改。

配置完成后需要重启php-fpm。

配置Phpstorm

配置也很简单,配置端口即可:

Phpstorm+Xdebug断点调试PHP的方法

接下来就可以断点调试了。开启监听:

Phpstorm+Xdebug断点调试PHP的方法

请求url的时候就会自动捕捉到请求。

注意:

1、不要同时开启多个项目的监听;

2、监听远程代码的时候,如果宿主机和代码所在目录结构一致,会直接监听成功。否则,会提示设置代码映射关系。也可以手动设置:

Phpstorm+Xdebug断点调试PHP的方法

这里因为宿主机是windows,代码在linux里,目录不一致,做了映射。否则断点会失败。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
php4的session功能评述(一)
Oct 09 PHP
PHP中的正规表达式(二)
Oct 09 PHP
PHP header函数分析详解
Aug 06 PHP
深入phpMyAdmin的安装与配置的详细步骤
May 07 PHP
探讨Hessian在PHP中的使用分析
Jun 13 PHP
关于Zend Studio 配色方案插件的介绍
Jun 24 PHP
PHP四舍五入、取整、round函数使用示例
Feb 06 PHP
PHP模板引擎smarty详细介绍
May 26 PHP
浅谈COOKIE和SESSION区别
Jul 19 PHP
2款PHP无限级分类实例代码
Nov 11 PHP
php实现博客,论坛图片防盗链的方法
Oct 15 PHP
让ThinkPHP的模板引擎达到最佳效率的方法详解
Mar 14 PHP
Laravel 集成 Geetest验证码的方法
May 14 #PHP
PHP 多任务秒级定时器的实现方法
May 13 #PHP
原生JS实现Ajax通过POST方式与PHP进行交互的方法示例
May 12 #PHP
原生JS实现Ajax通过GET方式与PHP进行交互操作示例
May 12 #PHP
ThinkPHP框架实现导出excel数据的方法示例【基于PHPExcel】
May 12 #PHP
Laravel框架实现model层的增删改查(CURD)操作示例
May 12 #PHP
layui框架实现文件上传及TP3.2.3(thinkPHP)对上传文件进行后台处理操作示例
May 12 #PHP
You might like
5.PHP的其他功能
2006/10/09 PHP
php url地址栏传中文乱码解决方法集合
2010/06/25 PHP
PHP 八种基本的数据类型小结
2011/06/01 PHP
制作个性化的WordPress登陆界面的实例教程
2016/05/21 PHP
php用wangeditor3实现图片上传功能
2019/08/22 PHP
js 操作select相关方法函数
2009/12/06 Javascript
javascript生成随机大小写字母的方法
2014/02/20 Javascript
DOM基础教程之事件类型
2015/01/20 Javascript
推荐一个自己用的封装好的javascript插件
2015/01/29 Javascript
jQuery实现点击按钮文字变成input框点击保存变成文字
2016/05/09 Javascript
jqPlot jQuery绘图插件的使用
2016/06/18 Javascript
javascript中replace使用方法总结
2017/03/01 Javascript
如何解决vue与传统jquery插件冲突
2017/03/20 Javascript
jQuery 利用ztree实现树形表格的实例代码
2017/09/27 jQuery
nodejs更改项目端口号的方法
2018/05/13 NodeJs
JavaScript键盘事件响应顺序详解
2019/09/30 Javascript
用Python写的图片蜘蛛人代码
2012/08/27 Python
python list语法学习(带例子)
2013/11/01 Python
python实现自动更换ip的方法
2015/05/05 Python
python中logging包的使用总结
2018/02/28 Python
Python2.x与3​​.x版本有哪些区别
2020/07/09 Python
css3翻牌翻数字的示例代码
2020/02/07 HTML / CSS
使用css如何制作时间ICON方法实践
2012/11/12 HTML / CSS
奥地利票务门户网站:oeticket.com
2019/12/31 全球购物
syb养殖创业计划书
2014/01/09 职场文书
担保书怎么写
2014/04/01 职场文书
会计学自荐信
2014/06/03 职场文书
银行求职自荐信
2014/06/30 职场文书
师范毕业生求职信
2014/07/11 职场文书
关于感恩的演讲稿800字
2014/08/26 职场文书
2014年中秋节活动总结
2014/08/29 职场文书
2014年党的群众路线学习心得体会
2014/11/05 职场文书
校园广播站开场白
2015/06/01 职场文书
2016大一新生入学教育心得体会
2016/01/23 职场文书
Python Pandas常用函数方法总结
2021/06/15 Python
OpenFeign实现远程调用
2022/08/14 Java/Android