1. 程式人生 > >vim+XDebug調試PHP

vim+XDebug調試PHP

org ali 兩個 discuz 默認端口 get 是我 key cda

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

vim+XDebug調試PHP