建立PHP偵錯環境(透過Xdebug)

前言

在 Windows 偵錯 PHP,有很多種方式,本文會以 MAMP 為例,示範如何建立偵錯環境。

適用環境

安裝 MAMP

安裝 MAMP 方式並不複雜,只要去官方網站 下載安裝檔,根據指示 Next > 到底就好。

安裝 VS Code

安裝 Visual Studio Code (簡稱 VS Code) 並不複雜 ,只要去官方網站 下載安裝檔,根據指示 下一步 > 到底就好。

安裝 VS Code 外掛

開啟 VS Code,在左方工具列切到 Extensions(延伸模組),搜尋 PHP Debug,並安裝。

如果習慣用中文介面,可以安裝另一個外掛 Chinese (Traditional) Language Pack for Visual Studio Code

安裝完畢後,可能會出現 In order to use VS Code in Chinese Traditional, VS Code needs to restart.,這時候就點選 Restart 重新啟動 VS Code。

檢查 PHP 環境

MAMP 安裝好之後,可以用瀏覽器開啟 http://localhost/MAMP/index.php?language=English&page=phpinfo 查看 PHP 的版本資訊。

或是手動建立一個簡單的 info.php 放到 C:\MAMP\htdocs\ ,並在裡面放 phpinfo (範例程式如下),即可透過 http://localhost/info.php 看到相同的資訊。

<!php


phpinfo();

這時候可以注意一些關鍵資訊:

  • PHP Version 8.0.1
  • Compiler Visual C++ 2019
  • Architecture x64
  • Thread Safety enabled

有了這些資訊,可以到Xdebug官網下載,但如果你是用 MAMP,裡面就很貼心的包含 php_xdebug.dll,放置的位置在 C:\MAMP\bin\php\php8.0.1\ext\php_xdebug.dll

如果去Xdebug官網下載,Version、Architecture、Thread Safety這些都要相符。

調整 PHP 設定檔

有了 Xdebug 的 dll 檔,就可以開始設定 php.ini,路徑在 C:\MAMP\conf\php8.0.1\php.ini

在設定檔裡面需要加入以下內容。

zend_extension="C:\MAMP\bin\php\php8.0.1\php.exe"


xdebug.mode = debug
xdebug.start_with_request = yes

重新啟動伺服器服務

修改設定檔之後,需要重啟服務才會生效。

  • 在 MAMP 點選 Stop Servers
  • 接著在點選 Start Servers

以 VS Code 開始偵錯

開始偵錯前,需要以 VS Code 開啟網站資料夾,要特別注意的是,只開啟單一檔案是沒辦法偵錯的,要開啟整個資料夾。 現在個別檔案,也可進入偵錯模式。

接下來在左方工具列切到 Run and Debug (執行與偵錯),並點選執行並偵錯,在程式碼用滑鼠左鍵,選擇中斷點,即可偵錯。