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(或直接在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