Windows系统下PhpStorm+Xdebug安装与调试
环境说明:
系统:Windows10
PhpStorm:2019.3.2
PHP版本:7.3.21
Xdebug版本 :2.7.2
一、Xdebug介绍
官网地址:https://xdebug.org/
1.1 什么是Xdebug
Xdebug是一个开放源代码的PHP程序调试器,其实就是一个Debug工具而已。可以用来跟踪,调试、分析PHP程序当前的运行状况!Xdebug作为PHP调试工具,提供了丰富的调试函数,通过开启自动跟踪(auto_trace)和分析器功能,可以比较直观的看到PHP源代码的性能数据,这为优化PHP代码提供了大大的方便。
1.2 为什么要使用Xdebug?
可能在项目开发当中 当你的业务代码复杂到一层又套一层的嵌套的时候, 或者说print_r 、 log 、 var_dump 这些打印方法也满足不了你的时候,并且你也没有在PhpStorm中配置过Xdebug 那么我建议可以尝试一下Xdebug来调试代码。
接下来记录一下PHP源代码性能调试工具Xdebug的安装以及配置
二、下载并安装Xdebug
2.1 确定系统使用的php的版本
创建一个php脚本文件phpinfo.php,并且可以访问
<?php
phpinfo();
?>
!!!重点!!!可以看出php的版本为7.3.21,64位的,且是线程安全
2.2 选择Xdebug版本
首先登录官网,官网地址:https://xdebug.org/,接着进入到Windows下载地址:https://xdebug.org/docs/install#windows, 然后点击download page页面
截止到文档记录时,Xdebug的版本为3.1.2。我们会发现针对php的版本,会有不同的Xdebug版本供下载。
其中TS代表线程安全,32bit或者64bit代表支持的电脑处理器是32位还是64位。注意下面的内容会比较重要。
2.2.1 Xdebug的版本选择版本-方式一
根据我们上面php的版本7.3.2, 64位且是线程安全的,我们理论上应该选择Xdebug的版本为PHP 7.3 VC15 TS (64 bit)。可以看到他的下载地址对应的Xdebug文件为php_xdebug-3.1.2-7.3-vc15-x86_64.dll
2.2.2 Xdebug的版本选择版本-方式二
根据官方提供了php版本适用哪个Xdebug的版本的工具选择Xdebug版本
进入的这个工具页面,地址为:https://xdebug.org/wizard,然后把phpinfo.php打印出来的印象粘贴到输入框中。点击下方的Analyse my phpinfo() output按钮。
这个工具会给你推荐你要使用的工具版本,比如下面的图片显示,选择的Xdebug的版本为php_xdebug-3.1.2-7.3-vc15-x86_64.dll,和我们第1种选择的版本是一样的。
敲重点:另外虽然这里能够帮助分析出合适的xdebug版本, 但检测出来的版本也不一定就是匹配正确的! 如果安装过程中,出现问题比较多,就多换几个低版本的试试!
2.2.3 Xdebug的版本选择版本-方式三(重点!!!)
重点!!!重点!!!虽然官方推荐我们使用的版本是3.1.2,但是考虑到下面的原因
1 3.0跟2.0的配置参数写法有些不一样,并且并彻底修改了设置参数
2 如果你phpStorm版本比较低,那么 PhpStorm的检查脚本可能还没有完全更新 使用Xdebug3.x版本集成还有一定的兼容性问题
注意,从上图我们可以看到Xdebug3.1.2版本里面参数设置和Xdebug2.x的版本都不大一样了,出现了大量的(setting renamed in Xdebug 3
所以我们选择的版本为2.x最新的版本2.7.2。因为开始选择了使用了3.1.2走了很多弯路,所以要根据自己的实际情况进行选择。
在下载页面:https://xdebug.org/download的下方,点击compatibility matrix,可以查看到Xdebug版本支持的php版本
xdebug和php版本的对应如下图:
2.2.4 选择Xdebug2.7.2版本
在下载页面:https://xdebug.org/download的下方,点击compatibility matrix,可以查看到Xdebug的历史发布版本。然后我们找到对应的Xdebug2.7.2版本进行下载,根据系统安装php的版本,选择了PHP 7.3 VC15 TS (64 bit),下载地址为:https://xdebug.org/files/php_xdebug-2.7.2-7.3-vc15-x86_64.dll
2.2.5 安装Xdebug2.7.2版本
将下载的php_xdebug-2.7.2-7.3-vc15-x86_64.dll文件移动到php安装目录的ext目录下(如:C:\MyProgram\wamp64\bin\php\php7.3.21\ext),然后重命名为php_xdebug.dll
2.2.6 配置php.ini
打开php.ini文件,所在目录为:C:\MyProgram\wamp64\bin\php\php7.3.21\php.ini,在其他扩展下方加入Xdebug配置信息。配置信息根据自己的实际需要进行调整。
[xdebug]
;xdebug库文件
zend_extension = xdebug
;是否允许Xdebug跟踪函数调用,跟踪信息以文件形式存储,默认值为0
xdebug.auto_trace = 1
xdebug.remote_autostart = 1
;异常跟踪
xdebug.show_exception_trace = 1
;错误跟踪
xdebug.show_error_trace = 0
;错误信息是否强制性显示;默认值: 0,设置为1时,不管PHP设置display_errors设置值是多少,错误信息将强制性一直显示
xdebug.force_display_errors = 1
;开启远程调试
xdebug.remote_enable = 1
;客户机ip
xdebug.remote_host = "127.0.0.1"
;客户机xdebug监听端,默认是9000
xdebug.remote_port = 9010
;用于远程调试的应用层通信协议
xdebug.remote_handler = dbgp
;是否开启调试内容
;打开xdebug的性能分析器,以文件形式存储
xdebug.profiler_enable = 1
;性能分析文件的存放位置,默认值为/tmp
xdebug.profiler_output_dir = "C:\MyProgram\wamp64\tmp\xdebug_tmp"
;性能分析文件的命名规则,默认值为cachegrind.out.%p
xdebug.profiler_output_name = cachegrind.out.%p
;函数调用跟踪信息输出文件目录,默认值为/tmp
xdebug.trace_output_dir = "C:\MyProgram\wamp64\tmp\xdebug_tmp"
;函数调用跟踪信息输出文件命名规则,默认为trace.%c
xdebug.trace_output_name = trace.%c
xdebug.cli_color = 1
xdebug.start_with_request = yes
xdebug.idekey = PHPSTORM
;是否允许Xdebug跟踪函数返回值,默认值为0
xdebug.collect_return = 1
;是否允许Xdebug跟踪函数参数,默认值为0
xdebug.collect_params = 1
;是否收集变量
xdebug.collect_vars = 1
2.2.7 查看Xdebug2.7.2扩展的安装
重点:添加配置文件后,重新启动服务,然后访问phpinfo.php文件,可以看到已经安装成功。
三、PhpStorm配置Xdebug
下面内容比较重点,仔细设置。
3.1 设置CLI Interpreter对应的php版本
打开PhpStorm,分别依次点击File | Settings | Languages & Frameworks | PHP
3.2 设置Debug
打开PhpStorm,分别依次点击File | Settings | Languages & Frameworks | PHP | Debug
3.3 设置DBGp Proxy
打开PhpStorm,分别依次点击File | Settings | Languages & Frameworks | PHP | Debug | DBGp Proxy
IDE kye保持和php.ini里面的xdebug.idekey一致,host是你的服务器ip或者是已经可以解析的域名,或者本地就直接写localhost 或 127.0.0.1,port可以自选,一般默认选80就好了
3.4 设置servers
打开PhpStorm,分别依次点击File | Settings | Languages & Frameworks | PHP | Servers,添加+号添加一个服务:
Name 填写一个名称,如xdebug-test,这个自己命名即可;
Host 填写配置当前服务器ip或localhost;
port是默认80端口,也可以根据你的配置填写自己的web端口号,我的是8000
debug选Xdebug
3.5 测试Xdebug配置
首先确保你的服务是正常开启的,然后打开PhpStorm,分别依次点击File | Settings | Languages & Frameworks | PHP | Debug,点击Validate,会弹出Validate Debugger Configuration on Web Server对话框。因为此次记录主要针对本机的服务进行调试,所以选择Local Web Server or shared Folder;
Path to create Validation script 填写创建验证脚本的路径,也就是你的服务站点路径地址,此处一定要确保你项目的可执行路径地址设置正确
Url to validation scrip 验证脚本的Url地址 也就是你的解析好的域名网络地址目录,我的服务地址是http://127.0.0.1:8000
!!!重点!!! Information处显示的信息全部打钩才算配置成功,否则可能配置有误,或者Xdebug版本有问题。
四、断点调试
整了那么多,咱们一起校验下断点调试咋玩。
4.1 创建php脚本
在项目中创建测试的脚本,此处还是使用phpinfo.php文件,然后在每行点击下,可以添加断点的行。
<?php
$a = 1;
$b = 2;
$c = $a + $b;
$d = rand(0,10); var_dump($d); $e = function () {
return "hello";
};
4.2 打开debug
点击debug图标和监听
4.3 断点调试
访问脚本进行调试,浏览器中执行地址,http://127.0.0.1:8000/phpinfo.php;注意要确保你的路径是可访问的。Debug区域就可以看到我们断点的信息。
如果对debug使用不清楚的话,可以参考下之前Java编辑器Idea的debug功能使用。这里就不在赘述了。文档地址:IntelliJ IDEA Debug
转载自joshua317博客 https://www.joshua317.com/article/227
Windows系统下PhpStorm+Xdebug安装与调试的更多相关文章
- windows系统下GCC的安装与配置
刚开始看 C++ Primer,看到编译器的部分,自己搜了搜怎么搭建GCC,搜到以下内容,复制过来留个印象: windows系统下GCC的安装方法,以及一些环境变量的配置,如果对GCC不是很清楚,关于 ...
- windows系统下如何正确安装Cygwin(图文详解)
我的操作系统信息是 1.在官网https://cygwin.com/install.html下载win64位安装包 选择包的下载存放目录,点击“下一步” 为了使我们安装的Cygwin能够编译程序, ...
- Windows系统下Nginx的安装与配置
Nginx是lgor Sysoev在2004年的时候为俄罗斯访问量第二大的rambler.ru站点设计开发的,发布至今,凭借开源的力量,已经接近成熟与完善.其功能丰富,可作为HTTP服务器,也可作为反 ...
- windows系统下简单nodejs安装及环境配置
相信对于很多关注javascript发展的同学来说,nodejs已经不是一个陌生的词眼,这里不想谈太多的nodejs的相关信息.只说一下,windows系统下简单nodejs环境配置 相信 ...
- windows 系统下git 的安装
在linux系统下,可以直接在命令窗口安装和使用git.但是,在windows系统下,想要达到同样的效果,可以安装git,使用git bash到达效果.具体安装步骤如下: 第一步:官网上下载git 网 ...
- windows系统下 PHP怎么安装redis扩展
在windows系统下安装redis就不赘述了,基本上就是下一步,下一步. 然后通过通过命令行启动服务. 我是在xamp 3.2.2的集成环境下进行本地redis扩展安装配置的,php的版本是5.6. ...
- Windows系统下Redis的安装
Redis是一个用的比较广泛的Key/Value的内存数据库,新浪微博.Github.StackOverflow 等大型应用中都用其作为缓存,Redis的官网为http://redis.io/. 最近 ...
- windows 系统下TortoiseGit 的安装
git 常用的使用工具: Windows 支持下载安装TortoiseGit Mac 下 推荐使用 sourcetree Windows下的 TortoiseGit 安装 1. 进入 小乌龟官网 To ...
- Windows系统下consul的安装、启动、配置
阅读时长:3分钟 操作系统:Windows10 一.consul的安装 首先在consul.exe文件目录下的地址栏中输入cmd. 接着输入consul指令,敲击回车安装consul. 安装成功后会有 ...
- windows系统下npm 全局安装路径问题
安装了nodejs之后,npm的路径默认一直都是appData,表示很讨厌,于是尝试修改在安装目录(D盘空间很大啊) 安装目录:D:\program files\nodejs 一.在nodejs下新建 ...
随机推荐
- C#|.net core 基础 - 如何判断连续子序列
前两天同事遇到了一个小需求,想判断一个集合是不是在另一个集合中存在,并且要求顺序一致,然后一起讨论了下应该怎么做,有没有什么比较好的方式?下面分享一下我们想到的方法,如果你也有不同的想法也可以分享给我 ...
- SoftCLT: 时间序列的软对比学习《Soft Contrastive Learning for Time Series》(时间序列、时序分类任务、软对比学习、实例上软赋值距离差异、数据空间非嵌入空间度量相似性)
2024年6月25日,10:11,好几天没看论文了,一直在摸鱼写代码(虽然也没学会多少),今天看一篇师兄推荐的. 论文:Soft Contrastive Learning for Time Serie ...
- CSS & JS Effect – Blue Tick Avatar
效果 难点 难题只有一个, 那就是如何把 blue tick image 定位当 avatar 的右下角. HTML <div class="avatar-wrapper"& ...
- ASP.NET Core – Razor Class Library (RCL)
前言 Razor Class Library 的用途是封装 Razor views, pages, controllers, page models, Razor components, View c ...
- 为了更好的 Flutter | 2021 第二季度开发者调研
自 Flutter 2 发布以后,诸多振奋人心的开发特性 也随之解锁,从 加速应用开发 到 流畅地开发多平台应用 都已经有了长足的进步.我们也从社区收集到了不少大家关心的问题,并进行了 解答.毫无疑问 ...
- web架构-nginx负载均衡
nginx的负载均衡 Nginx 是一个广泛使用的反向代理服务器,能够高效地实现负载均衡.负载均衡的核心作用是将来自客户端的请求分发到多个后端服务器上,从而平衡每台服务器的压力.通过Nginx,我们可 ...
- word在原有的方框里打勾
按住键盘上的ALT键不放,然后在小键盘区输入"9745"这几个数字,最后松开 ALT 键,自动变成框框中带勾符号.
- 《Vue.js 设计与实现》读书笔记 - 第5章、非原始值的响应式方案
第5章.非原始值的响应式方案 5.1 理解 Proxy 和 Reflect Proxy Proxy 只能代理对象,不能代理非对象原始值,比如字符串. Proxy 会拦截对对象的基本语义,并重新定义对象 ...
- USB总线-Linux内核USB3.0设备控制器中断处理程序分析(九)
1.概述 USB设备枚举.请求处理.数据交互都涉及USB设备控制器中断.当有事件发生时,USB设备控制器首先将事件信息通过DMA写入到事件缓冲区中,然后向CPU发出中断,随后CPU调用中断处理函数开始 ...
- Android Qcom USB Driver学习(一)
该系列文章总目录链接与各部分简介: Android Qcom USB Driver学习(零) USB接口类型 Android终端上常用的USB接口:TypeC(现在的主流),MicroB(以前的设备) ...