PHP Debug使用 Notepad++ 和 Xdebug
最近工作上需要瞭解一套使用PHP Framework開發的系統,但程式碼多到看不過來,不知如何切入,想以debug的方式找系統執行上的蛛絲馬跡,也對後續開發有所幫助。
實際找了一下發現還滿多方案,因為懶的再安裝其他東西,最後選擇比較適合目前開發環境(windows)的方式:Notepad++ 搭配 Xdebug,雖然Notepad++的DBGP Plugin最後更新的版本感覺有點舊(2012),但目前看起來還堪用。
找出適合開發環境的版本並下載Xdebug
提醒:除了需要挑選與PHP版本一致外,也需確認PHP是TS(Thread-Safety)還是NTS(None-Thread Safe),可從phpinfo的PHP Extension Build這一項得知。
下載之後將dll放至PHP的ext目錄下,並在php.ini加入Xdebug相關設定(參考設定如下),設定完成後重新啟動Apache服務。
安裝Notepad++的外掛工具DBGP Plugin
DBGP設定config:
Remote Server IP:虛擬主機的網域
IDE KEY: 從phpinfo查找xdebug.idekey值
Remote Path和Local Path:設目標網站的根目錄路徑
Refresh local context on erery step和Refresh global context on every step都勾選
提醒:需注意Notepad++是64位元還是32位元的版本,由於dbgpPlugin.dll是32位元的版本,不一致的話會出現錯誤。
參考資料:
實際找了一下發現還滿多方案,因為懶的再安裝其他東西,最後選擇比較適合目前開發環境(windows)的方式:Notepad++ 搭配 Xdebug,雖然Notepad++的DBGP Plugin最後更新的版本感覺有點舊(2012),但目前看起來還堪用。
找出適合開發環境的版本並下載Xdebug
提醒:除了需要挑選與PHP版本一致外,也需確認PHP是TS(Thread-Safety)還是NTS(None-Thread Safe),可從phpinfo的PHP Extension Build這一項得知。
下載之後將dll放至PHP的ext目錄下,並在php.ini加入Xdebug相關設定(參考設定如下),設定完成後重新啟動Apache服務。
[XDebug] ;指定dll所在位置 zend_extension="E:\AppServ\php7\ext\php_xdebug-2.9.2-7.3-vc15-x86_64.dll" xdebug.remote_enable=1 xdebug.remote_host=127.0.0.1 xdebug.remote_port=9000 xdebug.remote_handler=dbgp xdebug.collect_vars = On xdebug.collect_return = On xdebug.collect_params = On xdebug.profiler_enable=1 ;視情況自行調整路徑 xdebug.profiler_output_dir="E:\AppServ\www\xdebug" xdebug.remote_log="E:\AppServ\www\xdebug\xdebug.log" xdebug.profiler_output_dir ="E:\AppServ\www\xdebug"
安裝Notepad++的外掛工具DBGP Plugin
下載後將dbgpPlugin.dll複製到Notepad++的 plugins資料內,重新啟動Notepad++就可以看到DBGP外掛工具。
DBGP設定config:
Remote Server IP:虛擬主機的網域
IDE KEY: 從phpinfo查找xdebug.idekey值
Remote Path和Local Path:設目標網站的根目錄路徑
Refresh local context on erery step和Refresh global context on every step都勾選
提醒:需注意Notepad++是64位元還是32位元的版本,由於dbgpPlugin.dll是32位元的版本,不一致的話會出現錯誤。
參考資料:
- https://www.arthurtoday.com/2012/10/using-notepad-plus-plus-and-xdebug-in-winodws.html
- https://webcheatsheet.com/php/debug_php_with_xdebug.php
留言
張貼留言