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 相关文章推荐
第一节--面向对象编程
Nov 16 PHP
PHP mkdir()定义和用法
Jan 14 PHP
PHP加速 eAccelerator配置和使用指南
Jun 05 PHP
php设计模式 Mediator (中介者模式)
Jun 26 PHP
php可生成缩略图的文件上传类实例
Dec 17 PHP
php通过sort()函数给数组排序的方法
Mar 18 PHP
6个超实用的PHP代码片段
Aug 10 PHP
通过PHP自带的服务器来查看正则匹配结果的方法
Dec 24 PHP
Yii2框架实现登陆添加验证码功能示例
Jul 12 PHP
php微信公众号开发之翻页查询
Oct 20 PHP
如何在centos8自定义目录安装php7.3
Nov 28 PHP
PHP isset empty函数相关面试题及解析
Dec 11 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实现表单提交时去除斜杠的方法
2016/12/26 PHP
仅img元素创建后不添加到文档中会执行onload事件的解决方法
2011/07/31 Javascript
JS 实现Json查询的方法实例
2013/04/12 Javascript
文本域中换行符的替换示例
2014/03/04 Javascript
与Math.pow 相反的函数使用介绍
2014/08/04 Javascript
使用js实现数据格式化
2014/12/03 Javascript
javascript实现全角与半角字符的转换
2015/01/07 Javascript
ajax+jQuery实现级联显示地址的方法
2015/05/06 Javascript
JavaScript中的toLocaleDateString()方法使用简介
2015/06/12 Javascript
JavaScript 数组some()和filter()的用法及区别
2016/05/20 Javascript
JavaScript语言精粹经典实例(整理篇)
2016/06/07 Javascript
【经验总结】编写JavaScript代码时应遵循的14条规律
2016/06/20 Javascript
详解利用Angular实现多团队模块化SPA开发框架
2017/11/27 Javascript
vue-cli下的vuex的简单Demo图解(实现加1减1操作)
2018/02/26 Javascript
Vue+ElementUI实现表单动态渲染、可视化配置的方法
2018/03/07 Javascript
微信小程序中使用自定义图标(阿里icon)的方法
2018/08/20 Javascript
vue多层嵌套路由实例分析
2019/03/19 Javascript
VUE.CLI4.0配置多页面入口的实现
2019/11/25 Javascript
小程序中的箭头函数的具体使用
2020/06/19 Javascript
Python中SOAP项目的介绍及其在web开发中的应用
2015/04/14 Python
详解appium+python 启动一个app步骤
2017/12/20 Python
Python+opencv 实现图片文字的分割的方法示例
2019/07/04 Python
python设计微型小说网站(基于Django+Bootstrap框架)
2019/07/08 Python
python多进程下实现日志记录按时间分割
2019/07/22 Python
python程序 线程队列queue使用方法解析
2019/09/23 Python
Python学习之路之pycharm的第一个项目搭建过程
2020/06/18 Python
Currentbody西班牙:美容仪专家
2019/09/28 全球购物
意大利领先的奢侈品在线时装零售商:MCLABELS
2020/10/13 全球购物
建龙钢铁面试总结
2014/04/15 面试题
毕业生动漫设计求职信
2013/10/11 职场文书
大学生四年生活自我鉴定
2013/11/21 职场文书
公司承诺书格式
2014/05/21 职场文书
中学总务处工作总结
2015/08/12 职场文书
写给消防战士们的一封慰问信
2019/10/07 职场文书
编写python程序的90条建议
2021/04/14 Python
Go语言使用select{}阻塞main函数介绍
2021/04/25 Golang