最近在学习PHP代码审计,审计过程中,调试是必不可少的,但是PHP调试还不像C++那样直接IDE里集成,这个需要单独配置,这篇文章就来记录一下详细配置过程。
0x0:环境准备
当前调试环境采用的是Phpstudy+xdebug+phpstorm+xdebug helper。
phpStudy是一个PHP调试环境的程序集成包。该程序包集成最新的Apache+PHP+MySQL+phpMyAdmin+ZendOptimizer,一次性安装,无须配置即可使用,是非常方便、好用的PHP调试环境。
Xdebug是一个开放源代码的PHP程序调试器(即一个Debug工具),可以用来跟踪,调试和分析PHP程序的运行状况。Xdebug2018年的最新版本是Xdebug 2.7.0beta1,release日期2018-09-20,添加了对PHP7.2的支持。
PhpStorm 是 JetBrains 公司开发的一款商业的 PHP 集成开发工具,旨在提高用户效率,可深刻理解用户的编码,提供智能代码补全,快速导航以及即时错误检查。
xdebug helper 是一个浏览器插件,主要用于程序的调试使用。适用谷歌,360浏览器。
当前环境版本:
OS:win10 10586
PhpStudy:8.1.1.2
xdebug:2.7.2
PhpStorm:2021.1.1
xdebug helper:1.6.1
0x1:环境搭建
首先下载Phpstudy,一键安装即可,一键启动选择的mysql+apache。
然后在Phpstudy->网站->管理->php扩展将xdebug选上。
然后在phpstudy->设置->配置文件->打开Php的设置文件,拖到最后,在xdebug的设置里,改成下面这样:
zend_extension=E:/phpstudy_pro/Extensions/php/php7.3.4nts/ext/php_xdebug.dll //这个不用改
xdebug.collect_params=1
xdebug.collect_return=1s
xdebug.auto_trace=On
xdebug.trace_output_dir=E:/phpstudy_pro/Extensions/php_log/php7.3.4nts.xdebug.trace //这个不用改
xdebug.profiler_enable=Off
xdebug.profiler_output_dir ="E:\phpstudy_pro\Extensions\tmp\xdebug" //这个不用改
xdebug.remote_enable=On
xdebug.remote_host=localhost
xdebug.remote_port=9000
xdebug.remote_handler=dbgp
xdebug.remote_autostart=1
xdebug.remote_connect_back=1
xdebug.idekey=PHPSTORM //这个要和phpstorm xdebug helper保持一致
然后下载phpstorm并安装,这个Ide不是免费的,但是可以免费使用30天,当前使用的就是免费30天。
安装完之后,打开File->setting设置如下:
按照上面配置后phpstorm就配置完成了,这里提醒一下,端口的设置除了80其他的都是要和php.ini中xdebug端口设置的一样。
接下来,打开谷歌浏览器,打开谷歌商店,搜索xdebug helper,安装。
安装完之后,在谷歌扩展程序中,找到xdebug helper,打开扩展程序选项,设置如下:
到此为止,调试环境就已经搭建好了,接下来就可以尝试调试了。
0x2:本地调试
为了调试,新建一个info.php来测试,文件中就一条代码:phpinfo();
phpstudy启动WAMP,然后phpstorm中设置监听调试端口(也就是php.ini设置的端口):
然后谷歌浏览器设置xdebug helper为调试状态:
设置好刷新一下,phpstorm就可以接收到调试信息了: