IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> WAMP + VSCode + XDebug调试问题 -> 正文阅读

[开发工具]WAMP + VSCode + XDebug调试问题

CLI下的调试问题

WAMP是相当稳定的Windows下的Apache+Mysql+PHP开发环境
VSCode是当前比较常用的开发环境,有各种插件可以使用
PHP Debug (XDebug)是PHP环境下的调试器,这个插件可以在VSCode下使用

web环境调试设置

无论是wamp环境还是xampp环境,或者phpstudy环境,网上的帖子都比较多,思路总体如下

  • 安装集成开发包,确定软件环境相关版本
  • 确定并选择这几个组件的版本,尤其是php版本,下载对应的扩展dll(一般集成环境都带了)
  • 在php.ini中,加载此dll,并配置xdebug(几乎都用版本3系列了)相关内容(一般通过界面就可选择启用)
[xdebug]
zend_extension="c:/wamp64/bin/php/php7.4.26/zend_ext/php_xdebug-3.1.1-7.4-vc15-x86_64.dll"
xdebug.mode = debug
xdebug.output_dir ="c:/wamp64/tmp"
xdebug.show_local_vars=0
xdebug.log="c:/wamp64/logs/xdebug.log"
xdebug.log_level=7
xdebug.client_port = 9000
xdebug.idekey=PHPSTORM
xdebug.client_host=localhost
  • 把php.exe文件的路径设置到系统path中,就是要保证在命令行执行php -v有正确输出
  • 在vscode中安装xdebug插件,配置插件的相关设置
    在这里插入图片描述
    文件->首选项->设置->扩展->setting.json
"php.validate.executablePath": "C:\\wamp64\\bin\\php\\php7.4.26\\php.exe",
"php.debug.ideKey": "phpstorm",
  • 开启浏览器,加载浏览器PHP debug插件(360、qq浏览器,都是Chrome的,一般在设置或者插件仓库中能找到,也可以下载后安装)
    在这里插入图片描述

  • vscode进入调试模式(要设置php.exe的路径),设置断点

  • 在Apache中设置虚拟主机,或者把待调试文件放置到缺省目录下

  • 在浏览器中访问待调试的php文件

  • 如果前面的设置都没问题的话,则vscode会拦截中断,进入调试器状态

在wamp下,如上的配置都比较简单,因为xdebug在图形界面中即可启用,而且dll也已经给预安装了。所以前三步都很简单,后面的基本都没啥问题

附:vscode针对项目的调试器设置launch.json配置一般如此,这时执行Listen for Xdebug会一切正常

{
    "name": "Listen for Xdebug",
    "type": "php",
    "request": "launch",
    "port": 9000
},
{
    "name": "Launch currently open script",
    "type": "php",
    "request": "launch",
    "program": "${file}",
    "cwd": "${fileDirname}",
    "port": 9000,
    "runtimeArgs": [
        "-dxdebug.start_with_request=yes"
    ],
    "externalConsole": false,
    "env": {
        "XDEBUG_MODE": "debug",
        "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:80"
    ],
    "program": "${file}",
    "cwd": "${workspaceRoot}",
    "serverReadyAction": {
        "pattern": "Development Server \\(http://localhost:([0-9]+)\\) started",
        "uriFormat": "http://localhost:%s",
        "action": "openExternally"
    }

但是问题来了,我直接调试PHP文件,就是不进入断点,为何??Launch currently open script 进不了中断

CLI环境调试设置

我反复检测了半天,既然web模式下调试没问题,为何脚本模式就进入不了调试状态呢?
总以为是php.ini的设置问题,vscode中xdebug的设置问题,一头雾水。

后来发现了问题,原来wamp环境下PHP的配置文件使用的是另一个文件

在这里插入图片描述
是phpForApache.ini,而不是php.ini

在集成环境下的很多设置都在phpForApache.ini文件中,而当以php脚本cli模式运行程序时,是没有读取这个文件的,所以一直就进入不了调试环境

发现了问题就好办了

下载当前php版本的dll,设置到php.ini即可

  • https://xdebug.org/wizard去这个网站
    *在这里插入图片描述
    依次按照网页上面的指令执行即可,
    1、在命令行执行php -i
    2、把php -i的输出拷贝到中间空白区域
    3、点击下面按钮进行分析
    在这里插入图片描述

    然后就提示三步,
    1、下载给你提示的dll;
    2、把这个dll更名后放到php扩展路径下;
    3、在php.ini中加一行,启用扩展。

    照着执行即可

这时再直接执行一个独立的php脚本文件时,将会进入debug模式
在这里插入图片描述

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-04-22 18:57:14  更:2022-04-22 18:58:19 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 2:50:21-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码