当前位置: 首页 > news >正文

VSCODE+PHP8.2配置踩坑记录

VSCODE+PHP8.2配置踩坑记录 – WhiteNight's Site

我配置过的最恶心的环境之一:windows上的php。另一个是我centos服务器上的php。

进不了断点

端口配置和xdebug的安装

这个应该是最常见的问题了。从网上下载完php并解压到本地,打开vscode,安装php拓展和php server,php debug这两个调试用的拓展,敲下了人生中的第一段php代码

<?php
$a=1+2;
$b=$a*2;
phpinfo(); //测试用,能正常访问说明php环境配置是正常的
?>

接下来有几种情况:

  • 右键代码,选择 reload server(php server拓展的功能),如果能正常打开phpinfo()的页面,说明你的php环境配置没问题。

phpinfo

这是比较好的情况,未来可期。接下来你可以试着打几个断点,先开debug调试,再reload server,看看能不能命中断点,命中的话在vscode的debug界面,左边有“变量”,“监视”啥的,变量那一栏会显示当前变量的值之类的的信息。

写者注

debug需要用vscode打开xxx.php所在的文件夹,再选中你要调试的php文件。

如果这一步也没问题,说明大功告成。能正常访问phpinfo()+能正常debug和命中断点的话,接下来就可以开始php之旅了。

但上面也说过这是最好的情况。实际上你可能会碰到以下几种情况。

  • 无法访问phpinfo(),打开的页面显示request not found之类的。
  • 能访问phpinfo(),但是设置了断点后,debug键都点烂了还是没法命中断点。
  • 右键reload server不会自动打开浏览器界面,需要手动输localhost:port才能访问,而且访问的界面也是request not found(php server拓展默认reload server后会自动打开浏览器。如果没打开除了php的问题之外,也可能是你改拓展设置的时候不小心点到了)

总之问题有很多,导致问题的原因也有很多。这里也只是举出我解决该问题的方法。由于php和xdebug的版本不同,该方法可能适用也可能一点用都没有,建议自己摸索。

部分解决方法

php 8.2与xdebug 3.3.0alpha2

上面是我的php和xdebug的版本。毕竟版本不同的话解决方法可能不通用。

除此之外,在vscode中你还应该安装以下三个拓展:

  • php
  • php debug
  • php server

先来说说xdebug,这东西是必须要装的。不装这东西就没法debug调试。安装的话去xdebug官网下,记得下载的xdebug版本要和你用的php版本相匹配。

下载完之后,可以下载的dll重命名为php.xdebug.dll,方便后面的配置。然后扔进php的ext文件夹。接下来开始最重要的第一步:xdebug的配置。

打开php文件夹下的php.ini,在文件末尾输入

[XDebug]
zend_extension="F:\php\ext\php_xdebug.dll"
xdebug.mode=debug
xdebug.start_with_request=yes
xdebug.remote_host=localhost
xdebug.remote_port=9003
xdebug.remote_handler=dbgp

该配置仅能保证你能正常使用debug功能,其他的需要自己配置。

接下来开始第二步,vscode中debug的配置。在debug界面找到launch.json,开始配置端口。

配置文件的格式大致如下,其中最重要的是端口的配置。这里的端口需要和你在php.in中为xdebug配置的端口保持一致。

{// 使用 IntelliSense 了解相关属性。// 悬停以查看现有属性的描述。// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387"version": "0.2.0","configurations": [{"name": "Listen for XDebug","type": "php","request": "launch","port": 9003},{"name": "Launch currently open script","type": "php","request": "launch","program": "${file}","cwd": "${fileDirname}","port": 9003}]}

之后再打断点-启动调试-启动php server,应该就不会出现问题了。

http://www.lryc.cn/news/190326.html

相关文章:

  • React 状态管理 - Context API 前世今生(下)
  • 地下城堡3魂之诗阵容搭配攻略
  • 网工内推 | 技术支持工程师,厂商公司,HCIA即可,有带薪年假
  • 有 AI,无障碍,AIoT 设备为视障人群提供便利
  • 数据结构学习笔记——数据结构概论
  • 关于 打开虚拟机出现“...由VMware产品创建,但该产品与此版VMwareWorkstateion不兼容,因此无法使用” 的解决方法
  • windows的最佳选项卡式窗口管理器软件TidyTabs
  • 【Python 千题 —— 基础篇】浮点数转为整数
  • 【Linux--进程间通信】
  • Linux C文件操作
  • 基于Cucumber的行为驱动开发(BDD)实例
  • 十六、代码校验(2)
  • 安卓 kotlin-supportFragmentManager报红
  • linux中安装RocketMQ以及dashboard
  • Android kotlin内联函数(inline)的详解与原理
  • 林沛满---一个面试建议
  • CMake教程-第 5 步:安装和测试
  • 移动应用-Android开发基础\核心知识点
  • Java读取并转换字符串中的浮点数
  • SQL: 索引原理与创建索引的规范
  • 基于STM32_DS18B20单总线传感器驱动
  • 目标识别项目实战:基于Yolov7-LPRNet的动态车牌目标识别算法模型(三)
  • springboot线程池创建与使用
  • UDP和TCP特点(部分)对比:
  • PostMan环境变量、全局变量、动态参数使用
  • 服务器数据恢复-服务器硬盘指示灯黄灯闪烁的数据恢复案例
  • ts 分发
  • SQL中的group by使用注意事项
  • 矩阵剪辑系统源码----pc/手机端双开发
  • 0基础学习VR全景平台篇 第106篇:认识调色软件Lightroom