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

相关文章

Windows环境下解决Matplotlib中文字体显示问题的详细教程

《Windows环境下解决Matplotlib中文字体显示问题的详细教程》本文详细介绍了在Windows下解决Matplotlib中文显示问题的方法,包括安装字体、更新缓存、配置文件设置及编码調整,并... 目录引言问题分析解决方案详解1. 检查系统已安装字体2. 手动添加中文字体(以SimHei为例)步骤

MySQL深分页进行性能优化的常见方法

《MySQL深分页进行性能优化的常见方法》在Web应用中,分页查询是数据库操作中的常见需求,然而,在面对大型数据集时,深分页(deeppagination)却成为了性能优化的一个挑战,在本文中,我们将... 目录引言:深分页,真的只是“翻页慢”那么简单吗?一、背景介绍二、深分页的性能问题三、业务场景分析四、

nginx 负载均衡配置及如何解决重复登录问题

《nginx负载均衡配置及如何解决重复登录问题》文章详解Nginx源码安装与Docker部署,介绍四层/七层代理区别及负载均衡策略,通过ip_hash解决重复登录问题,对nginx负载均衡配置及如何... 目录一:源码安装:1.配置编译参数2.编译3.编译安装 二,四层代理和七层代理区别1.二者混合使用举例

Java JDK1.8 安装和环境配置教程详解

《JavaJDK1.8安装和环境配置教程详解》文章简要介绍了JDK1.8的安装流程,包括官网下载对应系统版本、安装时选择非系统盘路径、配置JAVA_HOME、CLASSPATH和Path环境变量,... 目录1.下载JDK2.安装JDK3.配置环境变量4.检验JDK官网下载地址:Java Downloads

Linux下进程的CPU配置与线程绑定过程

《Linux下进程的CPU配置与线程绑定过程》本文介绍Linux系统中基于进程和线程的CPU配置方法,通过taskset命令和pthread库调整亲和力,将进程/线程绑定到特定CPU核心以优化资源分配... 目录1 基于进程的CPU配置1.1 对CPU亲和力的配置1.2 绑定进程到指定CPU核上运行2 基于

SpringBoot结合Docker进行容器化处理指南

《SpringBoot结合Docker进行容器化处理指南》在当今快速发展的软件工程领域,SpringBoot和Docker已经成为现代Java开发者的必备工具,本文将深入讲解如何将一个SpringBo... 目录前言一、为什么选择 Spring Bootjavascript + docker1. 快速部署与

Spring Boot spring-boot-maven-plugin 参数配置详解(最新推荐)

《SpringBootspring-boot-maven-plugin参数配置详解(最新推荐)》文章介绍了SpringBootMaven插件的5个核心目标(repackage、run、start... 目录一 spring-boot-maven-plugin 插件的5个Goals二 应用场景1 重新打包应用

Java中读取YAML文件配置信息常见问题及解决方法

《Java中读取YAML文件配置信息常见问题及解决方法》:本文主要介绍Java中读取YAML文件配置信息常见问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要... 目录1 使用Spring Boot的@ConfigurationProperties2. 使用@Valu

linux解压缩 xxx.jar文件进行内部操作过程

《linux解压缩xxx.jar文件进行内部操作过程》:本文主要介绍linux解压缩xxx.jar文件进行内部操作,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、解压文件二、压缩文件总结一、解压文件1、把 xxx.jar 文件放在服务器上,并进入当前目录#

SpringBoot中如何使用Assert进行断言校验

《SpringBoot中如何使用Assert进行断言校验》Java提供了内置的assert机制,而Spring框架也提供了更强大的Assert工具类来帮助开发者进行参数校验和状态检查,下... 目录前言一、Java 原生assert简介1.1 使用方式1.2 示例代码1.3 优缺点分析二、Spring Fr