服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服务器之家 - 编程语言 - PHP教程 - Phpstorm+Xdebug断点调试PHP的方法

Phpstorm+Xdebug断点调试PHP的方法

2019-10-07 11:52飞鸿影~ PHP教程

这篇文章主要介绍了Phpstorm+Xdebug断点调试PHP的方法,本教程将通过配置Xdebug扩展进行断点调试,目的在于提高大家的开发效率,感兴趣的小伙伴们可以参考一下

为什么使用断点调试

大家可能会觉得使用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教程Laravel框架自定义验证过程实例分析

    Laravel框架自定义验证过程实例分析

    这篇文章主要介绍了Laravel框架自定义验证过程,结合实例形式分析了Laravel框架自定义验证的相关原理、路由、模型等操作技巧,需要的朋友可以参考下...

    trouble-i-am-in2592019-06-21
  • PHP教程Django中通过定时任务触发页面静态化的处理方式

    Django中通过定时任务触发页面静态化的处理方式

    Django是一个开放源代码的Web应用框架,由Python写成。这篇文章主要介绍了Django中通过定时任务触发页面静态化的方式,需要的朋友可以参考下...

    skaarl3372019-09-09
  • PHP教程PHP实现的解汉诺塔问题算法示例

    PHP实现的解汉诺塔问题算法示例

    这篇文章主要介绍了PHP实现的解汉诺塔问题算法,简单描述了汉诺塔问题及相应的实现算法,并结合实例形式给出了PHP具体操作技巧,需要的朋友可以参考下 ...

    qw_xingzhe4792019-09-16
  • PHP教程PHP自定义错误处理的方法分析

    PHP自定义错误处理的方法分析

    这篇文章主要介绍了PHP自定义错误处理的方法,结合实例形式分析了php错误处理机制及php自定义错误处理相关操作技巧,需要的朋友可以参考下...

    天涯海角路4772019-07-15
  • PHP教程Yii2.0框架实现带分页的多条件搜索功能示例

    Yii2.0框架实现带分页的多条件搜索功能示例

    本文实例讲述了Yii2.0框架实现带分页的多条件搜索功能。分享给大家供大家参考,具体如下: 方法一 在控制器中 public function actionShow(){ $where[title]=Yii::$app-request-get(title); $where[content]=Yii::$app-request-get(content); $query=new Query(); $query-f...

    小井smile的博客4102019-06-11
  • PHP教程PHP addcslashes()函数讲解

    PHP addcslashes()函数讲解

    今天小编就为大家分享一篇关于PHP addcslashes()函数讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧...

    php参考手册4542019-06-19
  • PHP教程Laravel 队列使用的实现

    Laravel 队列使用的实现

    这篇文章主要介绍了Laravel 队列使用的实现,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    bbdlg2252019-07-07
  • PHP教程让Laravel API永远返回JSON格式响应的方法示例

    让Laravel API永远返回JSON格式响应的方法示例

    这篇文章主要给大家介绍了关于如何让Laravel API永远返回JSON格式响应的相关资料,需要的朋友可以参考下...

    daisy3142019-09-08