Visual Studio Code 調試 PHP


Visual Studio Code 調試 PHP

2018/12/4 更新
Nginx + php-cgi.exe 下與 Visual Studio Code 配合調試

必需環境
  1. Visual Stduio Code
  2. PHP
  3. XDebug Application Library(dll)
  4. Web服務器 IIS(參考環境 Win10)
第一步基本道理

Web服務器用來運行Http請求,PHP接收IIS調用運行PHP請求,XDebug截獲運行,傳遞到VS Code——以上為個人理解

第二步安裝
  1. Visual Studio Code默認安裝即可,安裝插件PHP Debug
  2. PHP默認安裝即可
  3. 下載 XDebug,下載時注意版本的選擇,下載后是一個 DLL 文件
  4. IIS服務器默認安裝運行即可
第三步配置
  1. 確認 Visual Studio Code 安裝並啟用了PHP Debug插件
  2. 開啟PHP本身的ini配置文件,並在Dynamic Extension塊中新增表示 XDebug 的塊,內容為:
[xdebug]
zend_extension = "php_xdebug-2.7.0beta1-7.2-vc15-nts-x86_64.dll"
xdebug.remote_enable = On
xdebug.remote_autostart = On

zend_extension 是下載的 XDebug 動態連接文件的地址,其值可以是相對地址或絕對地址。此處默認將dll文件放到了PHP安裝目錄下的 ext 路徑下,因此地址是相對路徑。

  1. XDebug本身沒有可配置的地方
  2. IIS服務器配置好和PHP的關系即可
第四步試用
  1. 對要調試的PHP文件打上斷點

  2. 點擊 VS Code 左側工具欄上的 Debug|調試 按鈕(第四個),在頂部選擇框中選擇 Listen for XDebug(或新增一個配置)

  3. 選擇后可以看到其配置文件,通常無需更改其內容

  4. F5 啟動調試,按下后 VS Code 界面可以看到頂部多了一個調試工具欄

  5. 在瀏覽器中運行要調試的地址,配置無誤的話將在運行到斷點時切換回 VS Code,此時可以看到程序停在斷點處,可以使用 F10F11快捷鍵向下繼續運行,鼠標懸停在變量處也可以查看到變量值

2018/12/4 更新

Nginx 和 php-cgi 的配合

當不使用 IIS 作為服務器時,可以使用這兩個家伙的組合。Nginx 的啟動使用快捷方式,無需參數,如下

d:\applications\nginx\nginx.exe

檢查 PHP 要使用的配置文件中,有關 XDebug 的配置與即將運行的 PHP 是否一致,例如配置文件中如果 xdebug.remote_port = 8000 而 php 監聽的是默認 9000 端口,就會無法截獲調試信息。當前 PHP 配置文件使用“指定的php-dev.ini”,端口默認9000,在Windowns環境下寫了一個bat用來啟動和關閉,如下

@echo off
echo Starting PHP FastCGI...
d:\applications\php\php-cgi.exe -b 127.0.0.1:9000 -c d:\applications\php\php-dev.ini

啟動后 Nginx 沒有界面,在后台運行,PHP有一個Console窗口不可關閉。檢查 VS Code 中配置是否正確,點擊左側工具欄 Debug 按鈕,選擇調試界面中要使用的配置文件,可以點擊 齒輪 按鈕查看配置文件中配置是否符合當前環境(如第四步試用中內容)。如配置無誤,如 第四步試用 中描述,即可截獲調試內容。

小心!
  1. 核對 PHP 的配置文件,默認端口號是否改變,如果 PHP 自身運行端口改變,調試信息需要跟着變,建議保留默認的 9000
  2. 核對 PHP 配置文件中 XDebug 部分,如果特殊需要,只填寫最少的 zend_extensionxdebug_remote_enablexdebug_remote_autostart 三個就行,這樣未設置的部分就會按照默認進行,如會監聽默認9000端口。今天就踩了個小坑,配合 PHPSTORM 調試時,XDebug 部分修改了端口為 9009,導致運行時 VS Code 截獲不到調試信息。修改為只剩三個配置項時,成功。
  3. 冷靜細致,php 配置文件、配置文件中 XDebug 部分、VS Code 調試配置(launch.json)三大位的內容要能配合得上,尤其是端口號,才能成功。
  4. 發現,網上 N 多文章說的瀏覽器需要安裝插件似乎不是“必需”的,調試時使用 QQ 瀏覽器,未安裝或禁用了 Xdebug Helper 后一樣可以。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM