前言
最近有朋友问笔者XDebug
环境老是配不上, 所以出一篇关于XDebug
环境的详细配置, 需要搭建本地代码审计环境时不迷路.
再次其就是笔者发现了一款一键式环境部署工具, 叫做FlyEnv
, 经过测试可以说是特别好用, 相比较于phpstudy
笔者还是选择了使用FlyEnv
进行一键环境搭建. 有一种从中国菜刀切换为蚁剑的感觉.
因为对于phpStudy
来说, 已经很久没有更新了, 包括每次笔者在使用phpStudy
时, 都需要自己手动配置环境变量, 但FlyEnv
更加方便, 可以一键插入环境变量, 2333.
FlyEnv 介绍
FlyEnv 是一款轻量级的环境管理工具,它可以帮助开发者方便地管理包括PHP在内的多种开发环境。其优势在于能够比较精准地配置环境变量,使得不同项目的运行环境可以很好地隔离开来,避免相互干扰。并且在环境部署方面相对灵活高效,能够在一定程度上提升开发部署的效率,适合对开发环境配置精准度和效率有较高要求的开发者使用。
FlyEnv
官网: https://www.macphpstudy.com/
其Github
为: https://github.com/xpf0000/FlyEnv
安装完毕之后它的 UI 如下:
而PHP, MYSQL
版本等经过笔者测试, 官方最新版也在其内, 更有意思的是它提供了工具箱, 可以在做MISC
题目的时候用到呢?
当然功能远不止这些, 感兴趣可以去官网 & github
进行查看.
XDebug 环境搭建 [Windows]
配置 PHP 版本
在FlyEnv
中《站点》功能, 添加一条域名, 并配置具体版本号:
安装对应的 Debug 插件 (XDebug3)
由于对应的PHP
版本需要对应的xdebug
版本dll文件, 所以在这里我们可以通过FlyEnv
一键配置环境变量, 通过phpinfo
的信息去 https://xdebug.org/wizard 中进行匹配:
随后将安装好的dll
插件放入到我们的php扩展
目录中:
配置 php.ini
在这里我们需要配置一下php.ini
, 配置如下:
[xdebug]
; 指定Xdebug扩展文件的路径
zend_extension = E:LanguagePhpWebStudy-Dataappphp-7.4.33extphp_xdebug.dll
; 设置IDE的key,用于与IDE(如PhpStorm)通信
xdebug.idekey = "PHPSTORM"
; 指定Xdebug客户端(如调试器)的主机名, 通常设置为localhost或127.0.0.1
xdebug.client_host = localhost
; 指定Xdebug客户端监听的端口号, 调试器将在这个端口上监听来自Xdebug的连接
xdebug.client_port = 9003
xdebug.mode = debug
xdebug.profiler_append = 0
; 设置性能分析输出文件的名称格式, %p会被替换为进程ID
xdebug.profiler_output_name = cachegrind.out.%p
; 是否开启远程调试功能
xdebug.remote_enable=On
; 是否在每次请求时自动启动远程调试
xdebug.remote_autostart=On
; 是否随请求启动Xdebug(在debug模式下有效)
xdebug.start_with_request = yes
xdebug.trigger_value=StartProfileForMe
; 设置性能分析输出文件的目录
xdebug.output_dir = C:/Windows/Temp
直接在工具中追加到php.ini
最后一行即可:
随后重启php
应用, 在phpinfo
中发现该扩展说明配置成功:
vscode 配置
安装Debug
插件:
注意的是, 这里 json 文件中的port
, 是需要与php.ini
中配置的端口号进行对应的, 安装完毕后即可使用XDebug
.
debug 演示
PHP 老版本的 xdebug dll文件下载 (XDebug2)
通过 PHP 版本查找 dll 方法
经过测试, 如果使用PHP5.6
的话, https://xdebug.org/wizard 将会显示不支持该版本, 那么我们应该如何在该版本进行debug
配置?实际上与上面的其他步骤都相同, 只是寻找一个对应的版本问题, 可以去 https://downloads.php.net/~windows/pecl/releases/xdebug/ 进行查找对应版本. 那么如何进行查找呢?
需要通过phpinfo
自己来进行对应即可, 安装完ZIP
后, 将其中的php_xdebug.dll
文件将其解压到我们php5.6
的ext
目录中即可:
该步骤后期可能导致的问题 [大坑]
这里虽然对应上了, 但如果后期打断点进不去 | 定义完 php.ini 项目起不来了
的话, 则是因为xdebug
版本过低导致的, 上面那张图的寻找虽然当前的php环境以及VC环境是对应的, 可能vscode
版本太高, 导致不支持低版本的xdebug
, 当然具体原因不知.
实测php5.6.40
在: https://downloads.php.net/~windows/pecl/releases/xdebug/2.5.4/php_xdebug-2.5.4-5.6-ts-vc11-x64.zip 下载可以成功运行, 查找思路仍然是之前的查找思路.
php.ini 配置 [大坑2]
xdebug2.x.x
与xdebug3.x.x
中, 在php.ini
中的配置是不一样的, 有一些参数的改变, 这里给上可以成功配置的配置项:
[xdebug]
; 指定Xdebug扩展文件的路径
zend_extension=E:/Language/PhpWebStudy-Data/app/php-5.6.40/ext/php_xdebug.dll
xdebug.remote_handler=dbgp
xdebug.idekey=PHPSTORM
;开启远程调试
xdebug.remote_enable = On
;远程主机
xdebug.remote_host=localhost
;主机端口
xdebug.remote_port=9003
;开启自动跟踪
xdebug.auto_trace = On
;开启异常跟踪
xdebug.show_exception_trace = On
;开启远程调试自动启动
xdebug.remote_autostart = On
;收集变量
xdebug.collect_vars = On
;收集返回值
xdebug.collect_return = On
;收集参数
xdebug.collect_params = On
;显示局部变量
xdebug.show_local_vars = On
xdebug.profiler_enable = On
xdebug.trace_enable_trigger =On
xdebug.profiler_output_dir = C:/Windows/Temp
xdebug.trace_output_dir = C:/Windows/Temp
实际上这里在我们vscode
插件中也有说明:
Reference
https://blog.spoock.com/2017/09/19/xdebug-attack-surface/
https://blog.ricterz.me/posts/Xdebug:%20A%20Tiny%20Attack%20Surface
https://zhuanlan.zhihu.com/p/497002112
https://sp4rkw.blog.csdn.net/article/details/79604839
https://blog.csdn.net/continueCode/article/details/119756563
原文始发于微信公众号(Heihu Share):环境搭建 | XDebug 无错配置+代替phpStudy的另一种集成工具
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论