zoukankan      html  css  js  c++  java
  • VSCode调试PHP环境配置 phpstudy vscode xdebug调试

    一、前言

    这周学长给的任务需要调试 php,之前写的菜鸡代码出 bug 都是打印出来调试的,是时候规范一下了。另外 vscode 真好用!

    二、Xdebug配置

    php 集成环境和 vscode 装好之后,在浏览器访问 phpinfo 页面,然后全选复制到 https://xdebug.org/wizard,点击 Analyse my phpinfo() output 按钮,将得到的结果逐条执行

    php.ini 文件还要再填加两项设置,这里我的设置和在网上查找的其他教程不同,可能是由于 xdebug 版本不同导致的,按照其他不成功设置的报错查找官方文档 https://xdebug.org/docs/upgrade_guide 得到的结果如下

     
    xdebug.mode=debug
    xdebug.start_with_request=yes

    重启服务器,配置成功后 phpinfo 页面出现 xdebug 信息

    三、VSCode配置

    安装 php debug 插件,并在文件->首选项->设置->用户->扩展->php->在 setting.json 中编辑

    这里改成 php.exe 路径,注意双斜线

     
    {
        "php.validate.executablePath": "D:\Major\phpstudy_pro\Extensions\php\php7.3.4nts\php.exe"
    }

    www 目录下新建 phptest 文件夹,在文件夹下创建 debugtest.php 文件输入如下代码测试 debug 功能

     
     
    <?php
    for ($i=1; $i<=5; $i++)
    {
        echo "The number is " . $i . "<br>";
    }
    ?>
     

    选择 Launch currently open script,打上断点,点击运行->启动调试,如果配置有问题,这里会显示报错信息,再根据报错信息调整,这里调试没问题之后选择 Listen for XDebug 选项,打上断点,浏览器刷新一下就可以看见 vscode 成功监听到调试(launch.json 默认 9000 端口,根据报错修改为 9003 端口)

    四、其他细节

    PHP Intelephense 插件方便跟进函数,但是插件要求 php 版本大于 7,且设置环境变量,安装完毕后 setting.json 设置如下

     
    {
        "php.validate.executablePath": "D:\Major\phpstudy_pro\Extensions\php\php7.3.4nts\php.exe",
        "php.executablePath": "D:\Major\phpstudy_pro\Extensions\php\php7.3.4nts\php.exe"
    }

    phpstudy 在浏览器不显示目录时,修改 vhosts.conf 配置文件,将 Options FollowSymLinks ExecCGI 注释,添加 Options +Indexes +FollowSymLinks +ExecCGI 并重启apache

    五、第二种方式

    因为某种原因又重新配置了一次,换了种方式好像更容易一点,记录下来

    phpstudy 这样设置

    设置后,php.ini 出现 Xdebug 的内容(配置文件中 xdebug.remote_enable=Off 需要改为 On,再添加一行 xdebug.remote_autostart=On)

     
     
    [Xdebug]
    zend_extension=D:/Major/phpstudy_pro/Extensions/php/php7.3.4nts/ext/php_xdebug.dll
    xdebug.collect_params=1
    xdebug.collect_return=1
    xdebug.auto_trace=On
    xdebug.trace_output_dir=D:/Major/phpstudy_pro/Extensions/php_log/php7.3.4nts.xdebug.trace
    xdebug.profiler_enable=On
    xdebug.profiler_output_dir=D:/Major/phpstudy_pro/Extensions/php_log/php7.3.4nts.xdebug.profiler
    xdebug.remote_enable=On
    xdebug.remote_autostart=On
    xdebug.remote_host=localhost
    xdebug.remote_port=9000
    xdebug.remote_handler=dbgp
     

    保存配置文件后重启一下 apache,再去 vscode 中设置,填上 xdebug 的端口

    第一次配置的时候,下载的是 xdebug3,因为有一些配置名称已经更改,就会出现很多报错,使用默认的 php_xdebug.dll 可以避免这些问题,然后下断点,运行->启动调试,浏览器访问 php 文件,即可开始调试。

    参考文章:

    https://segmentfault.com/a/1190000019475551

    https://www.cnblogs.com/neverth/p/11760932.html

    https://www.cnblogs.com/-mrl/p/12214252.html

    https://blog.csdn.net/qq_26605049/article/details/107626100?utm_medium=distribute.pc_relevant.none-task-blog-baidulandingword-2&spm=1001.2101.3001.4242

    https://zhuanlan.zhihu.com/p/113171737

  • 相关阅读:
    C#验证类(使用正则表达式)
    SQL数据库还原语句
    JS键盘或鼠标事件
    列表针对列宽度自动调整显示内容,超长以...缩写结尾
    SQL按照日、周、月、年统计数据 (转自BLEACH的blog)
    SQL利用Case When Then多条件判断
    调用Web服务:请求因HTTP状态401失败:Unauthorized
    IFrame自动适应宽高,去掉空白
    Asp调用WebService事例
    Timer不执行Elapsed事件的解决办法
  • 原文地址:https://www.cnblogs.com/browser/p/15017816.html
Copyright © 2011-2022 走看看