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

相关文章

Python调用Orator ORM进行数据库操作

《Python调用OratorORM进行数据库操作》OratorORM是一个功能丰富且灵活的PythonORM库,旨在简化数据库操作,它支持多种数据库并提供了简洁且直观的API,下面我们就... 目录Orator ORM 主要特点安装使用示例总结Orator ORM 是一个功能丰富且灵活的 python O

Nginx设置连接超时并进行测试的方法步骤

《Nginx设置连接超时并进行测试的方法步骤》在高并发场景下,如果客户端与服务器的连接长时间未响应,会占用大量的系统资源,影响其他正常请求的处理效率,为了解决这个问题,可以通过设置Nginx的连接... 目录设置连接超时目的操作步骤测试连接超时测试方法:总结:设置连接超时目的设置客户端与服务器之间的连接

Android 悬浮窗开发示例((动态权限请求 | 前台服务和通知 | 悬浮窗创建 )

《Android悬浮窗开发示例((动态权限请求|前台服务和通知|悬浮窗创建)》本文介绍了Android悬浮窗的实现效果,包括动态权限请求、前台服务和通知的使用,悬浮窗权限需要动态申请并引导... 目录一、悬浮窗 动态权限请求1、动态请求权限2、悬浮窗权限说明3、检查动态权限4、申请动态权限5、权限设置完毕后

使用 sql-research-assistant进行 SQL 数据库研究的实战指南(代码实现演示)

《使用sql-research-assistant进行SQL数据库研究的实战指南(代码实现演示)》本文介绍了sql-research-assistant工具,该工具基于LangChain框架,集... 目录技术背景介绍核心原理解析代码实现演示安装和配置项目集成LangSmith 配置(可选)启动服务应用场景

如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别详解

《如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别详解》:本文主要介绍如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别的相关资料,描述了如何使用海康威视设备网络SD... 目录前言开发流程问题和解决方案dll库加载不到的问题老旧版本sdk不兼容的问题关键实现流程总结前言作为

SpringBoot中使用 ThreadLocal 进行多线程上下文管理及注意事项小结

《SpringBoot中使用ThreadLocal进行多线程上下文管理及注意事项小结》本文详细介绍了ThreadLocal的原理、使用场景和示例代码,并在SpringBoot中使用ThreadLo... 目录前言技术积累1.什么是 ThreadLocal2. ThreadLocal 的原理2.1 线程隔离2

SpringBoot+MyBatis-Flex配置ProxySQL的实现步骤

《SpringBoot+MyBatis-Flex配置ProxySQL的实现步骤》本文主要介绍了SpringBoot+MyBatis-Flex配置ProxySQL的实现步骤,文中通过示例代码介绍的非常详... 目录 目标 步骤 1:确保 ProxySQL 和 mysql 主从同步已正确配置ProxySQL 的

Spring Boot整合log4j2日志配置的详细教程

《SpringBoot整合log4j2日志配置的详细教程》:本文主要介绍SpringBoot项目中整合Log4j2日志框架的步骤和配置,包括常用日志框架的比较、配置参数介绍、Log4j2配置详解... 目录前言一、常用日志框架二、配置参数介绍1. 日志级别2. 输出形式3. 日志格式3.1 PatternL

Python利用PIL进行图片压缩

《Python利用PIL进行图片压缩》有时在发送一些文件如PPT、Word时,由于文件中的图片太大,导致文件也太大,无法发送,所以本文为大家介绍了Python中图片压缩的方法,需要的可以参考下... 有时在发送一些文件如PPT、Word时,由于文件中的图片太大,导致文件也太大,无法发送,所有可以对文件中的图

配置springboot项目动静分离打包分离lib方式

《配置springboot项目动静分离打包分离lib方式》本文介绍了如何将SpringBoot工程中的静态资源和配置文件分离出来,以减少jar包大小,方便修改配置文件,通过在jar包同级目录创建co... 目录前言1、分离配置文件原理2、pom文件配置3、使用package命令打包4、总结前言默认情况下,