文档章节

vim+XDebug调试PHP

o
 osc_4nmshwhm
发布于 2018/08/07 00:37
字数 527
阅读 7
收藏 0

钉钉、微博极速扩容黑科技,点击观看阿里云弹性计算年度发布会!>>>

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(或直接在php.ini 追加),加入内容如下:

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

[xdebug]
xdebug.defalut_enable=on
zend_extension = /home/rong/php-5.5.16/lib/php/extensions/no-debug-non-zts-20121212/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文件夹到到xxx/vim/plugins/下。

         cp–r debugger/* xxx/vim/plugins/

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

 

o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。

暂无文章

OpenCV开发笔记(六十七):红胖子8分钟带你深入了解特征点暴力匹配(图文并茂+浅显易懂+程序源码)

若该文为原创文章,未经允许不得转载 原博主博客地址:https://blog.csdn.net/qq21497936 原博主博客导航:https://blog.csdn.net/qq21497936/article/details/102478062 本文章博客地址:h...

红模仿_红胖子
48分钟前
24
0
将向量附加到向量[重复] - Appending a vector to a vector [duplicate]

问题: This question already has an answer here: 这个问题已经在这里有了答案: Concatenating two std::vectors 22 answers 连接两个std :: vectors 22个答案 Assuming I have 2 standa......

javail
50分钟前
19
0
获得所有文件夹的大小

有两个工具 https://www.getfoldersize.com/ http://www.uderzo.it/main_products/space_sniffer/index.html...

ethanleellj
今天
18
0
interactjs 拖拽 缩放 的交互库

只提供事件钩子和数据, 并不会直接修改dom, 需要自己手动根据数据修改样式 拖拽并记录移动的位置 <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</t......

阿豪boy
今天
19
0
为什么在iOS7中,UITableView顶部的UITableViewStyleGrouped样式具有额外的填充

问题: Starting in iOS7, there is additional space at the top of my UITableView 's which have a style UITableViewStyleGrouped . 从iOS7开始,我的UITableView顶部还有一个额外的空间......

fyin1314
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部