用到的工具:

phpstorm
phpstudy(php扩展默认自带xdebug)
firefox(需要安装xdebug helper插件)

调试步骤:

  1. phpstudy安装的php环境中对应都有带xdebug,故如果用phpstudy进行php代码测试,则不用重复安装xdebug。如下图:

2022-05-09_135558.png2. 如果没有xdebug的话也可以执行下载,并放入php扩展下面,下载地址
https://xdebug.org/download.php
https://xdebug.org/wizard.php
3.我这里使用的php版本是php7.1.9nts,在这个php版本的php.ini文件中添加xdebug配置参数如下:
2022-05-09_140922.png

  1. 具体的xdebug配置如下
  2. [XDebug]
  3. xdebug.profiler_append = 0
  4. xdebug.profiler_enable = 1
  5. xdebug.profiler_enable_trigger = 0
  6. xdebug.profiler_output_dir ="D:\temp\xdebug" # 改成自己本地的目录
  7. xdebug.trace_output_dir ="D:\temp\xdebug" # 改成自己本地的目录
  8. xdebug.profiler_output_name = "cache.out.%t-%s"
  9. xdebug.remote_enable = 1
  10. xdebug.remote_handler = "dbgp"
  11. xdebug.remote_host = "test.localhost.com" # 改成自己的远程地址,ip域名都行,我这里test.localhost.com对应的ip是127.0.0.1(HOSTS文件里改)
  12. zend_extension=php_xdebug.dll

4.修改vhosts.conf(APACHE的配置文件),添加如下两行内容,添加这个的作用是延长调试时间,不然调试一会儿会自动断开调试模式。
IPCConnectTimeout 300000
IPCCommTimeout 300000
2022-05-09_141553.png2022-05-09_141638.png5.修改完成后记得重启APACHE。
2022-05-09_142115.png6. 之后用phpstorm打开测试项目。打开Settings—languages & frameworks—php,修改使用的php版本。
2022-05-09_142449.png2022-05-09_142615.png7.Settings—languages & frameworks—php—debug下的debug port用默认的9000就可以了,也可以修改成其他的。
2022-05-09_143328.png8.Settings—languages & frameworks—php—debug—DBGp Proxy下填写如下内容:
2022-05-09_143529.png9.Settings—languages & frameworks—php—servers添加一个server,如下:
2022-05-09_143732.png10.之后应用一下修改的配置。之后添加一个Run/Debug Configurations—PHP WEB Page,配置如下:
2022-05-09_144413.png11.之后测试一下是否可用
2022-05-09_144520.png12.再开启监听,在项目中添加一些断点
2022-05-09_144620.png13.之后打开firefox,并安装一个xdebug helper
2022-05-09_144910.png14.安装成功后会在地址栏的右边出现debug的小图标,如下图
2022-05-09_145034.png15.之后右键小图标—管理扩展,进入如下界面:
2022-05-09_145404.png16.点击上图红色箭头—选项,进入如下界面,修改IDE KEY为如下内容:
2022-05-09_145553.png17.之后使用浏览器访问(firefox)起始地址:http://test.localhost.com/Pboot/admin.php
2022-05-09_145820.png18.将上图中debug小图标模式选为debug模式,如下图:
2022-05-09_150030.png19.之后就可以正常调试了,如上图在登录口填写内容并点击登录。
2022-05-09_150159.png20.代码停在第一个断点处,之后就可以逐步调试了。
2022-05-09_150218.png2022-05-09_150238.png