zoukankan      html  css  js  c++  java
  • Vim+XDebug调试PHP

    1安装PHP调试环境

    安装了php-devel以后就会有phpize和php-config这两个脚本

    yum installphp-devel.x86_64


    2安装Xdebug

    2.1安装

    用yum安装可能会失败,用pecl安装成功。

    #yum installphp-pecl-xdebug.x86_64

    pecl installxdebug

    2.2修改权限

    分配共享库xdebug.so执行权限

    chmod +x /usr/lib64/php/modules/xdebug.so

    2.3修改PHP配置

    在/etc/php.d下新建配置文件xdebug.ini,加入内容如下:

    ===============================================================================

    zend_extension =/usr/lib64/php/modules/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.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

    ===============================================================================

    标红的是关键内容,配置了xdebug.so的位置,并使xdebug开启远程调试模式。remote_port一项与后面将要讲到的Vim配置或者IDE配置一定要一致。

    2.4验证安装成功

    访问测试页http://localhost/test.php,查看phpinfo()函数的输出中是否包含xdebug。



    3安装Vim调试插件

    3.1下载安装

    Vim支持Xdebug的插件在这:

    http://www.vim.org/scripts/script.php?script_id=1929

    解压后,拷贝插件中的plugin文件夹到到.vim下。

             mkdir.vim

             cp–r debugger/* .vim/

    3.2修改默认端口

    在/home/user下,新建.vimrc文件,加入配置如下:

    let g:debuggerPort = 9010

    注意:要与xdebug.ini中端口配置一致。


    4调试示例

    以/export/data/discuz/test.php为例(/export/data/discuz是我的Discuz!X根目录)。

    test.php内容如下:

    ===============================================================================

    <?php

           phpinfo();

           $name = "cdai";

           print("hello {$name}");

    ?>

    ===============================================================================

    用vim打开test.php,切换到print("hello {$name}"); 这一行,输入:Bp命令加上断点。

    F5开始监听,此时需要在五秒钟内用浏览器访问test.php页。

             http://localhost/test.php?XDEBUG_SESSION_START=1

    注意:Url中一定要加上XDEBUG_SESSION_START=1参数开启调试。

    输入Url后,调用就会停在断点那一行了。截图如下:


    附:调试基本操作

    [ Function Keys ]

     

     

    <F1>

    resize

    调整窗口大小

    <F2>

    step into

     

    <F3>

    step over

     

    <F4>

    step out

     

    <F5>

    run

     

    <F6>

    quit debugging

     

    <F11>

    get all context

    获取所有变量内容

    <F12>

    get property at cursor

    获取当前光标变量

    [ Normal Mode ]

     

     

    ,e

    eval

     

    [ Command Mode ]

     

     

    :Bp

    toggle breakpoint

     

    :Up

    stack up

     

    :DN

    stack down

     

    参考文章

    1利用Vim+XDebug在Linux上调试PHP

    http://lds2008.blogbus.com/logs/115127244.html

    2 Vim+XDebug调试PHP

    http://xiaobin.net/201007/using-vim-and-xdebug-to-debug-php-code/

  • 相关阅读:
    Ubuntu下VSFTPD(五)(匿名FTP设置方法)
    Ubuntu下VSFTPD(六)(常见FTP命令及其功能) (
    ubuntu13.04装配oracle11gR2
    oracle之报错:ORA-00054: 资源正忙,要求指定 NOWAIT_数据库的几种锁
    oracle建索引的可选项
    Oracle自定义函数
    C# WinForm开发系列
    为C#自定义控件添加自定义事件
    python 爬虫抓取心得
    C# 正则表达式学习
  • 原文地址:https://www.cnblogs.com/xiaomaohai/p/6157748.html
Copyright © 2011-2022 走看看