php+vscode+xdebug搭建php调试环境

2023-11-09

php+vscode+xdebug搭建php调试环境

开发环境

  • windows 10
  • php 8.0.23
  • xdebug 3.1.6

配置xdebug

查看php版本信息

//cmd.exe
php -version

image-20221122145204459

可看到,我的版本信息为8.0.23,先是未开启xdebug的状态,开启后再次查看会显示xdebug。

查看phpinfo信息

打印phpinfo信息,复制phpinfo网页的源代码,在下面的网址粘贴,可以查询适合本版本的xdebug,或者使用php -i也可以查看php配置信息。

https://xdebug.org/wizard

image-20221122145705244

​ 可以看到,xdebug链接库下载地址,以及安装方法,如果查询的界面不是这样的,那么可能当前php版本不支持xdebug,还是换个合适版本吧~

配置动态链接库

下载php_xdebug-3.1.6-8.0-vs16-nts-x86_64.dll放在php安装根目录的ext目录,同时配置php.inizend_extension表明安装的扩展模块位置,默认在ext目录寻找,也可以写全物理路径。

zend_extension=php_xdebug-3.1.6-8.0-vs16-nts-x86_64.dll
xdebug.mode = debug
xdebug.start_with_request = yes

再次查看php -version:

image-20221122150125884

可以看到出现了Xdebug,说明xdebug已经安装成功了。

同时,在phpinfo里面,也可以看到php步骤调试器开启:

image-20221122151241327

配置vscode环境

配置开发环境

vscode安装这两个插件,默认情况下插件会使用cmd的环境变量作为php路径。

image-20221122151456599

首先写个简单php代码测试一下开发环境

<?php
echo 1;
echo 2;
echo 3;
echo 4;
echo 5;
?>

如果运行成功,则不用进行下面的操作,直接配置调试文件即可;如果无法成功运行php代码的话,选择文件-首选项-设置:

image-20221122151654461

找到扩展中的php,设置Executable为php启动文件即可。

image-20221122151725786

image-20221122151808998

配置调试文件

点击vscode运行与调试,直接创建launch.json文件,稍等片刻,会自动生成launch.json文件。

image-20221122152249998

​ launch.json文件中Listen for Xdebug是调试网页服务器后端的php代码的,就是说这调选项用于网络请求调试,当浏览器访问php页面时,在vscode上会同步进行调试。而Launch currently open script是本地调试代码使用的,不经过任何服务器和浏览器,但只是运行php代码;Launch Built-in web serverListen for Xdebug类似,只不过Launch Built-in web server会自己启动php内置web服务器然后进行调试,而Listen for Xdebug仅仅是监听调试,不会自己启动php内置web服务器。

image-20221122152421678

vscode调试php网络请求:

image-20221122152935554

可以看到前端等待,后端调试php代码。

vscode调试本地php代码。

image-20221122153123231

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

php+vscode+xdebug搭建php调试环境 的相关文章

  • Symfony2 Twig 扩展

    我在实现树枝扩展时遇到一些问题 我需要创建自己的过滤器 子过滤器 所以我想到了使用twig扩展 我在 MyApp Bundle WebsiteBundle 和文件上创建了一个名为 Extension 的文件夹 网站扩展 php namesp
  • Laravel 集成测试:如何断言一个 URL 已被调用但另一个 URL 没有

    我想测试一个向某个 URL 发出请求的控制器 例如 http example com api say hello 但它不会向另一个 URL 发出请求 例如 http example com api say bye bye 我想测试的控制器功
  • 使用 php 获取当前月份的最后 3 个月

    我想获取当前月份最近 3 个月的名称 例如当前月份是八月 所以 我想要六月 七月 八月这样的数据 我已经尝试过这段代码echo date F strtotime 3 months 它只返回六月 如何使用 php 获取当前月份的最后 3 个月
  • Yii2 异常:ApcCache 需要加载 PHP apc 扩展

    在高级模板前端的主配置中配置缓存组件时 我收到异常 在我的 php ini 上启用了扩展 rsults 如何解决此问题 前端 config main php cache gt class gt yii caching ApcCache ke
  • PHP 或 WAMP 不确定是什么

    我已经安装了 WAMP 服务器 2 0 PHP 5 4 3 安装WAMP后我已经重新启动了所有服务并且可以打开 phpinfo 显示良好 phpmyadmin 它也显示得很好 我可以使用数据库 然而 当在 Chrome 中运行简单的 php
  • zip 文件的校验和

    我目前正在开发一个工具 它上传一组文件 然后使用 md5 校验和将文件与上一批上传的文件进行比较 并告诉您哪些文件已更改 对于常规文件 这工作正常 但某些上传的文件是 zip 存档 即使其中的文件相同 它们几乎总是会发生变化 有没有一种方法
  • 负载平衡集群中的 PHP 会话 - 如何?

    好的 我得到了这个完全罕见的负载平衡 PHP 网站的独特场景 令人遗憾的是 它过去没有进行负载平衡 现在我们开始遇到问题 目前唯一的问题是 PHP 会话 当然 一开始没有人想到这个问题 因此 PHP 会话配置保留为默认值 因此 两台服务器都
  • 在 Symfony 序列化中更改序列化属性名称

    我正在使用 Symfony 序列化器 效果很好 use Symfony Component Serializer Annotation Groups Groups default notification public function g
  • 如何解码 eval( gzinflate( base64_decode(

    我已将此代码注入到我的网站中 如何解码尾随字符串 我需要知道发生了什么以及其背后的代码是什么 这应该输出将被执行的代码eval 我希望这就是您正在寻找的
  • 使用php将数据存储到文本文件中?

    我正在尝试将数据存储在文本文件中 例如使用 php 将数组存储到文本文件中 而不是存储到 mysql 数据库中 例如 这里是要存储在文本文件中的数据 name gt john age gt 25 location gt australia
  • 强制 Composer 下载 git repo 而不是 zip

    我对作曲家有一些问题 require php gt 5 3 2 kriswallsmith buzz 0 7 Repo https github com kriswallsmith Buzz tree v0 7 https github c
  • Apache、PHP 和 MySQL 可移植吗?

    我可以在外部硬盘上运行 Apache PHP 和 MySQL 吗 我需要这个 因为我在不同的地方工作 计算机 有时我没有安装和配置所有使用的应用程序 当然可以 XAMPP http www apachefriends org en xamp
  • MVC 模式中的验证层

    验证模型将使用的数据的最佳位置在哪里 例如 考虑登记表 我们有一些来自注册表的数据 那么验证这些数据的最佳位置在哪里 我们应该通过 if 语句或特殊的验证器类来检查每个数据 这意味着大量的编码 所以我想了解在哪里可以做到这一点 在控制器中
  • WordPress 插件中的类自动加载器

    我想编写一个类自动加载器以在 WordPress 插件中使用 该插件将安装在多个站点上 我想尽量减少与其他插件发生冲突的机会 自动加载器将是这样的 function autoload name some code here 我的主要问题是
  • 保存多对多关系,同步/附加不存在?

    我有以下两个多对多关系的模型 use Illuminate Database Eloquent Model class Permission extends Model The database table used by the mode
  • 从 PHP 数组生成 HTML 表

    我不明白这一点 我需要解决看似简单的问题 但这超出了我的逻辑 我需要编写一个函数 table columns input cols 它将输出一个表 示例 input array apple orange monkey potato chee
  • php curl 使用 GET 发送变量 奇怪的结果

    我正在尝试调用远程站点上页面中的网址 决定使用curl 在远程站点上 url 变量显示为 REQUEST Array var1 gt val1 amp var2 gt val2 amp var3 gt val3 被调用的url是 http
  • 如何在laravel中注册后自动登录

    我在 laravel 中注册用户时遇到问题 user假设是包含所有数组元素的数组 同时自动登录以下代码结果false 数据库中保存的密码是hash make password user id this gt user model gt ad
  • php 数组中出现意外的 json 输出结构

    我正在尝试转换动态数据 如何从 PHP 获取此 JSON JSON 122240cb 253c 4046 adcd ae81266709a6 item 0 3 这就是我所做的 但它不起作用 PHP json array 122240cb 2
  • 一种无需 JavaScript 即可在 PHP 中确定浏览器宽度的方法?

    首先有吗 或者我必须使用javascript 我希望能够更改使用的 CSS 因此 frex 我可以为移动设备或其他设备加载较小的字体 不幸的是 仅使用 PHP 无法检测用户分辨率 如果您使用 Javascript 则可以在 cookie 中

随机推荐

  • 10 种跨域解决方案(附终极方案)

    写在前面 嗯 又来了 又说到跨域了 这是一个老生常谈的话题 以前我觉得这种基础文章没有什么好写的 会想着你去了解底层啊 不是很简单吗 但是最近在开发一个 vscode 插件 发现 当你刚入门一样东西的时候 你不会想这么多 因为你对他不熟悉
  • 苹果iOS 12.2开发者预览版beta 6发布

    3月19日消息 苹果今天推送了iOS 12 2开发者预览版Beta 6系统更新 还包括macOS 10 14 4 Mojave watchOS 5 2和tvOS 12 2的新版本 用户可以通过OTA推送升级 其中苹果iOS 12 2的Bet
  • 珍惜,那个主动联系你的人

    听过这样一句话 如果不是在乎你 谁会愿意一直主动付出 如果不是太爱你 谁又愿意低眉顺目 深以为然 感情里 一直都会主动联系你的人 才是真正在乎你 爱你的人 都说乍见之欢易 长相厮守难 再好的感情 也抵不过平淡岁月的冲刷磨砺 两个人相处久了
  • shell命令:ln -s 创建软链接采用相对路径时的奇怪用法

    目前基于测试结果得到结论 暂时无权威资料显示出原因 参考了 https blog csdn net weixin 42183399 article details 80498750 但是这个博客给的结果只是特殊用法 无法归结至一般结论 下面
  • vue中window.addEventListener(‘scroll‘, xx)失效解决办法

    多次尝试都无法获取到滚动事件 后来加上true之后就可以了 window addEventListener scroll this clintHeight true
  • js中startsWith()使用

    startsWith函数 时Java中的 在js使用时他并不是每个浏览器都有的 所以我们一般要重写一下这个函数 采用正则表达式实现startWith endWith效果函数 String prototype startWith functi
  • CPU 风扇清理灰尘加油全过程图解

    主机电源风扇由于使用时间长 风扇轴承的润滑油耗尽 导致风扇转速下降或是不转 引起电源热量无法有效排除而造成电脑经常死机 解决办法有几种 现图解说明最简单省钱的办法如下 1 把电源从主机上拆下 如下图再取出电源背面的4个固定镙丝 2008 5
  • EasyAR4.0使用说明(Unity3D)(七)----稀疏空间地图

    稀疏空间地图的对应用环境的要求和平面图像识别可以比照理解 周围环境需要足够丰富 不能有大片的单色区域 透明区域 此外 光照 角度都会对建立地图和定位产生影响 官方给出了建立地图和定位地图的建议 https help easyar cn Ea
  • rgss加密文件解包器_Galgame汉化中的逆向 (一):文本加密(压缩)与解密

    本文为看雪论坛优秀文章 看雪论坛作者ID devseed 0x0 前言 看到关于游戏汉化相关的逆向教程挺少的 作为某汉化组的成员也帮过别的汉化组 于是就想把我见到的几个典型的例子整理分析一下 还是挺有意思的 此教程和我在贴吧和隔壁发的一样
  • 时序预测

    时序预测 Python实现NARX DNN空气质量预测 目录 时序预测 Python实现NARX DNN空气质量预测 效果一览 基本介绍 研究内容 程序设计 参考资料 效果一览 基本介绍 时序预测 Python实现NARX DNN空气质量预
  • 如何使a==1&&a==2&&a==3表达式成立?

    前几天闲着无聊 玩手机无意中发现一个题 觉得挺有意思的 就顺手记录一下 题目 a 1 a 2 a 3 true 思考 我思考了一会 这让一个值既是1又是2又是3的 不可能吧 这肯定是一个伪命题 但突然我灵光一现 对象属性不是可以拦截吗 我能
  • Flex 构建路径

    然libs文件夹是构建路径的一部分 但它并不总是SWC的理想存放位置 当多个项目同时使用相同的SWC时 就不能都存放在libs文件夹中 在这种情况下 SWC可以保持在中心位置 众所周知 SWC路径可以被添加到构建路径中 虽然这意味着需要建立
  • 问题 G: 用递归的方法求值

    题目描述 求1 2 3 4 5 n的值 输入格式 一个n n不大于10000 输出格式 输出1到n的累加和 输入样例 复制 2 输出样例 复制 3 这道题比较简单 边界是n 0 核心代码为 if n 0 return 0 else retu
  • C++ template 模板的模板参数(5.4节)

    有时 让模板参数本身成为模板是很有用的 我们将继续以stack类模板作为例子 来说明模板的模板参数的用途 在Stack的例子中 如果要使用一个和缺省值不同的内部容器 程序员必须两次指定元素类型 也就是说 为了指定内部容器的类型 你需要同时传
  • java实现文件的上传和下载

    文件的上传 upload 文件上传 客户端通过表单的文件域file 把客户端的文件 上传保存到服务器的硬盘上 页面 首先对上传的表单有以下要求 必须有文件域 input type file 表单提交方式 method post 表单的 en
  • 【剑指Offer】35.复杂链表的复制(JS实现)

    题目描述 请实现 copyRandomList 函数 复制一个复杂链表 在复杂链表中 每个节点除了有一个 next 指针指向下一个节点 还有一个 random 指针指向链表中的任意节点或者 null 示例1 输入 head 7 null 1
  • 图灵机模拟程序功能设计

    图灵机由无限长的纸带 读写头 状态寄存器 控制规则等四部分组成 纸带上的符号可以是 0 1 空格 要利用图灵机求解一个问题 需要自己设计图灵机 程序 即定义一些状态 其中包括初始状态和结束状态 设计给出控制规则 并进行图灵机初始化 设定初始
  • chrome/Edge搜索技巧

    1 剔除干扰项搜索 搜索内容 不想要的关键词 排除干扰项 2 特定搜索 给关键词加引号 关键词 只搜索引号里面的字 3 指定网站内搜索 site 域名 关键词 4 指定格式搜索 filetype 文件格式 关键词 可以制定pdf doc p
  • series not exists. Legend data should be same with series name or data name.

    normal删除
  • php+vscode+xdebug搭建php调试环境

    php vscode xdebug搭建php调试环境 开发环境 windows 10 php 8 0 23 xdebug 3 1 6 配置xdebug 查看php版本信息 cmd exe php version 可看到 我的版本信息为8 0