php教程视频教程全集
之前自己也写过一些使用xdebug相关的笔记,网上也看了一些教程,但是都是比较零零散散,不够全,我自己也很长时间没有形成一个比较全面的学习和理解这个教程是我个人实践总结,再次整理PHP成笔记一、XDebug原理。
了解PHP Xdebug 的工作原理,可以在使用xdebug时会更得心应手,遇到问题知道从哪里着手解决,少走弯路,靠搜索引擎东拼西凑去了解可能也要花大量时间。先来看一个图:PHP
xdebug调试流程图上面这个图表示了PHP xdebug调试功能的大概流程:a、没有开启xdebug的情况下,当发起一个请求或者CLI执行程序时,请求转发给PHP,由PHP解释器执行,处理完成后把结PHP果再返回给客户端。
b、在转发给PHP执行的时候,如果请求参数信息表示需要xdebug,如下
本文主要讲的两个调试方式那么PHP会告诉xdebug要准备好了吗,有客户端来了,接待一下;xdebug收到通知PHP之后,检查了客户端的IP和端口(php.ini配置文件中的remote_host、remote_port),然后跟来源客户端(就是我们的phpstorm)发起通信,我们的IDE收到xdebug的连接消PHP息后,就开始建立连接了,两者的通讯连接是基于DBGp协议的。
c、保持通信后,PHP程序执行的每一步产生的信息数据,都经过了xdebug的过滤处理,Xdebug接着发送调试信息给IDE的开发者看,反之,PHPIDE的操作也会发送给PHP,再xdebug处理,再返回调试信息。
二、C/S架构上图描述了大概流程,接下来在掌握几个概念Xdebug是一个PHP扩展,它采用DBGp协议,提供了对PHP进行DebuggPHPing和Profiling的能力XDebug调试是一种C/S结构,Client是IDE,Server是PHP-Xdebug,中间通过DBGp协议通信。
这篇文章就只讲debug功能,其他的功能下次分享三PHP、配置实操首先是需要PHP支持xdebug,开启服务端监听,配置如下:Server配置:Xdebuga、下载安装扩展,选择跟PHP版本对应的版本window:
下载地址:https://xdebug.oPHPrg/download
根据不同的php版本下载linux:wgethttps://xdebug.org/files/xdebug-3.1.4.tgztar-xzvf xdebug-3.1.4.tgz PHP&& cd xdebug-3.1.4
phpize./configure--with-php-config=/usr/local/php/bin/php-configmake&& make instalPHPl###最后会在extension目录下生成.so文件,把这个文件加入到PHP.ini上
b、修改php.iniwindows:zend_extension=E:/XXX/Extensions/php/PHPphp7.3.4nts/ext/php_xdebug.dll xdebug.collect_params
=1xdebug.collect_return=1xdebug.remote_ePHPnable=Onxdebug.remote_host=localhost;IDE所在主机的IPxdebug.remote_port
=9103;IDE基于什么端口监听xdebug.remote_handPHPler=dbgp ;xdebug3.0中用于代替之前的xdebug.remote_portxdebug.client_port=9103
上面配置的意思是,xdebug要启用一个监听,监PHP听的地址是localhost,还有端口号如果有客户端(IDE)向这个地址端口发送通知,xdebug就可以收到linux:zend_extension=/usr/local/php/lib/php/exPHPtensions/
no-debug-non-zts-20170718/xdebug.so xdebug.collect_params=1xdebug.collect_return=1xPHPdebug.auto_trace=Off
xdebug.profiler_enable=Offxdebug.remote_enable=Onxdebug.remote_host=192.168.2.12PHP8xdebug.remote_port=9103
xdebug.remote_handler=dbgp xdebug.client_host=192.168.2.2xdebug.cliePHPnt_port=9103xdebug.mode=debuglinux这里的php.ini其实可以跟windows下一样。
Client配置:Phpstorm这里的使用phpstorm这个IDE来配置,已PHP经有了xdebug server,接下来怎么去调用server并且通讯呢,接下来就是phpstorm来实现客户端配置IDE的debug端口,跟php.ini中一致才能通信
有的小伙伴会先执行Pre-coPHPnfiguration的第1不Validate,也可以,但这个是属于后面怎么用的了,先放到后面,配置好端口完事四、开始使用Xdebug调试调试方式调试方式有:基于命令行Cli调试、网页(http)请求PHP调试。
如下图,配置好调试方式项,就可以选择其中一种,然后点击旁边小绿虫开始调试。接下来讲如何配置调试方式。
基于命令行Cli调试:首先要指定解释器:直接执行php脚本,肯定要指定使用哪个主机的哪个版本的PHPPHP去执行程序,其实就是对应php版本的可执行文件。
Settings > PHP,可以显示并设置PHP解释器添加本地解释器:
先添加一个本地PHP解释器快速实践添加远程解释器:
添加好了php解释器
点击PHPEDit,开始配置cli调试方式
就是选择哪个解释器,执行哪个脚本,什么参数,保存就行了配置好了之后,回到工具栏,选择配置好的调试选项,开启监听按钮(重点),然后点击绿色按钮,phpstorm就可以跟xPHPdebug连接了,进入cli调试模式。
WebServer模式就是通过网页(http)请求的方式,用postman也可以webserver可以是本地或者远程,如果是远程的web服务,可以配置目录映射,然PHP后可以远程调试的配置一下,网页服务有哪些:。
本地的webserver
远程的webserver验证webserver是否配置好xdebug:这一步挺重要,报错信息提示的也全,如果通不过跟着改就行了。
这里PHPValidate一下
点击Validate之后,进入到这里,选第一个本地验证一下单击验证是否通过,有了server,就可以选择一个server开始调试,浏览器会被调起,发起xdebug通信请求,类似这样PHP:http://test.vm/?XDEBUG_SESSION_START=1
把这个连接复制到其他浏览器运行,也可以改成post或者get方式请求,加入更多的参数,回到工具栏去选择配置好的方式,点击小PHP绿虫,就可以开始调试了。
配置好的网页webserver
地址copy到postman,也可以发起调试
可以看到调试信息了补充:如果想要远程调试,首先要配置远程服务器的PHP Xdebug,remote_hPHPost一样配置成IDE所在主机(必须能在远程服务器上访问得到);然后本地Phpstorm配置一个远程server,上面说过了,设置一下跟本地文件映射;最后就可以按照一样的方式调试了。
亲爱的读者们,感谢PHP您花时间阅读本文。如果您对本文有任何疑问或建议,请随时联系我。我非常乐意与您交流。
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。