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

相关文章

Linux中SSH服务配置的全面指南

《Linux中SSH服务配置的全面指南》作为网络安全工程师,SSH(SecureShell)服务的安全配置是我们日常工作中不可忽视的重要环节,本文将从基础配置到高级安全加固,全面解析SSH服务的各项参... 目录概述基础配置详解端口与监听设置主机密钥配置认证机制强化禁用密码认证禁止root直接登录实现双因素

嵌入式数据库SQLite 3配置使用讲解

《嵌入式数据库SQLite3配置使用讲解》本文强调嵌入式项目中SQLite3数据库的重要性,因其零配置、轻量级、跨平台及事务处理特性,可保障数据溯源与责任明确,详细讲解安装配置、基础语法及SQLit... 目录0、惨痛教训1、SQLite3环境配置(1)、下载安装SQLite库(2)、解压下载的文件(3)、

Golang如何对cron进行二次封装实现指定时间执行定时任务

《Golang如何对cron进行二次封装实现指定时间执行定时任务》:本文主要介绍Golang如何对cron进行二次封装实现指定时间执行定时任务问题,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录背景cron库下载代码示例【1】结构体定义【2】定时任务开启【3】使用示例【4】控制台输出总结背景

springboot如何通过http动态操作xxl-job任务

《springboot如何通过http动态操作xxl-job任务》:本文主要介绍springboot如何通过http动态操作xxl-job任务的问题,具有很好的参考价值,希望对大家有所帮助,如有错... 目录springboot通过http动态操作xxl-job任务一、maven依赖二、配置文件三、xxl-

Linux如何快速检查服务器的硬件配置和性能指标

《Linux如何快速检查服务器的硬件配置和性能指标》在运维和开发工作中,我们经常需要快速检查Linux服务器的硬件配置和性能指标,本文将以CentOS为例,介绍如何通过命令行快速获取这些关键信息,... 目录引言一、查询CPU核心数编程(几C?)1. 使用 nproc(最简单)2. 使用 lscpu(详细信

使用Python进行GRPC和Dubbo协议的高级测试

《使用Python进行GRPC和Dubbo协议的高级测试》GRPC(GoogleRemoteProcedureCall)是一种高性能、开源的远程过程调用(RPC)框架,Dubbo是一种高性能的分布式服... 目录01 GRPC测试安装gRPC编写.proto文件实现服务02 Dubbo测试1. 安装Dubb

Nginx 重写与重定向配置方法

《Nginx重写与重定向配置方法》Nginx重写与重定向区别:重写修改路径(客户端无感知),重定向跳转新URL(客户端感知),try_files检查文件/目录存在性,return301直接返回永久重... 目录一.try_files指令二.return指令三.rewrite指令区分重写与重定向重写: 请求

基于Python开发Windows屏幕控制工具

《基于Python开发Windows屏幕控制工具》在数字化办公时代,屏幕管理已成为提升工作效率和保护眼睛健康的重要环节,本文将分享一个基于Python和PySide6开发的Windows屏幕控制工具,... 目录概述功能亮点界面展示实现步骤详解1. 环境准备2. 亮度控制模块3. 息屏功能实现4. 息屏时间

Nginx 配置跨域的实现及常见问题解决

《Nginx配置跨域的实现及常见问题解决》本文主要介绍了Nginx配置跨域的实现及常见问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来... 目录1. 跨域1.1 同源策略1.2 跨域资源共享(CORS)2. Nginx 配置跨域的场景2.1

gitlab安装及邮箱配置和常用使用方式

《gitlab安装及邮箱配置和常用使用方式》:本文主要介绍gitlab安装及邮箱配置和常用使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1.安装GitLab2.配置GitLab邮件服务3.GitLab的账号注册邮箱验证及其分组4.gitlab分支和标签的