官方文档
joonty/vdebug: Multi-language DBGP debugger client for Vim (PHP, Python, Perl, Ruby, etc.)
https://github.com/joonty/vdebug
官方文档
Xdebug: Documentation
https://xdebug.org/docs/remote
Vim+XDebug调试PHP - 西代零零发 - 博客频道 - CSDN.NET
http://blog.csdn.net/dc_726/article/details/8809696
vim安装vundle插件管理插件 - 我是guyue,guyue就是我O(∩_∩)O - 博客频道 - CSDN.NET
http://blog.csdn.net/guyue35/article/details/53967432
PHPStorm设置xdebug工具调试php(使用浏览器或不使用浏览器两种方法) - 我是guyue,guyue就是我O(∩_∩)O - 博客频道 - CSDN.NET
http://blog.csdn.net/guyue35/article/details/53967540 (涉及xdebug调试原理)
1安装PHP调试环境
安装了PHP-devel以后就会有phpize和php-config这两个脚本
yum installphp-devel.x86_64
windows上参考
Windows7下的php环境配置教程_php技巧_脚本之家
http://www.jb51.NET/article/61507.htm
2安装Xdebug
2.1安装
参照官方文档:
Xdebug: Documentation https://xdebug.org/docs/remote
或
PHPStorm设置xdebug工具调试php(使用浏览器或不使用浏览器两种方法) - 我是guyue,guyue就是我O(∩_∩)O - 博客频道 - CSDN.NET http://blog.csdn.net/guyue35/article/details/53967540
用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的插件在这:
官方文档joonty/vdebug: Multi-language DBGP debugger client for Vim (PHP, Python, Perl, Ruby, etc.)
https://github.com/joonty/vdebug
涉及到vim的插件管理器vundle的使用:
vim安装vundle插件管理插件 - 我是guyue,guyue就是我O(∩_∩)O - 博客频道 - CSDN.NET
http://blog.csdn.net/guyue35/article/details/53967432
或者直接下载xdebug的vim脚本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开始监听,此时需要在20秒钟内用浏览器访问test.php页。
http://localhost/test.php?XDEBUG_SESSION_START=1
注意:Url中一定要加上XDEBUG_SESSION_START=1参数开启调试。
或者
手动cmd或终端下运行php test.php, 不过前提是需要设置系统环境
XDEBUG_CONFIG="idekey=phpstorm remote_host=localhost profiler_enable=1"
windows上在"电脑属性"中加入, linux上在~/.profile文件中加入, 记得source命令刷新.profile文件哦, 或者export命令临时导入环境变量.
输入Url后,调用就会停在断点那一行了。截图如下:
注意:
最后附:vdubug调试基本操作
[ 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/