RJ博客

PHPStorm+Xdebug调试本地PHP脚本

本文目录

有时候想直接调试PHP脚本,而不是Web代码,如果再通过Web访问这个脚本调试,有点多余了,有方法可以直接调试PHP脚本的:

Windows+phpStudy:

https://blog.csdn.net/hfut_wowo/article/details/88419859

https://blog.csdn.net/yinhangbbbbb/article/details/79247331

phpStudy自带Xdebug插件, 所以直接在php.ini文件的末尾处追加如下代码即可:

;xdebug库文件
zend_extension = "C:\laragon\bin\php\php-7.1.7-Win32-VC14-x64\ext\php_xdebug-2.6.0-7.1-vc14-x86_64.dll"
;开启远程调试
;客户机ip
xdebug.remote_host="127.0.0.1"
;客户机xdebug监听端口和调试协议
xdebug.remote_port=9001
xdebug.remote_handler=dbgp
;idekey 区分大小写
xdebug.idekey="PHPSTORM"
xdebug.profiler_enable = off
xdebug.profiler_enable_trigger = off
xdebug.profiler_output_name = cachegrind.out.%t.%p
;idekey 区分大小写
xdebug.profiler_output_dir = "d:\tmp"

Mac+MAMP Pro:

https://blog.csdn.net/u012852597/article/details/78358463

要点,MAMP Pro 和MAMP识别的php.ini路径不一致,通过MAMP Pro编辑的php.ini文件为:

/Users/rj/Library/Application Support/appsolute/MAMP PRO/templates/php7.0.32.ini.temp

由于PHPStorm配置的PHP版本是MAMP下的,自动识别到的配置文件php.ini

/Applications/MAMP/conf/php7.0.32/php.ini

所以需要另外把Xdebug扩展加一下, 或者直接修改php.ini。

image.png

Xdebug的工作原理:

1)IDE(比如PhpStorm,下文所述的客户端)中已经集成了一个遵循BGDp协议(一个专门用来调试的协议)的Xdebug插件。当要debug的时候,点击一些IDE的某个按钮,启动这个插件。该插件会启动一个9000的端口监听远程服务器发过来的debug信息。

2)浏览器向Httpd服务器发送一个带有XDEBUG_SESSION_START参数的请求,Httpd收到这个请求之后交给后端的PHP进行处理(下面就忽略Httpd,直接把Php叫做Server)。

3)Php看到这个请求是带了XDEBUG_SESSION_START 参数,就告诉Xdebug,“嘿,我要debug喔,你准备一下”。这时,Xdebug这时会向来源ip客户端的9000端口(即客户端,也即是IDE)发送一个debug请求,然后客户端的9000端口响应这个请求,那么debug就开始了。

4)Php知道Xdebug已经准备好了,那么就开始开始一行一行的执行代码,但是每执行一行都会让Xdebug过滤一下。

5)Xdebug开始过滤代码,Xdebug在过滤每一行代码的时候,都会暂停代码的执行,然后向客户端的9000端口发送该行代码的执行情况,等待客户端的决策(是一句代码还是下一个断点待)。

6)相应,客户端(IDE)收到Xdebug发送过来的执行情况,就可以把这些信息展示给开发者看了,包括一些变量的值等。同时向Xdebug发送下一步应该什么。



Refer

https://blog.csdn.net/hfut_wowo/article/details/88419859

https://blog.csdn.net/yinhangbbbbb/article/details/79247331

https://blog.csdn.net/u012852597/article/details/78358463

相关推荐

发表评论