标签:符号 告诉 获取 iot 台电脑 key 注意 源码 发送
在看tp5源码时,意识到自己脑子不够用,需要借助到调试。
xdebug可以控制PHP程序的执行,这意味着xdebug可以在任何时候暂停或者恢复正在运行的PHP程序。当PHP程序被暂停的时候,xdebug可以获取到程序的相关信息,比如变量的值等。xdebug也可以修改一个变量的值,然后再恢复暂停的程序,让其继续运行。
xdebug配合IDE(如phpstorm)进行可视化调试的过程被称为“远程调试”,是因为调试时有一个Server(xdebug)和一个Client(IDE),所以在调试的时候,被调试的PHP程序和调试PHP程序的IDE可以不在同一台电脑上。
xdebug在进行远程调试的时候扮演一个Server的角色,它会在一个指定的端口(默认是9000)等待IDE的连接。目前有2种通信的协议,GDB和DBGp,其中DBGp是DBG的取代协议。IDE在执行调试的时候,给xdebug发送需要执行的命令,xdebug接受到命令后执行,然后将执行的情况和获得的PHP程序运行信息返回给IDE。
开启xdebug远程调试需要通过GET, POST或是cookie的方式传入一个XDEBUG_SESSION_START变量,XDEBUG_SESSION_START变量的值代表一个session的名称。通过这种形式,xdebug可以分辨出不同的session。如果要结束一个session可以通过同样的形式传入一个XDEBUG_SESSION_STOP。
使用phpinfo(),查案服务器信息
将phpinfo页面放到xdebug官网进行检测,会自动告诉你改下载什么版本
官网地址:https://xdebug.org/wizard
将下载的文件放置到 C:\phpstudy_pro\Extensions\php\php7.3.4nts\ext
文件下
修改php.ini文件(配置调试插件),反正就把下面的配置文件都写上
关键点是:
zend_extension:
指定dll文件位置,最好放置在ext目录下
xdebug.remote_enable = 1
开启remote_debug。前面说过,借助IDE来debug就是remote_debug
xdebug.remote_post:
指定xdebug的监听端口,默认是9000。
[XDebug]
zend_extension = "C:\phpstudy_pro\Extensions\php\php7.3.4nts\ext\php_xdebug-2.7.2-7.3-vc15-nts-x86_64.dll"
xdebug.auto_trace=on
xdebug.collect_params=on
xdebug.collect_return=on
xdebug.trace_output_dir="C:\phpstudy_pro\AppServ\Xdebug"
xdebug.profiler_enable=on
xdebug.profiler_output_dir="C:\phpstudy_pro\AppServ\Xdebug"
xdebug.remote_enable = 1
xdebug.remote_handler = dbgp
xdebug.remote_host= "127.0.0.1"
xdebug.remote_port = 9000
xdebug.remote_autostart=1
xdebug.idekey = PHPSTORM
这时候,查看phpninfo()就能看到相关xdebug配置信息。php-server这一步算是结束了。
先配置phpstorm的端口,注意要和php.ini中的xdebug配置相同
File->setting->language&Frameworks->PHP->Debug
配置server
先校验一下
run->web server debug validate,点击Validate,保证没有错误
错误原因:一般都是上面的两个地址写错了(如端口号写在/后面)
打开监听(右上角的电话??符号)
注意这个时间和很多因素有关,我之前一直调整php.ini的配置,还需要调整 apache的配置项
在apache的配置项中加入如下代码,即可演唱调试时间
<IfModule mod_fcgid.c>
FcgidProcessLifeTime 8200
FcgidIOTimeout 8200
FcgidConnectTimeout 4000
</IfModule>
标签:符号 告诉 获取 iot 台电脑 key 注意 源码 发送
原文地址:https://www.cnblogs.com/jianga/p/12822738.html