Windows下搭建PHP调试环境(phpstudy+VScode)
0x00 问题背景
近期在学习sqli-labs时想更清楚的看到变量拼接后的内容,之前也一直想搭建一个php 的调试环境,刚好最近在国光大佬的文章中发现了类似的内容,记录一下自己的学习过程。 |
0x01 配套环境
Win_10 操作系统,这里windows下环境的搭建都是相同的 phpstudy2016+ ,建议使用phpstudy2018或者最新版的phpstudy_pro,后者有着更好看的UI,前者则是更简洁的界面。 php5.6.9,5.3以上的任意版本都可以开启此扩展,具体由工作情况而定。 Xdebug 2.5.5,在5.3版本以上的php中可以直接在扩展中打开,比较简单。 VScode 1.66.2,或者phpstrom等IDE。 FireFox + Xdebug helper或PHP SERVER启动调试. |
0x02 php Xdebug简介
官方介绍:
Xdebug 是一款帮助php开发和调试的扩展。它提供了在IDE中单步调试的功能,也优化了了var_dump 的输出格式,为Notice、Warning、Error 和Exception 提供了调用栈信息,还可以结合PHPUnit 提供代码覆盖率信息等。
- 由此可以看到想要与
Xdebug 交互获得当前代码中的各种信息,一个好的IDE也是必不可少的。
Xdebug扩展启用
- 这里使用最新版本的
phpstudy 搭建xdebug 版本为2.5.5 。
以phpstudy_pro 和php5.6.9 为例,选择软件管理→php标签→设置。
在设置中选择扩展组件→XDebug调试组件。 这里的profiler 和trace 分别对应配置文件中下面两项的值。
xdebug.auto_trace=Off / on
xdebug.profiler_enable=Off / on
0x03 php.ini配置
在图形化的界面中已经可以更改部分php.ini的配置,包括xdebug.auto_trace、xdebug.profiler_enable和xdebug.remote_port的内容,但还有部分内容需要我们在ini中直接修改。 |
在基础使用中需要用到的配置参数为:
zend_extension=X:/phpStudy_64/phpstudy_pro/Extensions/php/php5.6.9nts/ext/php_xdebug.dll
xdebug.collect_params=1
xdebug.collect_return=1
xdebug.auto_trace=On
xdebug.trace_output_dir=D:/phpStudy_64/phpstudy_pro/Extensions/php_log/php5.6.9nts.xdebug.trace
xdebug.profiler_enable=On
xdebug.profiler_output_dir=D:/phpStudy_64/phpstudy_pro/Extensions/php_log/php5.6.9nts.xdebug.profiler
xdebug.remote_enable=On
xdebug.remote_host=localhost
xdebug.remote_port=9000
xdebug.remote_handler=dbgp
xdebug.idekey = AFCC
全部配置完毕后重新启动phpstudy 读取配置文件,打开phpinfo.php 。搜索xdebug 如图所示,表示服务端已经配置完毕。
0x04 vscode配置
VScode下载安装
VScode官网中选择对应系统的安装包类型,一路Next安装即可。
VScode调试配置
1. PHP Debug
在VScode的扩展中搜索并安装 PHP Debug
设置之前确定的IDEkey。 之后随意编写一个含有变量的php文件用来测试:
<?php
$a = $_GET['a'];
$b = $_GET['b'];
$a_b = $a + $b;
var_dump($a_b);
?>
2. launch.json
根据提示创建launch.json 文件,内容为:
{
"version": "0.2.0",
"configurations": [
{
"name": "Listen for Xdebug",
"type": "php",
"request": "launch",
"port": 9000
},
{
"name": "Launch currently open script",
"type": "php",
"request": "launch",
"program": "${file}",
"cwd": "${fileDirname}",
"port": 9000
}
]
}
3. PHP SERVER创建调试
为了便于调试开启与关闭,直接安装PHP SERVER插件。 分别配置
Browser默认打开的浏览器
php.ini和php.exe用于启动服务 点击Run and Debug,然后点击PHP server直接打开浏览器调试。
调试完毕后使用CTRL + SHIFT + P选择PHP Server: Stop server,停止对应的php server。
4.FireFox + Xdebug helper调试
在这里火狐和google浏览器都有对应的Xdebug helper,在扩展管理中下载并安装扩展。
安装完毕后只需配置IDEkey即可。 在VScode中点击Run and Debug,然后在浏览器访问页面,点击小图标开始调试。 调试完毕后选择Disable即可。
|