博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
配置PHPStorm+Vagrant+Laravel的Xdebug调试环境
阅读量:6593 次
发布时间:2019-06-24

本文共 2890 字,大约阅读时间需要 9 分钟。

背景

还记得刚学PHP的时候使用var_dump()echodie()exit()等函数进行断点调试,这种方法不但效率低、不直观、而且很难发现错误出现的具体位置。自从使用了PHPStorm这款IDE后,开始使用Xdebug进行调试,效率非常高。我在网上没有找到比较适合我开发环境的Xdebug配置教程,于是将具体的配置写成了一篇博客,希望能帮到大家。

我的开发环境

PHP:5.5

Xdebug:2.2.3
PHPStorm:2016.2.2
Vagrant:1.8.6
OS:Ubuntu 14.04 LTS

开始配置

1、Xdebug安装

检查Xdebug是否安装

首先需要检查Xdebug是否已经安装,如果已安装则跳过此步骤。方法非常简单,可以直接打开phpinfo()页面,搜索xdebug。如果搜索结果如下图的话,说明已经安装了Xdebug:

图片描述

安装Xdebug

在Ubuntu中安装PHP的扩展很简单,只需要一个命令:

sudo apt-get install php5-xdebug

安装成功命令行会有如下提示:

Reading package lists... DoneBuilding dependency tree       Reading state information... DoneThe following package was automatically installed and is no longer required:  libaio1Use 'apt-get autoremove' to remove it.The following NEW packages will be installed:  php5-xdebug0 upgraded, 1 newly installed, 0 to remove and 66 not upgraded.Need to get 253 kB of archives.After this operation, 982 kB of additional disk space will be used.Get:1 http://cn.archive.ubuntu.com/ubuntu/ trusty/universe php5-xdebug amd64 2.2.3-2build1 [253 kB]Fetched 253 kB in 2s (101 kB/s)         Selecting previously unselected package php5-xdebug.(Reading database ... 69439 files and directories currently installed.)Preparing to unpack .../php5-xdebug_2.2.3-2build1_amd64.deb ...Unpacking php5-xdebug (2.2.3-2build1) ...Setting up php5-xdebug (2.2.3-2build1) ...php5_invoke: Enable module xdebug for fpm SAPIphp5_invoke: Enable module xdebug for cli SAPI

这样,我们就安装好了Xdebug。此时安装程序应该自动帮我们生成了Xdebug的配置文件,pathinfo()中也应该可以搜索到Xdebug的结果。

配置Xdebug

我们在pathinfo()里可以看到xdebug的配置路径:

图片描述

我的Xdebug配置文件路径在“/etc/php5/fpm/conf.d/20-xdebug.ini”。如果你的pathinfo()中的Additional .ini没有任何配置的话,那么你的Xdebug配置应该在php.ini中。

接着,编辑Xdebug配置文件,在“zend_extension=xdebug.so”下面添加一些配置,最终如下:

zend_extension=xdebug.soxdebug.idekey = "vagrant"xdebug.default_enable = 1xdebug.remote_connect_back = 1xdebug.remote_port = 9001xdebug.remote_enable = 1xdebug.remote_autostart = 1xdebug.remote_handler="dbgp"

到此,Xdebug配置部分已经好了。

PHPStorm配置

设置Xdebug的端口

在Languages & Frameworks -> PHP -> Debug 中找到配置,Debug port改成Xdebug配置文件中的xdebug.remote_port一样的端口号:

图片描述

设置DBGp Proxy

在Languages & Frameworks -> PHP -> Debug -> DBGp Proxy,IDE key改成Xdebug配置文件中对应的xdebug.idekey

图片描述

添加一个Server

在Languages & Frameworks -> PHP -> Servers 中找到配置,点击+添加一个Server,配置类似下图:

图片描述

根据自己开发环境修改配置:

Name是Server名称,可以随便填写;

Host为你调试项目是访问的IP或者域名.

  • 假设你的访问路径为“”,那这里配置成192.168.1.102
  • 假设你的访问路径为“”,那这里配置成www.abc.com

Port为你Web服务器的端口,一般为80

除此之外还需要配置项目路径的映射(path mapping),将项目的根目录以及public目录映射到Vagrant服务器中的绝对路径。

配置调试运行环境

在菜单中找到 Run -> Edit Configurations,点击窗口左上角的+添加PHP Web Application(2018.2以上版本选择PHP Web Page):

图片描述
图片描述
图片描述

根据自己开发环境修改配置:

Name是配置名称,可以随便填写;

Server选择刚添加的那个Server;
Start URL无需改变;
Browser也无需改变。

开始调试

所有步骤都配置完后,我们可以点击菜单中的 Run -> Start Listening for PHP Debug Connections 进行调试监听。

图片描述

这个操作可以用IDE右上角的图标代替:

图片描述

这时我们在代码中添加断点,然后在浏览器中访问,调试效果如下:

图片描述

通过Debug我们可以清晰的看到各参数、对象的值,还可以深入的跟踪,非常方便。本教程到此就结束了,希望帮到了大家。

常见错误

Mapping

如果在添加Server时未配置映射,断点调试时会提示如下错误:

图片描述
解决方法就是按照添加一个Server步骤配置Mapping。

转载地址:http://fecio.baihongyu.com/

你可能感兴趣的文章
oracle kill所有plsql developer进程
查看>>
keepalived双机热备原理及实例部署LVS+keepalived
查看>>
曲线学习PyQt5方案一
查看>>
OpenCV学习】矩阵运算和操作2
查看>>
nginx+ffmpeg搭建rtmp转播rtsp流的flash服务器
查看>>
关于在arm裸板编程时使用printf问题的解决方法
查看>>
开源人工智能技术将改变一切
查看>>
2015 上半年 JavaScript 使用统计数据
查看>>
《Python算法教程》——1.6 如果您感兴趣
查看>>
深度解析Java8 – AbstractQueuedSynchronizer的实现分析(下)
查看>>
SSH原理与运用(一):远程登录
查看>>
动态代理解决网站字符集编码
查看>>
后台统计
查看>>
React组件: 提取图片颜色
查看>>
3D应用开发中的欧拉角和旋转矩阵
查看>>
爬虫必备技能xpath的用法和实战
查看>>
RxJava2.0的初学者必备教程(九)
查看>>
记一次omi的项目之旅
查看>>
Android API级别、代号、发布时间及平台亮点整理
查看>>
LLDP(链路层发现协议)
查看>>