Windows 配置 Xdebug 进行动态调试

2024-01-19 08:18

本文主要是介绍Windows 配置 Xdebug 进行动态调试,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

    • 下载Xdebug动态链接库
    • 配置PHP
    • 根据 PHP 文件进行调试(调试原生)
        • 配置 PHPStorm
        • 调试原生程序
        • 调试框架 TP5
    • 监听浏览器访问进行调试(调试框架)
        • PHPStorm 新建服务器
        • PHPStorm 配置调试项(成功接收转发的请求)
        • PHPStorm 运行配置
        • 测试
    • 补充:为 PHP 5.5 配置Xdebug

下载Xdebug动态链接库

Mac配置教程之前写过,见 给Mac安装配置PHPStorm和Xdebug

访问 官网下载地址,下载 PHP 7.2 VC15 (64 bit) dll 文件。

配置PHP

本地选择 PHP Version 7.2.9,复制动态链接库 Xdebug.dll 到 PHP目录。

打开 php.ini,在末尾粘贴如下配置代码,注意路径要与本地相符(成功调试后更新的配置)

zend_extension="D:\phpstudy_pro\Extensions\php\php7.2.9nts\php_xdebug-3.1.1-7.2-vc15-nts-x86_64.dll"
xdebug.mode = debug
xdebug.profiler_append = 0
xdebug.profiler_enable = 1
xdebug.profiler_enable_trigger = 0
;会生成缓存文件xdebug.profiler_output_name = "cache.out.%t-%s"
xdebug.remote_enable = 1
xdebug.remote_handler = "dbgp"
xdebug.remote_autostart = 1
xdebug.remote_host = "127.0.0.1"
xdebug.remote_port = 9003
xdebug.idekey = phpstorm

在这里插入图片描述

根据 PHP 文件进行调试(调试原生)

配置 PHPStorm

参考 给Mac安装配置PHPStorm和Xdebug

值得一提,本次在【运行】>【编辑配置】中新建并成功调试两个 PHP脚本,对 PHP Web页面 没有调试成功。

调试原生程序

编写一个原生PHP程序,

<?php
echo "Hello, Xdebug!";
?>

编辑器右上角点击 开始侦听 php 调试连接,在代码行数后双击设置断点,点击爬虫进行Debug,调试效果如下。
在这里插入图片描述

调试框架 TP5

设置 -> 服务器,新增一个服务器,命名为 tp5_index.php。

运行 -> 编辑配置,新增一个PHP脚本,配置URL等信息。

编辑器右上角开始监听,点击爬虫进行Debug
在这里插入图片描述

监听浏览器访问进行调试(调试框架)

指定 PHP 文件进行调试,只适合调试原生程序、或者调试入口文件查看程序执行流程。

要想调试 Web 应用,需要使用 Xdebug 监听浏览器请求,把请求转发到 PHPStorm。

PHPStorm 新建服务器

【设置】-【PHP】-【服务器】,新建一条记录

名称:tp5
主机:localhost
端口:80
调试器:Xdebug
PHPStorm 配置调试项(成功接收转发的请求)

【设置】-【PHP】-【调试】,找到预配置

  1. 第一项:验证 Web 服务器上的调试配置,根据提示进行调整。
  2. 安装浏览器工具栏:根据官方说明下载火狐插件 Xdebug-ext
  3. 开启监听
  4. 使用工具栏在浏览器中启动调试会话:插件无需设置,浏览器直接访问 http://127.0.0.1/tp5/public/,接收到请求,然后就可以step调试工作(已经设置了运行配置)

在这里插入图片描述在这里插入图片描述

PHPStorm 运行配置

【运行】-【编辑配置】,添加 PHP Web 页面
在这里插入图片描述

测试

浏览器访问 tp5 自定义控制器,URL链接 http://127.0.0.1/tp5/public/index.php/index/hello_world/index,发现 PHPStorm 首先在 入口文件 index.php 设置的断点停留,然后又在自定义控制器文件 HelloWorld.php 设置的断点停留,说明配置成功。

补充:为 PHP 5.5 配置Xdebug

前面章节的内容配置的是与 PHP 7.2 适应的 Xdebug,有的系统不支持 php7.2,所以另外再为 php 5.5 配置 Xdebug。

访问 Xdebug官网历史版本,选择 Xdebug 2.5.5 所属的 Windows 平台 PHP 5.5 VC11 (64 bit) 进行下载。

把下载后的 DLL 文件剪切到 PHP 5.5 的目录,编辑 php.ini 在末尾添加如下配置。

zend_extension="D:\phpstudy_pro\Extensions\php\php5.5.9nts\php_xdebug-2.5.5-5.5-vc11-nts-x86_64.dll"
xdebug.mode = debug
xdebug.profiler_append = 0
xdebug.profiler_enable = 1
xdebug.profiler_enable_trigger = 0
;会生成缓存文件xdebug.profiler_output_name = "cache.out.%t-%s"
xdebug.remote_enable = 1
xdebug.remote_handler = "dbgp"
xdebug.remote_autostart = 1
xdebug.remote_host = "127.0.0.1"
xdebug.remote_port = 9003
xdebug.idekey = phpstorm

重启 Apache 服务,访问 http://127.0.0.1/phpinfo.php 查看是否配置成功,发现 Xdebug 扩展,配置结束。
在这里插入图片描述

这篇关于Windows 配置 Xdebug 进行动态调试的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/621791

相关文章

mybatis映射器配置小结

《mybatis映射器配置小结》本文详解MyBatis映射器配置,重点讲解字段映射的三种解决方案(别名、自动驼峰映射、resultMap),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定... 目录select中字段的映射问题使用SQL语句中的别名功能使用mapUnderscoreToCame

Linux下MySQL数据库定时备份脚本与Crontab配置教学

《Linux下MySQL数据库定时备份脚本与Crontab配置教学》在生产环境中,数据库是核心资产之一,定期备份数据库可以有效防止意外数据丢失,本文将分享一份MySQL定时备份脚本,并讲解如何通过cr... 目录备份脚本详解脚本功能说明授权与可执行权限使用 Crontab 定时执行编辑 Crontab添加定

Java使用Javassist动态生成HelloWorld类

《Java使用Javassist动态生成HelloWorld类》Javassist是一个非常强大的字节码操作和定义库,它允许开发者在运行时创建新的类或者修改现有的类,本文将简单介绍如何使用Javass... 目录1. Javassist简介2. 环境准备3. 动态生成HelloWorld类3.1 创建CtC

JavaScript中的高级调试方法全攻略指南

《JavaScript中的高级调试方法全攻略指南》什么是高级JavaScript调试技巧,它比console.log有何优势,如何使用断点调试定位问题,通过本文,我们将深入解答这些问题,带您从理论到实... 目录观点与案例结合观点1观点2观点3观点4观点5高级调试技巧详解实战案例断点调试:定位变量错误性能分

Java使用jar命令配置服务器端口的完整指南

《Java使用jar命令配置服务器端口的完整指南》本文将详细介绍如何使用java-jar命令启动应用,并重点讲解如何配置服务器端口,同时提供一个实用的Web工具来简化这一过程,希望对大家有所帮助... 目录1. Java Jar文件简介1.1 什么是Jar文件1.2 创建可执行Jar文件2. 使用java

SpringBoot 多环境开发实战(从配置、管理与控制)

《SpringBoot多环境开发实战(从配置、管理与控制)》本文详解SpringBoot多环境配置,涵盖单文件YAML、多文件模式、MavenProfile分组及激活策略,通过优先级控制灵活切换环境... 目录一、多环境开发基础(单文件 YAML 版)(一)配置原理与优势(二)实操示例二、多环境开发多文件版

Vite 打包目录结构自定义配置小结

《Vite打包目录结构自定义配置小结》在Vite工程开发中,默认打包后的dist目录资源常集中在asset目录下,不利于资源管理,本文基于Rollup配置原理,本文就来介绍一下通过Vite配置自定义... 目录一、实现原理二、具体配置步骤1. 基础配置文件2. 配置说明(1)js 资源分离(2)非 JS 资

MySQL8 密码强度评估与配置详解

《MySQL8密码强度评估与配置详解》MySQL8默认启用密码强度插件,实施MEDIUM策略(长度8、含数字/字母/特殊字符),支持动态调整与配置文件设置,推荐使用STRONG策略并定期更新密码以提... 目录一、mysql 8 密码强度评估机制1.核心插件:validate_password2.密码策略级

ShardingProxy读写分离之原理、配置与实践过程

《ShardingProxy读写分离之原理、配置与实践过程》ShardingProxy是ApacheShardingSphere的数据库中间件,通过三层架构实现读写分离,解决高并发场景下数据库性能瓶... 目录一、ShardingProxy技术定位与读写分离核心价值1.1 技术定位1.2 读写分离核心价值二

QT Creator配置Kit的实现示例

《QTCreator配置Kit的实现示例》本文主要介绍了使用Qt5.12.12与VS2022时,因MSVC编译器版本不匹配及WindowsSDK缺失导致配置错误的问题解决,感兴趣的可以了解一下... 目录0、背景:qt5.12.12+vs2022一、症状:二、原因:(可以跳过,直奔后面的解决方法)三、解决方