VScode的PHP远程调试模式Xdebug

2023-11-17

目录

第一步、安装VScode中相应插件

remote-ssh的原理

 ssh插件:

PHP相关插件:

 第二步、安装对应PHP版本的xdebug

查看PHP具体配置信息的phpinfo页面

1、首先,打开php编辑器,新建一个php文件,例如:index.php

2、在index.php中,输入代码:phpinfo();

 3、浏览器运行index.php页面,此时打印出了该php服务器上各个配置信息、组件信息的phpinfo页面。

                        ​​​​​​​         点击最下面的按钮

第三步、修改launch.json文件

第四步、修改php.ini文件

php.ini文件路径: 

第五步、设置断点,开始调试

在test文件夹中新建一个index.php文件,配置如下 


需要的配置环境:

VScode    PHP

官方文档:使用 SSH 和 Visual Studio 代码在远程计算机上进行开发

第一步、安装VScode中相应插件

remote-ssh的原理

        在Visual Studio代码远程- SSH扩展允许你打开任何远程计算机,虚拟机或容器上的远程文件夹与正在运行的SSH服务器,并充分利用VS代码的功能集。一旦连接到服务器,您就可以与远程文件系统上任何位置的文件和文件夹进行交互。

        由于扩展直接在远程计算机上运行命令和其他扩展,因此无需在本地计算机上使用源代码即可获得这些好处。

SSH架构

 ssh插件:

PHP相关插件:

如果你之前安装过PHP相关软件,在远程连接后会提示你该插件在此扩展在此工作区中被禁用,因为其被定义为在远程扩展主机中运行。请在'SSH:xxx.xxx.xxx.xxx'中安装扩展以进行启用。

因此,我们需要在当前环境下再次安装所需插件

 第二步、安装对应PHP版本的xdebug

查看PHP具体配置信息的phpinfo页面

1、首先,打开php编辑器,新建一个php文件,例如:index.php

2、在index.php中,输入代码:phpinfo();

 3、浏览器运行index.php页面,此时打印出了该php服务器上各个配置信息、组件信息的phpinfo页面。

在xdebug官网,将自己phpinfo的源代码复制进去 

xdebug官网:Xdebug: Support — Tailored Installation Instructions

 点击最下面的按钮

第三步、修改launch.json文件

可以先打开一个文件,之后点击运行和调试,在点击设置按钮就会转到launch.json文件

加上如下配置

 注意修改端口号

{

    // 使用 IntelliSense 了解相关属性。

    // 悬停以查看现有属性的描述。

    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387

    "version": "0.2.0",

    "configurations": [

        {

            "name": "Listen for Xdebug",

            "type": "php",

            "request": "launch",

            "port": 9001

        },

        {

            "name": "Launch currently open script",

            "type": "php",

            "request": "launch",

            "program": "${file}",

            "cwd": "${fileDirname}",

            "port": 0,

            "runtimeArgs": [

                "-dxdebug.start_with_request=yes"

            ],

            "env": {

                "XDEBUG_MODE": "debug,develop",

                "XDEBUG_CONFIG": "client_port=${port}"

            }

        },

        {

            "name": "Launch Built-in web server",

            "type": "php",

            "request": "launch",

            "runtimeArgs": [

                "-dxdebug.mode=debug",

                "-dxdebug.start_with_request=yes",

                "-S",

                "localhost:0"

            ],

            "program": "",

            "cwd": "${workspaceRoot}",

            "port": 9001,

            "serverReadyAction": {

                "pattern": "Development Server \\(http://localhost:([0-9]+)\\) started",

                "uriFormat": "http://localhost:%s",

                "action": "openExternally"

            }

        }

    ]

}

第四步、修改php.ini文件

php.ini文件路径: 

以本人为例:

本人将php安装在D:\software\computing\NSP\phpstudy路径下

php.ini文件夹则在D:\software\computing\NSP\phpstudy\phpstudy_pro\Extensions\php\php7.3.4nts路径下

注意:你要寻找对于php版本的phpx.x.xnts文件夹
 

第五步、设置断点,开始调试

在test文件夹中新建一个index.php文件,配置如下 

在php中打开Apache

 

 再次刷新即可

 

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

VScode的PHP远程调试模式Xdebug 的相关文章

  • 如何解决“无法加载PEM客户端证书,OpenSSL错误:02001003:系统库:fopen:没有这样的进程”错误?

    如果这个问题很愚蠢 请原谅 但我是这个领域的新手 我需要通过 SSL 从 Drupal 7 站点连接到服务 我有一个扩展名为 p12 的文件及其密码 另外 我使用 PHP 7 1 1 和 Windows 7 64x 我使用以下命令将 p12
  • 我应该在 PHP 代码中使用断言吗?

    一位同事添加了assert http php net assert在我们的库中 在我本来会使用 if 语句并引发异常的地方执行几次命令 在此之前我什至从未听说过断言 以下是他如何使用它的示例 assert isset this gt rec
  • 具有挑战性的问题 - 使用 PHP 对 XML 数据进行排序

    我有 xml 文件 其中包含大量产品数据 我需要根据我的字段 ProductRange 的数据对我的产品进行排序 ProductRange urldecode GET Range XML 文件数据
  • 使用 Apache 允许 Glassfish 和 PHP 在同一服务器中协同工作

    是否可以建立从 Java 到 php 文件的桥梁 我有一个用 Java 编写的应用程序 我需要执行http piwik org http piwik org 这是用 PHP 编写的 在服务器中 我正在运行 PHP 但无法从浏览器访问 php
  • 我的设置未保存在 WordPress 主题选项页面中

    我正在尝试创建一个基于 WordPress 设置 API 的主题选项页面 当我在浏览器中检查 options php 页面时 例如http mysite com wordpress wp admin options php http mys
  • node-mongodb-native的插入性能

    我正在使用 MongoDB 测试 Node js 的性能 我知道其中每一个都很好 彼此独立 但我正在尝试一些测试来感受它们 我遇到了这个问题 但无法确定来源 问题 我正在尝试在单个 Node js 程序中插入 1 000 000 条记录 它
  • 如何使用 PHP 查找字符串中字符的序列模式?

    假设我有随机的文本块 EAMoAAQAABwEBAAAAAAAAAAAAAAABAgMFBgcIBAkBAQABBQEBAAAAAAAAAAAAAAAGAgMEBQcBCBAAAQMDAgMEBQcIBQgGCwEAAQACAxEEBSEG
  • Composer 无法下载文件

    我正在尝试在命令行上使用作曲家 php composer phar update php composer phar install php composer phar self update php composer phar selfu
  • PHP-列出一年中一个月中的所有天[重复]

    这个问题在这里已经有答案了 可能的重复 我在 PHP 中有 2 个日期 如何运行 foreach 循环来遍历所有这些日期 https stackoverflow com questions 3207749 i have 2 dates in
  • 使用 php ping 网站

    我想创建一个 php 脚本 它将 ping 一个域并列出响应时间以及请求的总大小 这将用于监控网站网络 我尝试过curl 这是我到目前为止的代码 function curlTest2 url clearstatcache return if
  • php 检查文件是否存在于外部域中(从子域访问)

    我有一个网站http www reelfilmlocations co uk http www reelfilmlocations co uk 上述网站有一个管理区域 其中上传图像并在 uploads images 目录的子文件夹中创建不同
  • 在 laravel 中禁用特定路由的 csrf

    我有一个支付系统 数据被提交到第三方网站然后被拉回 当数据返回时 它会到达特定的 url 比如 ok 路由 REQUEST transaction 但由于 Laravel 中间件 我遇到了令牌不匹配的情况 第三方支付API无法生成token
  • PHP中的反转数组

    array 7 0 gt array 2 id gt string 1 9 roi gt float 0 1 gt array 2 id gt string 1 1 roi gt float 0 2 gt array 2 id gt str
  • 如何检查 $row['column_name'] 是否返回空 php mysql

    我有一个带有列的表格 id name phone describe 当我从这个表中获取值时 我正在使用 row mysql fetch array query 现在我想检查是否 row describe 返回空值 如何查看php 您可以使用
  • laravel 5.3 新的 Auth::routes()

    最近开始使用laravel 5 3写博客 但是运行后出现一个问题php artisan make auth 当我运行这个时 它会在我的web php 这是其中的代码 Auth routes Route get home HomeContro
  • 如何在php中根据url从mysql获取数据?

    我在 mysql 数据库中有一个页表 其中包含 page name title content author 字段 我想用 php 来获取它http www domain com index php page page name http
  • 退出 PHP 脚本后终止或停止 MySQL 查询

    我在工作中运行一个统计服务器 由于运行的查询量很大 该服务器有时会变得非常慢 我们的营销团队使用它作为主要统计工具 团队中的某些人有时会在脚本结束之前退出脚本 通过关闭浏览器或选项卡 同时 SQL 查询继续执行 当有人关闭或离开 PHP 脚
  • C++ php 和静态库

    我创建了一个library a 其中包含 cpp 和 h 文件 其中包含很多类 嵌套类和方法 我想在 php 示例中包含这个静态库并尝试使用它 我想提一下 我是 php 新手 我已经在 test cpp 文件中测试了我的 libray a
  • preg_match 所有以@开头的单词?

    我对正则表达式不太确定 所以我不得不问你 如何用 PHP 判断字符串中是否包含以 开头的单词 例如我有一个像 This is for codeworxx 这样的字符串 我很抱歉 但我没有任何起点 希望你能帮忙 谢谢 萨沙 好的 谢谢你的结果
  • 合并 csv 文件 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 如何在 PHP 或 joomla 中将多个 CSV 文件合并为一个 csv 文件 将文件夹中 csv 文件中的所有数据合并到文本文件中 通

随机推荐

  • html chm 打不开,Win7系统中出现CHM打不开的具体解决方法

    一部分用户在使用Win7系统的时候 出现CHM打不开的情况 该怎么处理呢 下文就为你们带来了Win7系统中出现CHM打不开的具体解决方法 方法一 1 可以对注册表进行操作 按快捷键 Win R 启动 运行 程序 2 在 运行 程序的输入框中
  • 舒尔补-边际概率-条件概率

    margin求边际概率的时候喜欢通过舒尔补的形式去操作信息矩阵 如p b c 求积分p a b c da 从上图可知 边缘概率直接看协方差矩阵比较方便 边际概率的方差就是取对应联合分布中相应的协方差块 信息矩阵是由舒尔补的形式计算 此形式也
  • GBDT调参指南

    GBDT分类器和回归器的大部分参数都是相同的 除了损失函数的选项有些不同 因此下面我们统一说明各个参数的意义以及在什么情境下做什么调整方法 一 GBDT的boosting框架参数 1 n estimators 代表弱学习器的最大个数 即最多
  • Python+OpenCV人脸识别签到考勤系统

    前言 本项目为IOT实验室人员签到考勤设计 系统实现功能 1 人员人脸识别并完成签到 签退 2 考勤时间计算 3 保存考勤数据为CSV格式 Excel表格 PS 本系统2D人脸识别 节约了繁琐的人脸识别训练部分 简洁快捷 该项目为测试版 正
  • mac电脑的C语言安装包,Mac上运行C/C++程序

    由于工作需要 要在Mac环境里面运行C程序 遇到的问题及解决方法如下 1 确认环境里是否安装了command line developer tools 打开Terminal终端 输入g 提示 xcrun error invalid acti
  • (新)Chrome浏览器自定义背景插件

    一 效果预览 二 项目回顾 1 原理 主要是利用js脚本在页面打开前插入一个背景图片容器 在通过相应的事件控制来实现该功能 2 功能 将网络图片设置为浏览器背景 3 使用 下载插件 gt 修改js文件 加入图片链接 添加浏览器扩展 gt 刷
  • C++学习记录6--srand(time(NULL)产生随机数

    time 函数 返回从1970 1 1 00 00 00到调用time 函数时所经过的时间 以秒为单位 所以是个整数 time NULL 或time 0 表示在内存中不存储返回的数值 头文件 include
  • 如何保证测试用例覆盖全面

    测试用例覆盖度一般是从以下几方面衡量的 1 测试需求的覆盖 保证所有需求都已经设计用例 2 测试特性的覆盖 保证所有不同类型已覆盖 如 功能测试 性能测试等 3 平台与层次的覆盖 保证所有平台有用例覆盖 不同层次都有设计用例 如业务层 接口
  • JavaScript随机生成颜色功能

    思路 实现一个函数 随机生成颜色 格式为 000000 颜色由a f A F 0 9 3种字母任意组成 且 后面是3位或者6位 只要随机生成一个数字是奇数或者偶数来随机出是3位或者6位 然后在随机其下标循环上面步骤确认的次数 functio
  • 设计模式之简单工厂模式(Simply Factory)摘录

    从设计模式的类型上来说 简单工厂模式是属于创建型模式 又叫静态工厂方法 Static Factory Method 模式 但不属于23种GOF设计模式之一 简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例 简单工厂模式是工厂模式家族
  • 数据库索引

    3 1 概括 索引 Index 是数据库中的一种存储结构 用于快速查找数据 索引通常是在数据库表上创建的 可以用于加速查询 排序和数据的唯一性验证 索引可以理解为图书中的目录 通过目录我们可以很快找到页码对应的内容 当表中有大量数据需要查询
  • 计算机竞赛 基于计算机视觉的身份证识别系统

    0 前言 优质竞赛项目系列 今天要分享的是 基于机器视觉的身份证识别系统 该项目较为新颖 适合作为竞赛课题方向 学长非常推荐 更多资料 项目分享 https gitee com dancheng senior postgraduate 1
  • 封裝:WPF基于Vlc.DotNet.Wpf封装的视频播放器

    一 目的 应用自带的MediaElement播放器播放文件类型有限 有些格式还需要安装插件 由此应用第三方工具包Vlc DotNet Wpf封装支持多格式的视频播放器 二 环境 VS2019 Win10 Vlc DotNet Wpf HeB
  • 校友全剧透CMU :ME + 转CS + 其他主要项

    在CMU待了一个半学期了 对于留学 对于CMU 对于ME 对于转CS 对于CMU其它各种项目都了解的更多了一些 也有不同的体会 我想这篇文章应该会对任何一个申请了CMU 或者想申请CMU 甚至每一个想要出国留学的人都会有一点帮助 写下面这些
  • Easy-Es核心功能深度介绍

    背景 近期随着项目开源后热度的不断上涨 越来越多小伙伴开始对框架核心功能感兴趣 今天就让我带大家深入源码和架构 一起探索Easy Es 简称EE 的核心功能是如何被设计和实现的 和众多ORM框架一样 EE最为核心的功能就是CRUD 增删改查
  • selenium3之selenium-server-standalone-3.8.1.jar启动

    查看安装的selenium版本 下载对应版本的selenium server 下载地址 http selenium release storage googleapis com index html 需要先安装JDK 自行百度安装 启动se
  • Linux的NFS共享目录操作步骤

    首先准备两台Linux 一台服务器 一台客户机 IP地址可自行设置 两台防火墙都要关闭 配置服务器IP地址 172 20 10 11 配置客户机IP地址 172 20 10 12 先关闭防火墙 systemctl stop filewall
  • 【JavaScript】页面加载 解决Uncaught TypeError: Cannot set property of undefined at

    在初学js的时候 有同学会遇到 Uncaught TypeError Cannot set property onmouseover of undefined at html 的问题 这个问题牵扯到页面加载顺序的问题 我们知道 页面的加载顺
  • 使用Prometheus+Grafana+Spring Boot Actuator监控应用

    在企业级的应用中 监控往往至关重要 监控可以帮助我们预防故障 预测变化趋势 在达到阈值的时候报警 为排查生产问题提供更多的信息 如果我们不知道我们程序的运行情况 当线上系统出现了事故再去排查就需要花费更多的时间 如果能提前监控 就能早做准备
  • VScode的PHP远程调试模式Xdebug

    目录 第一步 安装VScode中相应插件 remote ssh的原理 ssh插件 PHP相关插件 第二步 安装对应PHP版本的xdebug 查看PHP具体配置信息的phpinfo页面 1 首先 打开php编辑器 新建一个php文件 例如 i