首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

Xdebug 參數配置詳解:從安裝到性能分析優化

     編輯:PHP 綜合知識

Xdebug 是 PHP 開發調試利器,正確配置參數能最大化其價值。本文系統整理核心配置項、堆棧跟蹤、性能分析、遠程調試等關鍵設置。

安裝方式

預編譯模塊 (Windows)

; php.ini
zend_extension_ts = "C:/php/ext/php_xdebug.dll"
; 或 PHP 5.3+ 非線程安全
zend_extension = "C:/php/ext/php_xdebug.dll"

PECL 編譯安裝 (Linux/Mac)

pecl install xdebug
; 自動生成配置提示,按提示添加到 php.ini

基礎特性配置

參數類型默認說明
xdebug.default_enableboolOn錯誤時自動顯示堆棧跟蹤,建議開啟
xdebug.max_nesting_levelint256最大嵌套層級,防無限遞歸,舊版默認100
xdebug.cli_colorint0CLI 彩色輸出:1=有TTY時,2=強制
xdebug.force_display_errorsboolOff強制顯示錯誤,忽略 php.ini display_errors
xdebug.force_error_reportingint0強制錯誤報告級別

堆棧跟蹤配置

參數類型默認說明
xdebug.dump_globalsboolOn是否顯示超全局變量($_GET,$_POST 等)
xdebug.dump_onceboolOn只在首次錯誤顯示超全局變量
xdebug.dump_undefinedboolOff顯示未定義的超全局變量值
xdebug.show_exception_traceboolOff捕獲異常時也顯示堆棧跟蹤
xdebug.show_local_varsboolOff顯示局部變量(信息量大,慎開)
xdebug.show_mem_deltaboolOff顯示內存增量
xdebug.collect_paramsint0函數參數收集級別 0-4
xdebug.collect_returnboolOff收集函數返回值
xdebug.collect_varsboolOff收集變量作用域信息
xdebug.dump.*string指定顯示的超全局變量,如 xdebug.dump.SERVER=REQUEST_METHOD,REQUEST_URI

性能分析

參數類型默認說明
xdebug.profiler_enableboolOff啟用性能分析(生成 cachegrind 文件)
xdebug.profiler_enable_triggerboolOff通過 GET/POST/COOKIE 觸發(如 XDEBUG_PROFILE)
xdebug.profiler_output_dirstring/tmp輸出目錄
xdebug.profiler_output_namestringcachegrind.out.%p輸出文件名模式(見下文)

profiler_output_name 格式符號

符號含義示例
%p進程 PIDcachegrind.out.1234
%s腳本文件名cachegrind.out._var_www_index_php
%tUnix 時間戳(秒)cachegrind.out.1699900000
%u微秒時間戳cachegrind.out.1699900000_123456
%H$_SERVER['HTTP_HOST']cachegrind.out.example.com
%R$_SERVER['REQUEST_URI']cachegrind.out._api_user_login
%cCWD CRC32cachegrind.out.1234567890
%%% 字符cachegrind.out.%

推薦組合:cachegrind.out.%H_%R_%t 便於多站點、多接口、時間序列分析。

遠程調試

參數類型默認說明
xdebug.remote_enableboolOff啟用遠程調試
xdebug.remote_hoststringlocalhostIDE 所在主機 IP
xdebug.remote_portint9003調試端口 (Xdebug 3: 9003, Xdebug 2: 9000)
xdebug.remote_autostartboolOff自動嘗試連接 IDE
xdebug.remote_connect_backboolOff自動連接請求來源 IP(不安全,慎用)
xdebug.idekeystringIDE Key,如 PHPSTORM
xdebug.remote_logstring調試連接日誌路徑

開發環境推薦配置模板

[xdebug]
zend_extension = "php_xdebug.dll"
xdebug.mode = debug,develop,trace,profile
xdebug.default_enable = 1
xdebug.max_nesting_level = 512
xdebug.cli_color = 2
xdebug.show_error_trace = 1
xdebug.show_local_vars = 0
xdebug.collect_params = 2
xdebug.collect_return = 1
xdebug.dump.GET = *
xdebug.dump.POST = *
xdebug.dump.SERVER = REQUEST_METHOD,REQUEST_URI,HTTP_USER_AGENT
xdebug.profiler_enable_trigger = 1
xdebug.profiler_output_dir = "C:/xdebug_profiler"
xdebug.profiler_output_name = "cachegrind.out.%H_%R_%t"
xdebug.remote_enable = 1
xdebug.remote_host = "127.0.0.1"
xdebug.remote_port = 9003
xdebug.idekey = "PHPSTORM"
xdebug.remote_log = "C:/xdebug_remote.log"

注意:Xdebug 3 統一使用 xdebug.mode 替代多個舊參數,配置更簡潔。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved