一直都想把php断点调试记录下来,由于拖延症极其严重导致现在才写。
好了,刚去猛喝了几碗心灵鸡汤,趁着这股劲把“Visual Studio Code如何使用XDebug进行php断点调试”这个全攻略写了。

步骤1:下载并安装XDebug

    我这里演示的是用phpStudy集成环境,不过不管是不是集成环境都没什么关系,这里主要为php安装上XDebug扩展就可以了

    安装XDebug扩展大多数人遇到的一个问题就是如何找对自己环境php匹配的XDebug版本,这个问题主要分成两个步骤
步骤1:输出phpinfo()信息,查看Architecture和Zend Extension Build这两个值,我这里显示的是X86和API220131226,NTS,VC11,把这两个值记录下来,还有一个需要记录的就是php的版本号,我这里的是5.6

    步骤2:打开https://xdebug.org/download.php网页(这个网站打开可能有点慢,耐心等待一下),然后找对相应的XDebug版本

    上面两个步骤是在windows操作系统下下载XDebug扩展,如果是linux操作系统的话,直接下载对应版本的source文件,然后编译安装

    经过上面的步骤已经把XDebug下载下来了,一般情况下,都会把下载下来的DLL文件放到相应的php扩展目录下,即php对应的ext文件夹下。
当然也可以不放,不过在配置XDebug模块的zend_extension配置时就要写上全路径
我这里就把dll文件放到php扩展目录下,大家要找准自己的php扩展目录

步骤2:配置php.ini文件的XDebug模块

   好了,完成步骤1,现在只需要再配置一下XDebug模块就安装完成了
XDebug主要配置的有下面的配置,当然你也可以另外添加更多的XDebug配置 [XDebug]
zend_extension=php_xdebug-2.5.5-5.6-vc11-nts.dll ; 如果步骤1的第二个小步骤没进行的话,这里就要填全路径了
xdebug.remote_enable = 1 ;开启远程调试功能
xdebug.remote_autostart = 1 ;这个配置是比较重要的一个配置
xdebug.remote_handler = "dbgp"
xdebug.remote_port = "9001" ;端口号
xdebug.remote_host = "127.0.0.1" ;远程调试的ip地址,即你自己的本机ip 在配置xdebug.remote_autostart = 1时这里遇到一个坑,就是XDebug的默认端口号是9000.如果不配置端口号使用默认端口号就会和nginx的端口号冲突,所以下面要配置一下端口号为9001,要不然会导致调试的时候假死的情况 配置完上面的配置,然后重启环境,然后再打印出phpinfo()的信息,然后搜索一下XDebug是否存在,如果存在那么就安装成功了
当然直接使用命令php -m 查看是否有XDebug更加简便

步骤3:Visual Studio Code安装php debug插件,并且配置

    按上面的步骤弄好了服务器之后,那么就要弄vscode,vscode主要安装一下插件再配置一下即可
安装插件php debug

    然后去到调试页面,配置一下json文件,这里记得端口号要对应上面XDebug的9001端口

步骤4:进行调试

    ok,完成上面的步骤,咱们就开始断点调试了,设置好断点,然后按F5开启调试,然后用浏览器访问链接,返回vscode查看





    大功告成,鸡汤效果时效到了~~~

VSCode+Xdebug断点调试PHP(全攻略)的更多相关文章

  1. VSCode插件开发全攻略(六)开发调试技巧

    更多文章请戳VSCode插件开发全攻略系列目录导航. 前言 在介绍完一些比较简单的内容点之后,我觉得有必要先和大家介绍一些开发中遇到的一些细节问题以及技巧,特别是后面一章节将要介绍WebView的知识 ...

  2. VSCode插件开发全攻略(三)package.json详解

    更多文章请戳VSCode插件开发全攻略系列目录导航. package.json 在详细介绍vscode插件开发细节之前,这里我们先详细介绍一下vscode插件的package.json写法,但是建议先 ...

  3. VSCode插件开发全攻略(七)WebView

    更多文章请戳VSCode插件开发全攻略系列目录导航. 什么是Webview 大家都知道,整个VSCode编辑器就是一张大的网页,其实,我们还可以在Visual Studio Code中创建完全自定义的 ...

  4. VSCode插件开发全攻略(四)命令、菜单、快捷键

    更多文章请戳VSCode插件开发全攻略系列目录导航. 命令 我们在前面HelloWord章节中已经提到了命令写法,这里再重温一下. context.subscriptions.push(vscode. ...

  5. VSCode插件开发全攻略(二)HelloWord

    更多文章请戳VSCode插件开发全攻略系列目录导航. 写着前面 学习一门新的语言或者生态首先肯定是从HelloWord开始. 您可以直接克隆我放在GitHub上vscode-plugin-demo 的 ...

  6. VSCode插件开发全攻略(一)概览

    文章索引 VSCode插件开发全攻略(一)概览 VSCode插件开发全攻略(二)HelloWord VSCode插件开发全攻略(三)package.json详解 VSCode插件开发全攻略(四)命令. ...

  7. VSCode插件开发全攻略(九)常用API总结

    更多文章请戳VSCode插件开发全攻略系列目录导航. 本文提炼一些常见的API使用场景供参考,本文内容有待完善. 编辑器相关 修改当前激活编辑器内容 替换当前编辑器全部内容: vscode.windo ...

  8. VSCode插件开发全攻略(十)打包、发布、升级

    更多文章请戳VSCode插件开发全攻略系列目录导航. 发布方式 插件开发完了,如何发布出去分享给他人呢?主要有3种方法: 方法一:直接把文件夹发给别人,让别人找到vscode的插件存放目录并放进去,然 ...

  9. VSCode插件开发全攻略(八)代码片段、设置、自定义欢迎页

    更多文章请戳VSCode插件开发全攻略系列目录导航. 代码片段 代码片段,也叫snippets,相信大家都不陌生,就是输入一个很简单的单词然后一回车带出来很多代码.平时大家也可以直接在vscode中创 ...

随机推荐

  1. 15、解决14中csv用excel打开乱码的问题 open('zhihu.csv','w',newline='',encoding='utf-8-sig')

    解决14中csv用excel打开乱码的问题 ,其实就是在写csv的时候把 utf-8 改成 utf-8-sig open('zhihu.csv','w',newline='',encoding='ut ...

  2. django - 总结 - 用户认证组件

    用户认证组件 from django.contrib import auth 从auth_user表中获取对象,没有返回None,其中密码为密文,使用了加密算法 user = auth.authent ...

  3. HttpUtility.UrlEncode编码重写

    1. 某些系统方法,例如.NET系统方法HttpUtility.UrlEncode会将‘=’编码成‘%3d’,而不是%3D,导致加密签名通不过验证,请开发者注意检查. 2.Java 1.3和早期版本中 ...

  4. Leetcode#88. Merge Sorted Array(合并两个有序数组)

    题目描述 给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组. 说明: 初始化 nums1 和 nums2 的元素数量分别为 m ...

  5. Leetcode#461. Hamming Distance(汉明距离)

    题目描述 两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目. 给出两个整数 x 和 y,计算它们之间的汉明距离. 注意: 0 ≤ x, y < 231. 示例: 输入: x = ...

  6. Linux -- Centos6 yum安装相关问题与处理

    Centos6 yum安装相关问题与处理 由于要使用yum下载文件,突然yum下载不了想要的文件,想更换yum源,结果得重新安装yum 来自本人GitHub地址https://github.com/m ...

  7. const与#define相比有什么不同?

    C++语言可以用const定义常量,也可以用#define定义常量,但是前者比后者有更多的优点:● const常量有数据类型,而宏常量没有数据类型.编译器可以对前者进行类型安全检查,而对后者只进行字符 ...

  8. 微信小程序+java后台

    博主是大四学生,毕业设计做的是微信小程序+java后台.陆陆续续经历了三个月(因为白天要实习又碰上过年玩了一阵子),从对微信小程序一无所知到完成毕设,碰到许多问题,在跟大家分享一下自己的经历和一个小程 ...

  9. 文本框监听事件blur()的简单使用

    场景描述:在做编辑功能的时候,经常要判断编码,或者密码之类的是否已经被使用,以前自己做的时候,经常都是在提交了之后才判断的,到现在,才发现,这样做的用户体验不好,完美一点的做法就是当此文本框失去焦点的 ...

  10. ycmd for emacs 代码自动补全

    YCMD FOR EMACS Table of Contents 1. 安装 1.1. 下载 1.2. 安装相关依赖 1.3. 更新submodules 1.4. 安装 2. 配置 1 安装   1. ...