一直都想把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查看





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

最新文章

  1. 夺命雷公狗-----React---27--小案例之react经典案例todos(清除已完成)
  2. vector使用篇之erase
  3. font-face使用备忘
  4. C++primer学习笔记(一)——Chapter 3
  5. IOS开发—UIDatePicker 日期/时间选取器(滚轮)
  6. JavaScript ES7 中使用 async/await 解决回调函数嵌套问题
  7. IE8 多进程问题
  8. 在GridControl表格控件中实现多层级主从表数据的展示
  9. ASP.net<a>标签跨页面传参数
  10. C#在SharePoint文档库下动态新增文件夹
  11. Cannot retrieve metalink for repository: epel/x86_64. Please verify its path and try again 解决方法
  12. scala-模式匹配
  13. PHP中json数组与对象的问题
  14. js中json知识点
  15. Redis学习---面试基础知识点总结
  16. shell中$(( ))、$( )与${ }的区别
  17. WPF中DependencyObject与DependencyProperty的源代码简单剖析
  18. c++ __int64
  19. [iOS微博项目 - 4.3] - 设置每条微博边框样式
  20. bzoj 1444 AC自动机 + 矩阵乘法 | 高斯消元

热门文章

  1. java 为什么wait(),notify(),notifyAll()必须在同步(Synchronized)方法/代码块中调用?
  2. 【hdu 5632】Rikka with Array
  3. 通信协议:HTTP、TCP、UDP
  4. 异常-CDH的service无法启动并抛出异常-org.apache.avro.AvroRemoteException: java.net.ConnectException: Connection refused (Connection refused)
  5. lsof/netstat命令的一个重要作用: 根据进程查端口, 根据端口查进程
  6. 基于 Webhooks gitlab 自动化构建
  7. 20155312 张竞予 Exp4 恶意代码分析
  8. java应用的优化【转】
  9. MongoDB学习笔记(转)
  10. Java开发之@PostConstruct和@PreDestroy注解