zoukankan      html  css  js  c++  java
  • vim+xdebug调试PHP

    一、安装xdebug

    1、编译安装xdebug,也可以使用pecl install xdebug

    wget http://xdebug.org/files/xdebug-2.3.2.tgz
    tar -zxvf  xdebug-2.3.2.tgz
    cd  xdebug-2.3.2
    phpize
    ./configure --enable-xdebug --with-php-config=/data/php/bin/php-config
    make && make install
    

    这一步会 生成xdebug.so文件

    2、添加配置文件

    zend_extension =xdebug.so
    zend_debugger.allow_hosts=127.0.0.1
    zend_debugger.expose_remotely=always
    zend_debugger.httpd_uid=-1
    xdebug.auto_trace = on
    xdebug.auto_profile = on
    xdebug.collect_params = on
    xdebug.collect_return = on
    xdebug.profiler_enable = on
    xdebug.trace_output_dir = /tmp
    xdebug.profiler_output_dir=/tmp/xdebug
    xdebug.trace_output_name = trace.%c.%p
    
    xdebug.profiler_output_name=cachegrind.out.%s
    xdebug.dump.GET = *
    xdebug.dump.POST = *
    xdebug.dump.COOKIE = *
    xdebug.dump.SESSION = *
    xdebug.var_display_max_data = 4056
    xdebug.var_display_max_depth = 5
    
    xdebug.remote_enable=on       
    xdebug.remote_handler=dbgp
    xdebug.remote_host=127.0.0.1
    xdebug.remote_port=9010
    xdebug.remote_autostart=1
    

     3、验证

    可以通过phpinfo查看

    二、安装vim插件

    1、下载

    wget http://www.vim.org/scripts/download_script.php?src_id=7285
    
    下载完毕后,将解压将文件放入$HOME/.vim/plugin (mkdir ~/.vim/plugin)
    
    然后访问,http://localhost/blog/index.php?XDEBUG_SESSION_START=1
    
    新建.vimrc文件,加入配置如下:
    
    let g:debuggerMaxDepth = 5
    
    let g:debuggerPort = 9010
    
    注意:要与xdebug.ini中端口配置一致。
    

     2、调试

    用vim打开此文件,用可 :Bp 设置断点,然后安 F5 键, 你将会看见waiting for a new connection on port 9000 for 5 seconds… ,此时在5秒内刷新刚才那个页面,即可在vim中看到调试界面。

    如果出现 <type 'exceptions.AttributeError'>, AttributeError("DbgProtocol instance has no attribute 'stop'", 则说明没有配置成功,

    1、xdebug.remote_* 没有配置好

    2、要么是url尾部上没有加入 ?XDEBUG_SESSION_START=1

    3、要么是你没有在5秒内刷新页面

    注意事项

    实际过程中,如果你发现安装完成仍然无法正常的调试PHP,极可能是下面的原因造成的:

    一、Xdebug加载不成功

    可能是由于PHP是”Debug Build”,那么php.ini里不应当用“zend_extension=/<extension_dir>/xdebug.so”,而应该用“zend_extension_debug=/<extension_dir>/xdebug.so”;

    其它方面就是要注意xdebug.so路径是否正确,Apache服务或者是fastcgi服务有没有重启。

    二、 调试会话已经过期

    XDebug 通过一个Cookie来判断你是否进行调试对话,请注意这个Cookie的过期时间是1个小时。

    三、SeLinux

    修改配置文件/etc/selinux/config,将”SELINUX=”那一句配置改成”SELINUX=disabled”,然后重启机器。

  • 相关阅读:
    Android Fragment (二) 实例1
    Android Fragment (一)
    Android --差缺补漏之 Intent&putExtra()
    BAT脚本如何自动执行 adb shell 以后的命令
    Eclipse的快捷键
    adb server is out of date. killing...
    当有多个设备online时,命令行窗口通过adb连接指定设备方法
    我的三星手机
    android.database.cursorindexoutofboundsexception错误解决 及获取某行某列信息
    Android 中Attr 和TypedArray的用法
  • 原文地址:https://www.cnblogs.com/chenpingzhao/p/4581948.html
Copyright © 2011-2022 走看看