• VSCODE+PHP8.2配置踩坑记录


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

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

    进不了断点

    端口配置和xdebug的安装

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

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

    接下来有几种情况:

    • 右键代码,选择 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,在文件末尾输入

    1. [XDebug]
    2. zend_extension="F:\php\ext\php_xdebug.dll"
    3. xdebug.mode=debug
    4. xdebug.start_with_request=yes
    5. xdebug.remote_host=localhost
    6. xdebug.remote_port=9003
    7. xdebug.remote_handler=dbgp

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

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

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

    1. {
    2. // 使用 IntelliSense 了解相关属性。
    3. // 悬停以查看现有属性的描述。
    4. // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    5. "version": "0.2.0",
    6. "configurations": [
    7. {
    8. "name": "Listen for XDebug",
    9. "type": "php",
    10. "request": "launch",
    11. "port": 9003
    12. },
    13. {
    14. "name": "Launch currently open script",
    15. "type": "php",
    16. "request": "launch",
    17. "program": "${file}",
    18. "cwd": "${fileDirname}",
    19. "port": 9003
    20. }
    21. ]
    22. }

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

  • 相关阅读:
    Java开发实习面试总结(49分钟)
    污水废水硝酸盐超标,离子交换树脂工艺分析
    java计算机毕业设计ssm信息科技知识交流学习平台
    Spring整合Junit(单元测试)
    CentOS8.2安装Nginx1.23.2
    Codeforces Round #801 (Div. 2)A~C
    数据库顶会 VLDB 2023 论文解读:字节跳动如何解决超大规模流式任务运维难题
    [工业自动化-23]:西门子S7-15xxx编程 - 软件编程 - 西门子PLC人机界面交互HMI功能概述、硬件环境准备、软件环境准备
    GaussDB数据库SQL系列-数据去重
    【微机接口】第四章:宏指令程序设计
  • 原文地址:https://blog.csdn.net/white_night_SZTU/article/details/133781129