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 相关文章推荐
adodb与adodb_lite之比较
Dec 31 PHP
一个php导出oracle库的php代码
Apr 20 PHP
解决PHP里大量数据循环时内存耗尽的方法
Oct 10 PHP
WordPress中用于获取文章作者与分类信息的方法整理
Dec 17 PHP
PHP的Yii框架中使用数据库的配置和SQL操作实例教程
Mar 17 PHP
php微信高级接口群发 多客服
Jun 23 PHP
mysql查找删除重复数据并只保留一条实例详解
Sep 24 PHP
PHP递归实现文件夹的复制、删除、查看大小操作示例
Aug 11 PHP
Laravel 实现密码重置功能
Feb 23 PHP
yii2 上传图片的示例代码
Nov 02 PHP
PHP使用HTML5 FormData对象提交表单操作示例
Jul 02 PHP
php设计模式之观察者模式定义与用法经典示例
Sep 19 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 5.3.5安装memcache注意事项小结
2011/04/12 PHP
php实现字符串首字母大写和单词首字母大写的方法
2015/03/14 PHP
php 下 html5 XHR2 + FormData + File API 上传文件操作实例分析
2020/02/28 PHP
类似CSDN图片切换效果脚本
2009/09/17 Javascript
JS解析json数据并将json字符串转化为数组的实现方法
2012/12/25 Javascript
JavaScript在IE和FF下的兼容性问题
2014/05/19 Javascript
原生js实现类似弹窗抖动效果
2015/04/02 Javascript
jQuery插件cxSelect多级联动下拉菜单实例解析
2016/06/24 Javascript
jQuery 3.0十大新特性
2016/07/06 Javascript
js基于cookie记录来宾姓名的方法
2016/07/19 Javascript
详解bootstrap导航栏.nav与.navbar区别
2017/11/23 Javascript
使用JavaScript生成罗马字符的实例代码
2018/06/08 Javascript
小程序scroll-view组件实现滚动的示例代码
2018/09/20 Javascript
Vue 框架之动态绑定 css 样式实例分析
2018/11/14 Javascript
Node.js 多进程处理CPU密集任务的实现
2019/05/26 Javascript
node中短信api实现验证码登录的示例代码
2021/01/20 Javascript
python发送arp欺骗攻击代码分析
2014/01/16 Python
python多线程操作实例
2014/11/21 Python
Python获取linux主机ip的简单实现方法
2016/04/18 Python
三步解决python PermissionError: [WinError 5]拒绝访问的情况
2020/04/22 Python
filter使用python3代码进行迭代元素的实例详解
2020/12/03 Python
纯CSS实现菜单、导航栏的3D翻转动画效果
2014/04/23 HTML / CSS
CSS3实现内凹圆角的实例代码
2017/05/04 HTML / CSS
韩国美国时尚服装和美容在线全球市场:KOODING
2018/11/07 全球购物
就业自荐书
2013/12/05 职场文书
公司出纳岗位职责
2013/12/07 职场文书
园林资料员岗位职责
2013/12/30 职场文书
英语专业毕业生自荐信范文
2013/12/31 职场文书
幼儿园实习生辞职信
2014/01/20 职场文书
计算机个人求职信范例
2014/01/24 职场文书
元旦晚会感言
2014/03/12 职场文书
副总经理任命书
2014/06/05 职场文书
学生检讨书怎么写
2015/05/07 职场文书
学籍证明模板
2015/06/18 职场文书
导游词之江苏溱潼古镇
2019/11/27 职场文书
Golang bufio详细讲解
2022/04/21 Golang