告別 var_dump/echo 原始調試,擁抱現代 IDE 斷點調試:單步執行、變量監視、調用棧追踪、條件斷點。本文提供從 Xdebug 安裝、PHP.ini 配置、PhpStorm 設置、瀏覽器插件聯動到常見問題排查的完整指南。
phpinfo.php,訪問獲取完整輸出將 php_xdebug.dll 放入 ext 目錄,在 php.ini 末尾添加:
[xdebug] zend_extension="php_xdebug-2.3.3-5.6-vc11.dll" xdebug.remote_enable = On xdebug.remote_handler = "dbgp" xdebug.remote_host = "localhost" xdebug.remote_port = 9000 xdebug.idekey = "PHPSTORM" xdebug.remote_autostart = 1 ; 強制啟動遠程調試,避免需觸發 cookie ; 開發環境建議開啟 xdebug.show_error_trace = 1 xdebug.collect_params = 4 xdebug.collect_return = 1
重啟 Apache/Nginx+PHP-FPM 使配置生效。
PHPSTORM,需與 php.ini 一致)XDEBUG_SESSION=PHPSTORM cookieSettings → PHP → Servers
localhostlocalhost80 (或你的虛擬主機端口)/var/www/html)Settings → PHP → Debug
9000Settings → PHP → Debug → DBGp Proxy
PHPSTORMlocalhost80php -m | grep xdebug # 或 php -v # 輸出應包含:with Xdebug v2.x.x, Copyright (c) 2002-2016, by Derick Rethans
| 現象 | 可能原因 | 解決方案 |
|---|---|---|
| 斷點不生效/不停住 | Path Mapping 錯誤 | 檢查 Servers → Path mappings,本地路徑對應服務器絕對路徑 |
| 「Waiting for incoming connection」長時間無響應 | 端口衝突/防火牆 | 檢查 9000 端口佔用,關閉防火牆或放行 |
| 變量顯示亂碼 | 編碼不一致 | 確保 php.ini、PhpStorm、文件編碼均為 UTF-8 |
| CLI 腳本無法調試 | 缺少環境變量 | 運行配置中添加 PHP_IDE_CONFIG=serverName=localhost |
$user->id === 100)Alt+F8 任意執行 PHP 代碼配置一次,受益終身。斷點調試是提升開發效率、定位疑難雜癥的核心技能,值得每位 PHPer 精通。