设为首页 收藏本站
查看: 814|回复: 0

[经验分享] Vim XDebug调试PHP php远程调试

[复制链接]

尚未签到

发表于 2015-8-29 09:43:43 | 显示全部楼层 |阅读模式
  xdebug 配置
  xdebug 安装
  
  原文地址:http://xiaobin.net/201007/using-vim-and-xdebug-to-debug-php-code/
  原理上,这种调试方式主要依靠Vim的插件“remote PHP debugger”来实现,该插件实现了一个DBGP服务端。调试的时候Xdebug将会与服务端建立一个连接进行通信,接收服务端的调试指令并返回调试结果。
安装和配置
  XDebug
  安装:
  ubuntu 下直接 apt-get install php5-xdebug  安装
  到/usr/lib/php5/20090626+lfs  即可看到xdebug.so 可拷贝到你指定的模块地址
  
  配置:(php.ini文件)

  • 加载Xdebug扩展:
      zend_extension=/<extension_dir>/xdebug.so      #<extension_dir>为你拷贝到的目录     

  • 配置xdebug开启dbgp远程调试
      xdebug.remote_enable=on
    xdebug.remote_handler=dbgp

  Vim的Debugger插件
  这个简单,只需要将插件下载回来,解压放到~/.vim/plugin目录

调试过程
  用Vim打开要调试的PHP文件,按<F5>进入调试状态。请移步《PHP调试指南》,上面写的详细一些。
注意事项
  实际过程中,如果你发现安装完成仍然无法正常的调试PHP,极可能是下面的原因造成的:
  一、Xdebug加载不成功
  可以通过phpinfo或者是”php -m”来确认Xdebug是不是加载成功。加载不成功的原因可能是由于PHP是”Debug Build”(可以通过phpinfo确认),那么php.ini里不应当用“zend_extension=/<extension_dir>/xdebug.so”,而应该用“zend_extension_debug=/<extension_dir>/xdebug.so”;
  其它方面就是要注意xdebug.so路径是否正确,Apache服务或者是fastcgi服务有没有重启。
  phpinfo 显示显示如下,表示正常
DSC0000.png
  二、 调试会话已经过期
  XDebug 通过一个Cookie来判断你是否进行调试对话,请注意这个Cookie的过期时间是1个小时。某天你埋头工作的时候发现Vim + Xdebug刚刚还work,怎么一下又不work了,那多半是由于这个会话已经过期了。
  只要在URL后面带上参数 “XDEBUG_SESSION_START=1&Prime;,调试会话就会延续1小时。
  访问路径:
  For clean URLs use: http://example.com/admin/feature?XDEBUG_SESSION_START=1
  Otherwise use: http://example.com?q=admin/feature&XDEBUG_SESSION_START=1
  
  四、更改调试等待时间 (默认5秒钟)
DSC0001.png
  
  编辑debuger.py
  
DSC0002.png
DSC0003.png
DSC0004.png
  
   2. press <F5> and browse php file within 5 seconds. :-)
    If you did setup correctly, server will make connection to vim.
    [ you can change port by editing last line of debugger.vim ]
    all the windows currently opened will be closed and debugger interface will be shown.
3. in debuggin mode
<F1> : resizing windows
<F2> : step into
<F3> : step over
<F4> : step out
<F6> : stop debugging
<F11> : shows all variables
<F12> : shows variable on current cursor
,e : evalute expression and display result. cursor is automatically move to watch window. type line and just press enter.
command line command)
:Bp    : toggle breakpoint on current line
:Up    : goto upper level of stack
:Dn    : goto lower level of stack
4. press <F6> to stop debugging.
    then, debugger windows will be closed and windows will be restored.
    ( holy :mksession feature )

参考和延伸阅读

  • Using vim and xdebug DBGp for debugging Drupal (or any PHP application)
  • remote PHP debugger
  
  首先下载xdebug2.1.0,在官方首页下载源代码,下载回来的文件名是:xdebug-2.1.0.tgz
xdebug的版本需与您的php版本相对应,由于偶的php是5.3.2,所以下载xdebug2.1.0
    



Xml代码 http://shiq-stone.iteye.com/javascripts/syntaxhighlighter/clipboard_new.swf DSC0005.png

  • cd /your/download/path  
  • tar zxvf xdebug-2.1.0.tgz  
  • cd xdebug-2.1.0  
  
  运行phpize



Xml代码 http://shiq-stone.iteye.com/javascripts/syntaxhighlighter/clipboard_new.swf

  • phpize  
  
       如果没有将phpize加入$PATH,则应该使用全路径
  
  这里不需要--prefix,编译好之后直接把modules里的xdebug.so文件复制走即可。



Xml代码 http://shiq-stone.iteye.com/javascripts/syntaxhighlighter/clipboard_new.swf

  • ./configure --enable-xdebug   
  • --with-php-config=/usr/local/php/bin/php-config  
  
  



Xml代码 http://shiq-stone.iteye.com/javascripts/syntaxhighlighter/clipboard_new.swf

  • make  
  
  
  把xdebug.so复制到了php安装目录,装php的时候指定了安装目录,所以复制到/usr/local/php/xdebug里。随便你复制到哪都行,只要你清楚知道。。。需要改下面一条命令的路径为你自己的。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-105783-1-1.html 上篇帖子: PHP Warning: date() [function.date]: It is not safe to rely on the system's time 下篇帖子: PHP 设置:timezone、error_log
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表