在 VSCode 中使用 Xdebug 為 PHP 除錯


cover

文詳細介紹了如何安裝和配置 Xdebug,並將其與 VSCode 整合以實現高效的除錯流程,無論是初學者還是有經驗的開發者,都能因此提升開發效率。

安裝 Xdebug

Linux

Linux 作業系統中,可以使用各自發行版中的套件管理工具進行安裝,如 aptyum 等,以 Ubuntu 為例

sudo apt-get install php-xdebug

不同的發行版,使用不同的套件管理工具,Xdebug 的套件名稱也會有些許不同,詳細可查看官方文件

MacOS

MacOS 系統中,可以使用 PECL 安裝 Xdebug

此方法要求 PHP 透過 Homebrew 安裝

pecl install xdebug

如果遇到安裝問題可以參考官方文件 macos-issues

Windows

Windows 用戶建議可以使用,Xdebug 提供的 Installation Wizard 進行安裝,步驟如下

  1. 在 Powershell 中輸入 php -ini | clip,這行指令會複製你當前 PHP 的相關資訊
php -ini | clip
  1. 開啟 Installation Wizard,在文字區域中貼上 PHP 資訊 (此時可直接按 Ctrl + v)

wizard_textarea

  1. 滾到最下面按 Analyse my phpinfo() output 按鈕,它就會幫我們分析當前 PHP 適合的 Xdebug 版本

wizard_analyse_btn

  1. 頁面跳轉後,找到 Instructions 按照步驟進行配置,先點第一點的連接安裝 Xdebug

wizard_download_link

  1. 將下載的檔案重新命名為 php_xdebug.dll,並放入 PHP 安裝目錄下的 ext 資料夾中

如果不知道 PHP 安裝目錄,可以參考第三點的路徑,去掉 php.ini 就是 PHP 的安裝目錄了,在此目錄中,就可以找到 ext 資料夾
(以圖為範例就是 D:\php\8.3.10\ext)

wizard_php_dir

  1. 再來開啟 php.ini (直接使用第三點提供的路徑),滾到文件中最下面加入以下內容
[Xdebug]
zend_extension = xdebug

如此一來,便完成了 Xdebug 的安裝,在終端機輸入

php -v

檢查是否成功使用 Xdebug,如果成功就會顯示

xdebug_installed

在 VSCode 中使用

當前腳本的除錯

在 VSCode 中開啟 PHP 腳本後,就可以直接對此腳本進行除錯,選擇 Debug current Script in Console

debug_current_file

監聽任意腳本除錯

如果想讓 Xdebug 監聽任意的 PHP 腳本,需要進行額外配置

再次開啟 php.ini,並修改 Xdebug 配置為

[Xdebug]
zend_extension = xdebug
xdebug.mode=debug
xdebug.idekey=VSCODE
xdebug.start_with_request=yes
xdebug.client_host="127.0.0.1"
xdebug.client_port=9003

存檔後,選擇 Listen For Xdebug 進入 debug 監聽

debug_from_request

在監聽期間,只要執行 PHP 腳本,就會開始 debug

舉例來說,在終端機中輸入

php index.php

來執行 index.php,此時就會直接進入該檔案中的斷點

沒有 debug 監聽下,執行 php 腳本會出現警告
xdebug_timeout_warning

平時沒有使用 debug 監聽時,可以註解掉 php.ini 中的 xdebug.mode (最前面加入 ;)

;xdebug.mode=debug