最近打算对一些常见的php代码进行源码审计,当然良好的调试环境也是少不了的,在配置PhpStorm+xdebug的时候踩了些坑,遂记录。

1.0:下载对应版本的XDEBUG

xdebug对php版本信息有着较高的要求,首先得通过当前php的版本信息下载对应的xdebug插件。

在本地环境查看当前phpinfo:

我们直接ctrl+a全选复制,打开https://xdebug.org/wizard

[]

将所有内容粘贴到框内并且点击Analyse my phpinfo() output

下载对应的xdebug,复制小标号3的zend_extension = C:\php\ext\php_xdebug-3.0.2-7.2-vc15-nts.dll(注,每个人不一样)

[]

1.1:更改php.ini配置文件

打开对应目录的php.ini,我这里是D:\phpStudy\PHPTutorial\php\php-7.2.1-nts\php.ini,然后将刚刚复制的加上如下对应配置即可。

1
2
3
4
5
6
7
8
#刚刚复制的xdebug所在路径
zend_extension = D:\phpStudy\PHPTutorial\php\php-7.2.1-nts\ext\php_xdebug-3.0.2-7.2-vc15-nts.dll
xdebug.mode = debug #xdebug模式
xdebug.start_with_request = yes
xdebug.client_port = 9100 #xdebug对应监听端口,默认为9000,这里设置为9100防止冲突
xdebug.remote_host=127.0.0.1
xdebug.remote_handler=dbgp
xdebug.idekey=Mengda #链接密码,这个等等在PhpStorm设置的时候要用到

然后重启apache服务器,打开phpstorm

1.2:对PhpStorm进行配置

看到对应的setting->php->Debug更改Debug port为刚刚配置文件种的端口,这里是9100

[]

看到对应的setting->php->Debug->DBGP Proxy更改对应的IDEKEY(配置文件中设置的Key),HOST,Port

[]

看到对应的setting->php->Servers添加一个服务,如图所示

[]

到此就设置完毕了,有时候可能会遇到一些报错,是因为现在的xdebug是3.X版本的,网上很多教程是2.X版本的,配置ejike文件中很多的变量名都进行了更新,导致报错。所以只需要将配置文件中xdebug的参数使用3.X版本的即可。本文章中之前给的配置参数就是3.X标准的,无需修改。

1.3:用法介绍

介绍一下调试按钮所对应的功能

[]

  • 第一个按钮:step over 步越

执行当前函数的下一步,如果有子函数,也不会进入,会一直执行到函数结束

  • 第二个按钮:step into 步入

执行当前函数的下一步,如果有子函数,会从头到尾执行子函数,还原了程序执行的最详细的路线,从构造函数到结尾的每一步都会跳到。

  • 第三个按钮:force step into

与step into 相同,执行当前函数的下一步,如果有子函数也会进入子函数,只不过不会从头到尾的还原函数执行的路线,会直接跳到子函数内第一步,构造函数等一些前置方法会忽略

  • 第四个按钮:step out 步出

跳出当前执行的函数,跳到父函数的下一步。

  • 第五个按钮:run to cursor

执行到下一个断点处