• php代码审计之——phpstorm动态调试


    xdebug调试

    调试环境部署

    xdebug的版本需要与PHP版本相对于,所以不要轻易改变PHP环境版本。

    0 配置php解析器

    image-20211229220649556

    1 下载对应版本的xdebug

    xdebug官网下载地址:https://xdebug.org/download.php

    你需要仔细分析和选择要下载的对应版本,否则无法调试。由于非常容易出错,建议采用下面这种简单方法:

    xdebug网站提供一个自动分析你系统对应的xdebug版本的页面,网址是 https://xdebug.org/wizard.php

    image-20211229152537653

    在页面中需要粘贴进去php版本信息,也就是phpinfo()函数的信息,如下图:

    image-20211229154756307

    ctrl+A全选这个页面的信息,然后粘贴到第一个图片的页面中。

    image-20211229154743121

    点击 analyse my phpinfo() output 按钮

    将下载的DLL文件拷贝到指定目录,按照页面上的提示即可

    image-20211229154903685

    image-20211229155831416

    到此为止,xdebug的下载和启用就完成了,重新运行 phpinfo.php

    image-20211229155923265

    2 修改php.ini文件里的xdebug配置项

    xdebug2:

    [XDebug]
    xdebug.profiler_output_dir="C:\phpstudy2018\PHPTutorial\tmp\xdebug"
    xdebug.trace_output_dir="C:\phpstudy2018\PHPTutorial\tmp\xdebug"
    zend_extension = "C:\phpstudy2018\PHPTutorial\php\php-7.2.1-nts\ext\php_xdebug.dll"
    
    xdebug.profiler_append = 0
    xdebug.profiler_enable = 1
    xdebug.profiler_enable_trigger = 0
    ;开启远程调试
    xdebug.remote_enable = 1
    ;客户机xdebug调试协议
    xdebug.remote_handler = "dbgp"
    xdebug.remote_mode = "req"
    xdebug.remote_host=127.0.0.1
    ;xdebug.remote_port默认值为9000,这里需要跟phpstorm配置一致,下面有说明
    xdebug.remote_port=9000
    ;idekey 区分大小写
    xdebug.idekey="PHPSTORM"
    

    xdebug3:

    [xdebug]
    zend_extension = "C:\phpstudy2018\PHPTutorial\php\php-7.2.1-nts\ext\php_xdebug.dll"
    xdebug.mode= "debug"			
    #性能分析文件存放位置 
    xdebug.output_dir = "C:\phpstudy2018\PHPTutorial\tmp\xdebug" 	
    #步骤调试器,应该是步入步进步出的吧
    xdebug.remote_handler = "dbgp" 	
    xdebug.idekey="PHPSTORM"
    xdebug.start_with_request = yes 
    #由remote_host替换过来了,就写本机的就行
    xdebug.client_host=127.0.0.1 		
    #由remote_port替换过来了,调试端口
    xdebug.client_port=9000  	
    

    3 配置phpstorm

    Ctrl+Alt+S快捷键打开设置,搜索xdebug,其中的Debug port确保不被其他应用占用,当程序无法进入断点时,可以考虑是否有其他应用占用了你本地的9000端口。

    image-20211229164949732

    在DBGp Proxy中配置你的idekey,idekey和在php.ini配置文件中xdebug.idekey项的值一样,host是你的服务器ip或域名

    image-20211229165703412

    【File】 ->【Settings】 ->【Languages & Frameworks】 ->【PHP】的servers中配置xdebug服务

    image-20211229171157972

    测试一下配置是否成功

    image-20211229232215086

    (如果不成功,根据报错去修改)

    4 第一个调试

    调试使用:

    新建一个运行调试配置

    image-20211229230012936

    新建php web page页面

    image-20211229231605426

    照着这样填就好了。

    开始调试:

    设置断点,开启debug监听。

    image-20211229231821882

    点击绿色的甲壳虫开始调试。

    image-20211229232057111

    红色圆中有个对号,是说明改断点生效了

    即可看到调试数据在下方显示。

    补充--xdebug helper插件

    使用该插件主要是为了弥补xdebug本身的局限,直接使用phpstorm xdebug调试的话,设置的断点需要每次都重头运行到断点处,而不能灵活的终止或者其他操作
    xdebug helper就可以实现这个功能。需要终止的时候选择disable选项即可,而不需要从头开始。

    安装使用:

    直接搜索xdebug helper。安装成功后右键进入扩展选项

    image-20220120175517461

    然后,前面正常配置

    浏览器开启debug,发包即可

    image-20220120180803500

    image-20220120180831389

    参考

    https://blog.csdn.net/yinhangbbbbb/article/details/79247331

    https://www.cnblogs.com/lightsrs/p/9612409.html

    https://www.cnblogs.com/beidaxmf/p/14527335.html

  • 相关阅读:
    124. Binary Tree Maximum Path Sum
    99. Recover Binary Search Tree
    255. Verify Preorder Sequence in Binary Search Tree
    [LeetCode] 79. Word Search Java
    [LeetCode] 78. Subsets Java
    [LeetCode] 77. Combinations Java
    [LeetCode] 52. N-Queens II Java
    [LeetCode] 51. N-Queens Java
    [LeetCode] 47. Permutations II Java
    [LeetCode] 46. Permutations Java
  • 原文地址:https://www.cnblogs.com/yokan/p/16102570.html
Copyright © 2020-2023  润新知