在 Docker 容器中安裝與設定 Xdebug:
首先,在安裝與設定 Xdebug 前,先把 Xdebug 需要使用的 Port 打開,指令如下:
# 假設 Xdebug 需要 port 9000,則加入 -p 9000:9000
docker run -d \
-p 80:80 \
-p 9000:9000 \
...
接著我們在 Docker 容器中安裝 Xdebug,指令如下:
# 進入 Docker 容器
docker exec -it <your-container-name> bash
# 安裝 Xdebug
pecl install xdebug
接著在 php.ini (如:/usr/local/etc/php/php.ini) 檔案最後加入 Xdebug 相關設定,範例如下:
# 省略部份內容 ...
zend_extension=/usr/local/lib/php/extensions/no-debug-non-zts-20131226/xdebug.so
xdebug.remote_enable=1
# 將你的 Docker 容器 IP 加入,如下:
xdebug.remote_host=192.168.99.100
xdebug.remote_connect_back=1
xdebug.remote_port=9000
xdebug.remote_handler=dbgp
xdebug.remote_mode=req
xdebug.remote_autostart=true
為了確保 Xdebug 會正常運作,請重啟此容器。
安裝與設定 Vdebug:
為了要在 Vim 中 Debug,我們需要安裝 Vdebug 套件。而安裝 Vim 的套件有很多方式,使用 Vundle 來替你管理 Vim 套件是很方便的。接下來將透過 Vundle 來安裝 Vdebug,首先在 Vim 設定檔中 ( /etc/vimrc 或 ~/.vimrc ) 加入套件:
" 部分內容省略... "
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
Plugin 'gmarik/Vundle.vim'
" 加入 Vdebug 套件 "
Plugin 'joonty/vdebug'
call vundle#end()
filetype plugin indent on
" 部分內容省略... "
" 在 Vim 設定檔最後加入 Vdebug 設定,如下: "
let g:vdebug_options = {
\ 'break_on_open': 1,
\ 'path_maps': {'/path/to/app/in/docker': '/path/to/app/in/local'},
\ 'port': '9000',
\ 'watch_window_style': 'compact'
\ }
接著在 Vim 中執行安裝套件指令,等待最下方顯示 Done 即完成安裝。:PluginInstall
使用 Vdebug:
於開啟檔案的視窗中,透過快捷鍵 F10 設定中斷點 (Breakpoint),設定好後按下 F5 開啟一個 Debug Session,接著載入要 Debug 的頁面,於 Vim 中你就會看到 Vdebug 自動開啟 4 個視窗。你可以從這些視窗分別看到相關的參數值。
Environment :
・ Mac OS X
Reference :
・ Vdebug
・ Xdebug