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 多进程 解决难题
Jun 22 PHP
利用ThinkPHP内置的ThinkAjax实现异步传输技术的实现方法
Dec 19 PHP
PHP学习笔记 IIS7下安装配置php环境
Oct 29 PHP
php中的常用魔术方法总结
Aug 02 PHP
PHP GD库生成图像的几个函数总结
Nov 19 PHP
php中define用法实例
Jul 30 PHP
浅谈Yii乐观锁的使用及原理
Jul 25 PHP
php+jQuery实现的三级导航栏下拉菜单显示效果
Aug 10 PHP
详解php 使用Callable Closure强制指定回调类型
Oct 26 PHP
PHP实现的超长文本分页显示功能示例
Jun 04 PHP
PHP获取HTTP body内容的方法
Dec 31 PHP
PHP中Static(静态)关键字功能与用法实例分析
Apr 05 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 数据结构 算法描述 冒泡排序 bubble sort
2011/07/10 PHP
PHP实现生成透明背景的PNG缩略图函数分享
2014/07/08 PHP
静态html文件执行php语句的方法(推荐)
2016/11/21 PHP
PHP实现在windows下配置sendmail并通过mail()函数发送邮件的方法
2017/06/20 PHP
解决php用mysql方式连接数据库出现Deprecated报错问题
2019/12/25 PHP
纯JS实现的批量图片预览加载功能
2011/08/14 Javascript
JS调用CS里的带参方法实例
2013/08/01 Javascript
JQuery分别取得每行最后一列和最后一行的示例代码
2013/08/18 Javascript
js采用map取到id集合组并且实现点击一行选中一行
2013/12/16 Javascript
Nodejs中调用系统命令、Shell脚本和Python脚本的方法和实例
2015/01/01 NodeJs
详解JavaScript中Date.UTC()方法的使用
2015/06/12 Javascript
基于JavaScript代码实现随机漂浮图片广告
2016/01/05 Javascript
Bootstrap基本组件学习笔记之面板(14)
2016/12/08 Javascript
解决AngualrJS页面刷新导致异常显示问题
2017/04/20 Javascript
vue组件实现进度条效果
2018/06/06 Javascript
vue中是怎样监听数组变化的
2020/10/24 Javascript
[03:17]2016完美“圣”典风云人物:冷冷专访
2016/12/08 DOTA
Python实现在线程里运行scrapy的方法
2015/04/07 Python
python中redis的安装和使用
2016/12/04 Python
Python PyQt5标准对话框用法示例
2017/08/23 Python
如何用python整理附件
2018/05/13 Python
Django 浅谈根据配置生成SQL语句的问题
2018/05/29 Python
洲际酒店集团美国官网:IHG美国
2017/11/16 全球购物
莫斯科购买书籍网站:Book24
2020/01/12 全球购物
《一件运动衫》教学反思
2014/02/19 职场文书
法人代表委托书
2014/04/04 职场文书
《充气雨衣》教学反思
2014/04/07 职场文书
大学社团活动总结
2014/04/26 职场文书
机关作风整顿个人整改措施2014
2014/09/17 职场文书
市委常委会班子党的群众路线教育实践活动整改方案
2014/10/25 职场文书
财务检查整改报告
2014/11/06 职场文书
毕业论文致谢信
2015/05/14 职场文书
2015年小学语文工作总结
2015/05/25 职场文书
python spilt()分隔字符串的实现示例
2021/05/21 Python
Python+DeOldify实现老照片上色功能
2022/06/21 Python
xhunter1.sys可以删除嘛? win11提示xhunter1.sys驱动不兼容解决办法
2022/09/23 数码科技