phpstorm启用xdebug调试

工要善其事,必先利其器,首先我们准备的是强大开发工具IDE : PhpStorm

我们用的是最新版 phpstorm 2019.3 (网上有破解激活方法)

然后用的是 phpStudy v8 环境套件 (官网下载地址: https://www.xp.cn )

windows下的php安装XDebug拓展: https://www.cnblogs.com/phplog/articles/11038520.html

 创建一个网站,我选的php版本是 php7.2:

因为框架用的 thinkphp 5.1 , 服务器启用的是 nginx , 所以还要再设置一下伪静态

 thinkphp 5.0, 5.1 的 nginx伪静态规则:

if (!-e $request_filename) {
    rewrite  ^(.*)$  /index.php?s=/$1  last;
    break;
}

 thinkphp 3.2 的nginx伪静态规则:

if (!-e $request_filename) {
    rewrite ^(.*)$ /index.php?s=$1 last;
    break;
}

 然后重启nginx服务。

 编辑对应版本的 php.ini 文件配置:

 

 

 在php.ini配置文件中加入配置:

[XDebug]
;指定Xdebug扩展文件的绝对路径
zend_extension="E:\PHPServer\phpStudy_v8\Extensions\php\php7.2.9nts\ext\php_xdebug.dll"
;指定堆栈跟踪文件的存放目录
xdebug.trace_output_dir="E:\PHPServer\phpStudy_v8\Extensions\tmp\xdebug"
;是否开启远程调试
xdebug.remote_enable=on
;开启远程调试自动启动
xdebug.remote_autostart=on
xdebug.remote_mode=req
;指定远程调试的处理协议
xdebug.remote_handler="dbgp"
;指定远程调试的主机名
xdebug.remote_host="127.0.0.1"
;指定远程调试的端口号
xdebug.remote_port=9100
;是否启用Xdebug的性能分析,并创建性能信息文件
;xdebug.profiler_enable=on
;xdebug.profiler_enable_trigger=0
;指定性能分析信息文件的输出目录
xdebug.profiler_output_dir="E:\PHPServer\phpStudy_v8\Extensions\tmp\xdebug"
;指定传递给DBGp调试器处理程序的IDE Key
xdebug.idekey="PHPSTORM"
;启用代码自动跟踪
;xdebug.auto_trace=on
;允许收集传递给函数的参数变量
xdebug.collect_params=on
;允许收集函数调用的返回值
xdebug.collect_return=on
;是否收集变量
xdebug.collect_vars=on
;是否开启异常跟踪
xdebug.show_exception_trace=0
;显示局部变量
xdebug.show_local_vars=on
;显示默认的错误信息
xdebug.default_enable=on
;xdebug.remote_log="E:\PHPServer\phpStudy_v8\Extensions\tmp\xdebug\remote.log"

 特别注意:

zend_extension="E:\PHPServer\phpStudy_v8\Extensions\php\php7.2.9nts\ext\php_xdebug.dll" 这个路径根据自己的进行修改

xdebug.trace_output_dir="E:\PHPServer\phpStudy_v8\Extensions\tmp\xdebug" 这个文件夹目录必须存在,没有的话手动创建目录

xdebug.profiler_output_dir="E:\PHPServer\phpStudy_v8\Extensions\tmp\xdebug" 这个文件夹目录同上

 

xdebug.remote_port=9100 我把监听端口设置为9100

xdebug.idekey="PHPSTORM"  把IDE KEY设置为 PHPSTORM

 

然后配置 PHPStorm 配置:

Language & Frameworks > PHP > Debug , 设置 Xdebug 的 Debug Port 为 上面设置的 9100 端口

点击工具栏 配置 Edit Configurations..

弹出窗口中,点击 + 号, 点击添加 PHP Remote Debug

 

弹出窗口 Run/Debug Configurations 配置 Configuration > Filter debug connection by IDE key 前面打勾,

选择一个Server, 没有 Server的话 点击右边的 ... 按钮, 添加一个 Server

 

新建一个 Server , 配置 Debugger 为 Xdebug

 

 弹出窗口 Run/Debug Configurations 配置中 IDE key 填写 PHPSTORM

 

 

用Postman 来测试接口

 就会发现 一直在发送等待状态 Sending request

我们返回 PhpStorm 编辑器,就会出现 XDebug 断点调试响应区域,XDebug配置算是完成了。

如果没有唤醒phpstorm的debug调试功能,可以:

在postman请求中的COOKIE里加入XDEBUG_SESSION=PHPSTORM则可调起phpstrom的调试功能

在Headers中新增key:Cookie,Value:XDEBUG_SESSION=PHPSTORM

 

我们就可以方便的查看各种变量常量的运行值了:

 

编辑器其他配置:

 

以fpm方式-web的调试

 

 

 

 以cli模式运行xdebug:

 

 

 安装浏览器Debug拓展:

1. Firefox火狐浏览器

安装 Xdebug Helper for Firefox 拓展:

 拓展安装完成后,就会多出一个debug按钮:

 

2. Chrome谷歌浏览器

到谷歌应用商店: https://chrome.google.com/webstore/category/extensions?hl=zh-CN 搜索安装 Xdebug helper 拓展:

 

 输入 xdebug helper 然后按Enter回车健, 出现结果的第一条就是我们要安装的拓展:

 

 安装完成后,就会出现Debug按钮:

 

 

 

 

 

XDebug调试的一些按钮功能:

图标功能
重新执行DEBUG   Rerun XDebug Ctrl + F5
回到当前执行点的文件  Show Execution Point Alt + F10
不进入函数详情,执行下一步 Step Over F8
进入函数内部,执行下一步 Step Into F7
强行进入某个方法  Force Step Into Alt + Shift + F7
单步执行到子函数内时,就可以执行完子函数余下部分,并返回到上一层函数。Step Out Shift + F8
执行到下一个断点,或者鼠标悬停处Run to Cursor Alt + F9
执行修改变量或返回的结果用于二次调试Evaluate Expression Alt + F8
显示值的地址 Show Values addresses
是否显示空的值 , 默认是不显示Show empty superglobals variables
将方法添加到跳过列表Add method to skip list
运行到下个断点,没有断点就直接运行完成 Resume Program F9
停止本次debug Stop XDebug Ctrl + F2
管理所有断点 View Breakpoints Ctrl + Shift + F8
忽略所有断点 Mute Breakpoints

 

 调试按钮说明:

 

F7 通过当前行,进入下一行,如果该行是方法,则进入方法体
F8 通过当前行,进入下一行,如果该行是方法,也直接进入下一行,不进入方法体
F9 通过整个流程,全部顺序执行,除非遇到下一个断点

 

F8 step over 步越 执行当前函数的下一步,如果有子函数,也不会进入,会一直执行到函数结束
F7 step into 步入 执行当前函数的下一步,如果有子函数,会从头到尾执行子函数,还原了程序执行的最详细的路线,从构造函数到结尾的每一步都会跳到。
Alt + Shift + F7 force step into 与 step into 相同,执行当前函数的下一步,如果有子函数也会进入子函数,只不过不会从头到尾的还原函数执行的路线,会直接跳到子函数内第一步,构造函数等一些前置方法会忽略
Shift + F8 step out 步出 跳出当前执行的函数,跳到父函数的下一步。
Alt + F9 run to cursor 执行到下一个断点处

 

posted @ 2019-12-17 22:10  php学习笔记  阅读(2522)  评论(0编辑  收藏  举报