记录如何利用vscode+xdebug调试php代码
环境搭建
本篇文章利用的是
PHP7
具体步骤
配置phpstudy
首先要打开xdebug拓展
打开软件管理,找到对应的php版本点击设置
打开xdebug,设置监听端口为9003(9000端口会和nginx冲突)
然后访问phpstudy_pro\Extensions\php\php7.3.4nts
,打开配置文件php.ini
拉到最下面,观察配置是否正确
1 2 3 4 5 6 7 8 9 10 11 12 13
| [Xdebug] zend_extension=D:/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:/phpstudy_pro/Extensions/php_log/php7.3.4nts.xdebug.trace xdebug.profiler_enable=On xdebug.profiler_output_dir=D:/phpstudy_pro/Extensions/php_log/php7.3.4nts.xdebug.profiler xdebug.remote_enable=On xdebug.remote_host=localhost xdebug.remote_port=9003 xdebug.remote_handler=dbgp xdebug.remote_autostart = on
|
注:这里最重要的就是xdebug.remote_autostart = on
和xdebug.remote_enable=On
配置vscode
要能进行调试,必须要有下面的拓展
下载好后,我们点击vscode右下角的设置,然后搜索php
编辑settings.json
1 2 3 4 5 6
| { "php.debug.executablePath": "D:/phpstudy_pro/Extensions/php/php7.3.4nts/php.exe", "php.validate.executablePath": "D:/phpstudy_pro/Extensions/php/php7.3.4nts/php.exe", "phpserver.phpConfigPath": "D:/phpstudy_pro/Extensions/php/php7.3.4nts/php.ini", "phpserver.phpPath": "D:/phpstudy_pro/Extensions/php/php7.3.4nts/php.exe" }
|
配置launch.json
点击左侧的调试图标,点击创建launch.json
当然选择的调试器是PHP
这里是需要选择文件夹才能创建,我选的是phpstudy_pro\WWW
创建好后要查看此文件的端口是否和我们phpstudy上监听的端口号一致(即php配置文件xdebug的端口号)
然后将Launch currently open script
的端口号0改成9003
配置好后就可以进行调试
进行调试
我们在WWW下的index.php编写一个demo
1 2 3 4 5 6
| <?php $a=1; $b=1; $c=$a+$b; echo $c; ?>
|
打上断点
F5或者直接点击调试
然后我们访问localhost/index.php
,可以看到我们的代码成功动起来
一步步调试,可以在左侧看调试过程
PHP8
PHP8和7的xdebug配置文件名略有不同
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| [Xdebug] zend_extension=D:/phpstudy_pro/Extensions/php/php8.0.2nts/ext/php_xdebug.dll xdebug.collect_params=1 xdebug.collect_return=1 xdebug.auto_trace=On xdebug.trace_output_dir=D:/phpstudy_pro/Extensions/php_log/php8.0.2nts.xdebug.trace xdebug.profiler_enable=On xdebug.profiler_output_dir=D:/phpstudy_pro/Extensions/php_log/php8.0.2nts.xdebug.profiler xdebug.remote_enable=On xdebug.client_host=localhost xdebug.client_port=9005 xdebug.remote_handler=dbgp xdebug.remote_autostart =On xdebug.mode=debug xdebug.start_with_request = yes
|
总结
掌握调试是学习代码审计非常重要的一部分,网上有关如何利用vscode结合xdebug进行调试的文章也挺多的,不过还是值得记录一下,本人在重装phpstudy和vscode后重新配置调试环境,并且最终实现php代码的调试。当然也是给某人专门写的配置调试环境教程,希望能等到这一天。