PHP 动态调试配置

PHP 动态调试配置

Gat1ta 222 2021-04-27

最近在学习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设置如下:
image.png
image.png
image.png
按照上面配置后phpstorm就配置完成了,这里提醒一下,端口的设置除了80其他的都是要和php.ini中xdebug端口设置的一样。

接下来,打开谷歌浏览器,打开谷歌商店,搜索xdebug helper,安装。

安装完之后,在谷歌扩展程序中,找到xdebug helper,打开扩展程序选项,设置如下:
image.png

到此为止,调试环境就已经搭建好了,接下来就可以尝试调试了。

0x2:本地调试

为了调试,新建一个info.php来测试,文件中就一条代码:phpinfo();

phpstudy启动WAMP,然后phpstorm中设置监听调试端口(也就是php.ini设置的端口):
image.png

然后谷歌浏览器设置xdebug helper为调试状态:
image.png

设置好刷新一下,phpstorm就可以接收到调试信息了:
image.png