美文网首页
Xdebug3 远程断点调试环境

Xdebug3 远程断点调试环境

作者: 程序员有话说 | 来源:发表于2022-11-01 23:46 被阅读0次

    背景

    高效全面,再也不在使用echo var_dump

    问题

    很多开发人员知道有xdebug的好处,但是无法大规模使用很大因素是安装不正确的版本和配置不对,下面手把手安装和配置,想了解原理可以参考本文文献。

    安装

    • 打开官网 https://xdebug.org/docs/install
    • 选择通过phpinfoj解析对应版本 https://xdebug.org/wizard
    • 复制phpinfo 源代码到文本框中,如下图
      • 打开phpinfo 页面
      • 右键源代码复制出来


        PHP 配置信息
        复制到文本框
      • 点击解析文本框
      • 立即获取推荐版本和安装过程,结合当前自身环境安装扩展


        根据提示安装即可
    • 安装成功重启nginx 和 php-fpm
    • 检测是否安装成功 php -m | grep xdebug
      查看有结果

    配置

    在xdebug3.0以后,很多参数都改名了,如下所示(添加于2022.07.28),文章中其它部分还有很多地方是用3.0以前的参数的,大家自行对应一下,把它们对应到3.0以后的新参数就行,3.0修改的参数文 点击这里

    部分解析
    [xdebug]
    zend_extension="/path/to/xdebug.so"
    
    ;xdebug3.0中用于代替之前的xdebug.remote_enable=On
    xdebug.mode=debug
    
    ;xdebug3.0中用于代替之前的xdebug.remote_autostart,trigger对应之前的off,yes对应之前的on
    xdebug.start_with_request=trigger
    
    ;xdebug3.0中用于代替之前的xdebug.remote_host
    xdebug.client_host="127.0.0.1"
    
    ;xdebug3.0中用于代替之前的xdebug.remote_connect_back=On,它会自动从$_SERVER['HTTP_X_FORWARDED_FOR']
    ;或$_SERVER['REMOTE_ADDR']变量中获取ip,当然因为$_SERVER只有服务器模式有所以客户端模式是用不了的(可配置其它变量)
    ;如果找不到ip它会回退(fallback)到xdebug.client_host指定的ip
    xdebug.discover_client_host=true
    
    ;xdebug3.0中用于代替之前的xdebug.remote_port
    xdebug.client_port=9003
    
    ;固定填dbgp(因为目前只支持这个协议,也只有这个协议)
    xdebug.remote_handler="dbgp"
    
    ## 以下是我配置的
    [Xdebug]
    zend_extension=xdebug.so
    xdebug.mode = debug
    xdebug.discover_client_host = true
    xdebug.client_port = 9005
    xdebug.max_nesting_level = 512
    xdebug.remote_enable = 1
    xdebug.remote_connect_back = 1
    xdebug.idekey = PHPSTORM
    xdebug.remote_autostart=1
    xdebug.client_host=192.168.56.1 # 这里最重要 ,可以查看原理就清楚了
    xdebug.remote_handler=dbgp
    xdebug.start_with_request=trigger
    xdebug.remote_autostart=1
    

    记得重启服务

    配置phpstorm

    • 选择新增配置


      添加服务
      新增配置
      选择远程调试
    • 添加远程调试服务器


      image.png
      image.png
      image.png
    image.png

    验证

    http:{path}/index.php?XDEBUG_SESSION_START=PHPSTORM

    参考文献

    Xdebug3 断点调试环境之 - Laravel8 + PHP8 + Xdebug3 + PhpStorm2021.3 + Homestead v13.2.1 + Mac
    PhpStorm Xdebug远程调试环境搭建原理分析及问题排查
    可能是全网最详细的PhpStorm+xdebug远程调试php代码的教程
    phpstorm中使用xdebug配置cli模式的调试

    相关文章

      网友评论

          本文标题:Xdebug3 远程断点调试环境

          本文链接:https://www.haomeiwen.com/subject/uyoxtdtx.html