php开发环境的Debug配置全解.docx
- 文档编号:8381733
- 上传时间:2023-01-30
- 格式:DOCX
- 页数:11
- 大小:356.69KB
php开发环境的Debug配置全解.docx
《php开发环境的Debug配置全解.docx》由会员分享,可在线阅读,更多相关《php开发环境的Debug配置全解.docx(11页珍藏版)》请在冰豆网上搜索。
php开发环境的Debug配置全解
因为无法上传图片,所以我把本文所用到的参考图片全部放到的本文的最后,按照出现的先后顺序而排列,在看本文的时候希望能够配合后面的图片一起查看会更加的清楚.
原理分析:
要php实现debug功能一共要做好三处配置。
1.配置php的开发环境和Debug,
2.把IDE中开发的项目配置到web服务器中
3.把Debug功能所产生的参数给发送到IDE的Debug模块中显示出来,因此phpini扩展的Debug的xdebug.remote_port所指定的端口就是其他接收此Debug程序在调试过程中所产生的参数所使用的端口,因此IED中的Debug的端口一定要和phpini中的指定的端口一样,否则IDE的debug模块肯定获取不到数据,自然也就无法调试了,要搞清楚的一点是:
真正的Debug执行是再php的开发包中完成的,不是在编辑环境IDE中完成的,IDE只是显示一下Debug过程中的参数变化情况而已,当然在IDE中Debug的过程中是可以进行监视的,但是那监视也是调用了php编辑环境中的Debug扩展实现的。
第一步:
Php的Debug功能是由其他的代理商提供的,而php是由php的公司提供的,它们来至不同的公司,而且又没有集成,所以就需要通过类似于添加插件的方式添加扩展来实现,因为它是对php的源代码进行调试的,所以它肯定是放在了php开发包里面的,也就是放在php的ext文件里面(ext就是扩展包),只是把它放了进去是没有用的,必须要让php环境给检测到它的存在,而php环境启动的时候首选是要检测配置文件里面所配置的参数,然后去查找对应的参数所配置的资源文件,如果有参数但是配置的资源文件是不存在的,那么Apache就是启动不了的,因为它启动了也是错误的,所以它干脆就不启动,还有一种情况就是我们所下载的XDebug的版本跟我们目前的php版本不兼容,不论是什么原因反正结果就是它们在一起组合是不能够正常运行的,因此配置好第一步我们需要解决上述的几个矛盾。
(1)下载正确的Xdebug版本,首先把自己的phpinfo给输出出来,复制一份,然后在浏览器中打开以下的链接:
http:
//xdebug.org/find-binary.php,之后把复制好的code放进去,点击页面下面的Analysemyphpinfo()output按钮(查看截图检测自己php应该下载哪一个xdebug的网页截图.png),等待网页的回复(查看截图回复.png),这个时候它们会给你一个正确的提示并且把对应Xdebug的下载链接也直接在网站上给出,这个时候你只需要点击以下链接就可以下载到正确的版本,而且还会告诉你你下载这个版本之后应该怎么做,一般就是让你把下载好的Xdebug放进php的ext扩展文件中,然后再phpini里面把它的路径给配置进去就行了。
(2)配置phpini,虽然你的Xdebug版本是正确的,但是如果你的Xdebug配置不正确的话,比如你的远程的端口配置,你的Xdebug开启的功能…你还是用不了它的,因此配置好phpini需要一样的重要:
以下就是我的phpini对应Xdebug的配置,大部分情况下这几项配置对了一般都不会有问题的,
[Xdebug]
;Xdebug的存放路径,这里有个小问题就是,zend_extension_ts的写法,如果你的phpinfo在检测之后提示的是ThreadSafeBuild:
yes那么你就需要使用zend_extension_ts个写法,否则你就需要zend_extension的写法,这个也是很重要的(注意如果你事把这段直接复制的话,需要在ini中把这些文字删除掉或者在每一行的前边加上”;”来注释掉它,否则在Apache启动的时候就会出错)
zend_extension_ts=C:
\ProgramFiles\PHP\ext\php_xdebug-2.1.2-5.2-vc6.dll
;是否开启自动跟踪
xdebug.auto_trace=On
;是否开启异常跟踪
xdebug.show_exception_trace=On
;是否开启远程调试自动启动
xdebug.remote_autostart=On
;是否开启远程调试
xdebug.remote_enable=On
;允许调试的客户端IP
xdebug.remote_host=127.0.0.1
;远程调试的端口(默认9000)
xdebug.remote_port=9000
;这里需要注意的是如果你的扩展的路径没有错,而且Apache也无法启动的话,那就说明你的端口可能被占用了,这个时候你需要把这个端口给修改一下,你可以任意指定一个其他的端口,比如9999。
;调试插件dbgp
xdebug.remote_handler=dbgp
;是否收集变量
xdebug.collect_vars=On
;是否收集返回值
xdebug.collect_return=On
;是否收集参数
xdebug.collect_params=On
;跟踪输出路径,如果你的d盘不存在这个xdebug文件夹请新建一个
xdebug.trace_output_dir="d:
\xdebug"
;是否开启调试内容
xdebug.profiler_enable=On
;调试输出路径,如果你的d盘不存在这个xdebug文件夹请新建一个
xdebug.profiler_output_dir="d:
\xdebug"
(3)等把这些给搞好了之后你就需要重启一下自己的Apache了,若果启动正常,那么接下来在输出一下phpinfo()的信息,这个时候如果输出的信息中包含了Xdebug的信息,那么就说明你的debug已经被开发包所加载成功了,这一步到此结束(请查看截图phpinfo().png)。
第二步:
配置正确开发环境的网站对于在IDE(集成开发环境:
比如eclipse和phpStorm…)中开发网站,需要注意的是你首先要保证这个网站在开发环境中是可以运行在服务器里面的,比如Apache环境,如果你的网站不能够在服务器里面浏览的话那就更不要提去调试了,这个时候你需要做的是先把此网站在服务器中配置好,配置的成功的标志是这样的,就是通过点击IDE的run按钮就可以正常的在浏览器中浏览。
具体步骤:
第一:
在Apache的httpd.conf中配置好网站的信息:
(文件在programfiles\apache\conf\httpd.conf)打开之后配置:
9090> DocumentRootD: \eclipse-phpDev网站文件所在的物理路径根目录 ServerName访问网站的名称(这里的名字将会用在未来在IDE中配置phpserver中)
第二:
打开C:
\Windows\System32\drivers\etc\下面的hosts文件,从它的名字可以知道它就是来配置主机的文件,打开之后配置如下的参数:
127.0.0.1
把这些配好之后保存,然后重新启动Apach。
第三:
配置IDE中phpServer(开发环境中的php服务器)。
配置phpStorm:
FileSettings点击php如下图:
配置php的Name(自己随便起),Host就是在刚才hosts中配置的那个名称:
port配置为在httpd.conf中的端口,Debugger选择Xdebug,选择路径的时候就在右边点击一下就出来一个下拉列表选择刚才配置网站的根目录就行了,(如果你看不清楚的话就左手按在ctrl键,右手把鼠标的滚动轴向前滚动来放大word就可以看清楚了)。
配置:
eclipse的php的server:
如下图如果没有就新建一个,点击new,输入Name,跟phpStorm是一样的,自己任意起得名字,但是下面的就需要注意了,是再hosts里面配置的那个网站的名字后面还要加上9090这个端口,点击finish就可以在列表中看到刚才配置的服务器了。
第三步
配置IDE的Debug选项
配置phpStrom的Debug选项:
如下所示,点击PHP然后点击Debug,在左边配置一下Debugport就行了,它的作用就是可以连的上php开发环境中所加载的那个Xdebug的扩展程序,两个程序之间通信在同一台机器上只知道端口就可以了(这是我自己认为的).
之后点击Xdebugproxy配置如下:
IDEkey填写自己的phpStorm版本,不写也应该没有问题的,Host填写127.0.0.1或者localhost,但是要注意这里填写的要跟在phpini中填写的是一致的,否则可能会出错的,至此配置已经完毕,然后你就可以去利用它的Debug功能了.
如果你再phpStorm种还是看不到变量,那么请看看是不是如下情况:
如果是的话,那么请按照图上面的指示点击右下角的那个黄色的按钮就行了,到此为止一切的配置都完成了。
配置eclipse的Debug选项:
在下图的界面点击Debug,从下拉列表中选择XDebug,点击右边的Configure
选择Xdebug,然后点击Configure
配置Debugport跟phpini里面配置的端口是一样的就可以了,到此eclipse的phpDebug也配置好了,你可以尽情的Debug了!
解释:
通过浏览器访问自己在IDE中所创建的网站的过程分析:
浏览器中输入自己所配置的地址,地址后面带有端口号,系统的查找是这样进行的,首先http的请求会被DNS服务器所解析,解析之后DNS首先会到本地去查找存不存在的这个网站,如果存在的话就去查找本地的web服务器,发现了本地web服务器之后呢就把请求直接的发送给本地的web服务器去,而因为本地的Apache服务器也开启着,所以它也在指定的端口监听着,等到有请求来之后它就会去处理这个请求然后把结果返回给浏览器。
Phpinfo.png
检测自己php应该下载哪一个xdebug的网页截图.png(如果您看不清楚的话还是建议您下载到自己电脑上看,这样可以把文档放大之后再看)
回复.png
Apache配置的新手手册.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- php 开发 环境 Debug 配置