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 相关文章推荐
PHP 5.0对象模型深度探索之对象复制
Mar 27 PHP
php echo()和print()、require()和include()函数区别说明
Mar 27 PHP
php 冒泡排序 交换排序法
May 10 PHP
PHP防CC攻击实现代码
Dec 29 PHP
提高PHP性能的编码技巧以及性能优化详细解析
Aug 24 PHP
php获取数组长度的方法(有实例)
Oct 27 PHP
php防止恶意刷新与刷票的方法
Nov 21 PHP
php使用pdo连接mssql server数据库实例
Dec 25 PHP
yii2中使用Active Record模式的方法
Jan 09 PHP
PHPExcel笔记, mpdf导出
May 03 PHP
php实现的pdo公共类定义与用法示例
Jul 19 PHP
php实现映射操作实例详解
Oct 02 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
基于PHP 面向对象之成员方法详解
2013/05/04 PHP
让PHP显示Facebook的粉丝数量方法
2014/01/08 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(二)
2014/06/23 PHP
PHP使用mysql_fetch_object从查询结果中获取对象集的方法
2015/03/18 PHP
如何修改yii2.0自带的user表为其它的表
2017/08/01 PHP
PHP接口继承及接口多继承原理与实现方法详解
2017/10/18 PHP
JS实现简单的Canvas画图实例
2013/07/04 Javascript
为jQuery添加Webkit的触摸的方法分享
2014/02/02 Javascript
jquery实现ajax提交form表单的方法总结
2014/03/03 Javascript
node.js解决获取图片真实文件类型的问题
2014/12/20 Javascript
浅谈setTimeout 与 setInterval
2015/06/23 Javascript
Nodejs的express使用教程
2015/11/23 NodeJs
纯JavaScript代码实现文本比较工具
2016/02/17 Javascript
javascript冒泡排序小结
2016/04/10 Javascript
微信小程序 弹框和模态框实现代码
2017/03/10 Javascript
Angularjs按需查询实例代码
2017/10/30 Javascript
Angular4的输入属性与输出属性实例详解
2017/11/29 Javascript
vue中使用ueditor富文本编辑器
2018/02/08 Javascript
jQuery cookie的公共方法封装和使用示例
2020/06/01 jQuery
Python运行的17个时新手常见错误小结
2012/08/07 Python
Python循环语句之break与continue的用法
2015/10/14 Python
Python中Threading用法详解
2017/12/27 Python
python实现大学人员管理系统
2019/10/25 Python
Pytho爬虫中Requests设置请求头Headers的方法
2020/09/22 Python
基于Python爬取股票数据过程详解
2020/10/21 Python
利用css3 translate完美实现表头固定效果
2017/02/28 HTML / CSS
西雅图的买手店:Totokaelo
2019/10/19 全球购物
三维科技面试题
2013/07/27 面试题
母亲七十大寿答谢词
2014/01/18 职场文书
8和9的加减法教学反思
2014/05/01 职场文书
学生顶撞老师的检讨书
2014/09/17 职场文书
民主生活会对照检查材料(统计局)
2014/09/21 职场文书
村主任“四风”问题个人整改措施
2014/10/04 职场文书
2014教师评职称工作总结
2014/11/10 职场文书
北京导游词
2015/02/12 职场文书
总结Python常用的魔法方法
2021/05/25 Python