这两天在学习Web的RCE,因为没什么PHP的语言基础,学的很晕。就想着如果能够调试的话可能就好的很多了,但我在Windows上配置完后才悟到是我想多了。大部分的服务器都是Linux的平台,而Windows上的cmd命令真的很难用啊,远远比不上Linux。捣腾了一上午(我太难了.jpg),终于搞好了(差不多好了),记录一下这个大冤种的行为。
这里我是用的是PHPStorm + PHPStudy,只能说PHPStudy真的牛。
PHP5.x
和PHP7.x
还是不同的,这个困饶了好一会儿。
正文开始咯!
新版旧版一起说了,会提醒差别de。
- 打开
PHPStudy
->网站
->管理
PHP5.x的选择
php_xdebug
,而PHP7.x的选择xdebug
- 打开phpstudy的网页,输出的为phpinfo()
如果是新版本的PHP就会成功,而我用PHP5.x就失败了,(如第一张图)
新旧版PHP的区别
如果成功的话就直接点击下载,失败的话就访问Xdebug: Historical Releases,至于下载什么版本就取决于phpinfo中的 Compiler。
无论是什么版本的,下载的文件名都是php_xdebug-版本号-php版本-vc版本-nts-x86_64.dll
,将该文件保存到文件夹..\phpstudy_pro\Extensions\php\php7.3.4nts\ext\..
下,删除原本的php_xdebug
并把刚刚下载的文件重命名为php_xdebug
。最好停止网页的运行后操作,否则无法进行删除等操作.
修改对应的php.ini文件(文件位置
.\phpstudy_pro\Extensions\php\php7.3.4nts\php.ini
)
旧版本的PHP,使用的是Xdebug 2.x[Xdebug] xdebug.profiler_enable=on zend_extension=这个地方填你刚刚下载的php_xdebug的存放路径 xdebug.collect_params=on xdebug.collect_return=on xdebug.mode= "debug" xdebug.auto_trace=On xdebug.profiler_enable=On xdebug.remote_enable=on xdebug.remote_host=localhost xdebug.remote_port=9000 //这个地方要注意,后面要用到 xdebug.remote_handler="dbgp" xdebug.remote_mode="req" xdebug.idekey="PHPSTORM" //这个地方要注意,后面要用到
新版本的PHP > 7.x,使用的是Xdebug 3.x
[Xdebug] xdebug.mode=debug zend_extension=这个地方填你刚刚下载的php_xdebug的存放路径 xdebug.output_dir = /tmp xdebug.client_host=localhost xdebug.client_port=9000 //这个地方要注意,后面要用到 xdebug.remote_handler=dbgp xdebug.idekey=PHPSTORM //这个地方要注意,后面要用到 xdebug.var_display_max_depth = 15 xdebug.var_display_max_data = 2048
至于Xdebug 2.x与Xdebug 3.x的配置区别详见Xdebug:从 Xdebug 2 升级到 3
下面就主要是PHPStorm的配置了
- PHPStorm中配置
如果失败则修改 php.ini 文件
- 配置调试的php网页
如果验证报错,检查php.ini文件。
基本完工了。
打开监听,再断点,调试。