首先到http://xdebug.org/download.php上面去下載xdebug,如果不知道下載哪一個,那麼到http://xdebug.org/wizard.php上面,將你跑PHPinfo時顯示出來網頁的源代碼,copy到上面網址顯示出來的文本框中,點擊“analyse
my phpinfo() output”按鈕,即可以輸出來你系統上面裝的php的信息,比如我的顯示出來的是這樣
Summary
Xdebug installed: noServer API: Apache 2.0 HandlerWindows: yes - Compiler: MS VC9 - Architecture: x86Zend Server: noPHP Version: 5.4.24Zend API nr: 220100525PHP API nr: 20100525Debug Build: noThread Safe Build: yesConfiguration File Path: C:\WindowsConfiguration File: D:\php-5.4.24-Win32-VC9-x86\php.iniExtensions directory: D:\php-5.4.24-Win32-VC9-x86\ext
Instructions
- Download php_xdebug-2.2.3-5.4-vc9.dll
- Move the downloaded file to D:\php-5.4.24-Win32-VC9-x86\ext
- Edit
D:\php-5.4.24-Win32-VC9-x86\php.ini
and add the line
zend_extension = D:\php-5.4.24-Win32-VC9-x86\ext\php_xdebug-2.2.3-5.4-vc9.dll
- Restart the webserver
那麼即可以按照這個步驟進行配置。除此之外,還可以在php.ini配置中加入如下一些擴展信息
zend_extension="D:\php\ext\php_xdebug.dll"
xdebug.profiler_output_dir="D:\php53\xdebug"
xdebug.profiler_enable=On
xdebug.profiler_enable_trigger=1
xdebug.default_enable=On
xdebug.show_exception_trace=On
xdebug.show_local_vars=1
xdebug.max_nesting_level=50
xdebug.var_display_max_depth=6
xdebug.dump_once=On
xdebug.dump_globals=On
xdebug.dump_undefined=On
xdebug.dump.REQUEST=*
xdebug.dump.SERVER=REQUEST_METHOD,REQUEST_URI,HTTP_USER_AGENT
xdebug.trace_output_dir="D:\php53\xdebug"
各配置的一些說明信息如下
xdebug.default_enable
類型:布爾型 默認值:On
如果這項設置為On,堆棧跟蹤將被默認的顯示在錯誤事件中。你可以通過在代碼中使用xdebug_disable()來禁止堆疊跟蹤的顯示。因為這是xdebug基本功能之一,將這項參數設置為On是比較明智的。
xdebug.max_nesting_level
類型:整型 默認值:100
The value of this setting is the maximum level of nested functions that are allowed before the script will be aborted.
限制無限遞歸的訪問深度。這項參數設置的值是腳本失敗前所允許的嵌套程序的最大訪問深度。
xdebug.dump_globals
類型:布爾型 默認值:1
限制是否顯示被xdebug.dump.*設置定義的超全局變量的值
例如,xdebug.dump.SERVER = REQUEST_METHOD,REQUEST_URI,HTTP_USER_AGENT 將打印 PHP 超全局變量 $_SERVER['REQUEST_METHOD']、$_SERVER['REQUEST_URI'] 和 $_SERVER['HTTP_USER_AGENT']。
xdebug.dump_once
類型:布爾型 默認值:1
限制是否超全局變量的值應該轉儲在所有出錯環境(設置為Off時)或僅僅在開始的地方(設置為On時)
xdebug.dump_undefined
類型:布爾型 默認值:0
如果你想從超全局變量中轉儲未定義的值,你應該把這個參數設置成On,否則就設置成Off
xdebug.show_exception_trace
類型:整型 默認值:0
當這個參數被設置為1時,即使捕捉到異常,xdebug仍將強制執行異常跟蹤當一個異常出現時。
xdebug.show_local_vars
類型:整型 默認值:0
當這個參數被設置為不等於0時,xdebug在錯環境中所產生的堆棧轉儲還將顯示所有局部變量,包括尚未初始化的變量在最上面。要注意的是這將產生大量的信息,也因此默認情況下是關閉的。
xdebug.profiler_append
類型:整型 默認值:0
當這個參數被設置為1時,文件將不會被追加當一個新的需求到一個相同的文件時(依靠xdebug.profiler_output_name的設置)。相反的設置的話,文件將被附加成一個新文件。
xdebug.profiler_enable
類型:整型 默認值:0
開放xdebug文件的權限,就是在文件輸出目錄中創建文件。那些文件可以通過KCacheGrind來閱讀來展現你的數據。這個設置不能通過在你的腳本中調用ini_set()來設置。
xdebug.profiler_output_dir
類型:字符串 默認值:/tmp
這個文件是profiler文件輸出寫入的,確信PHP用戶對這個目錄有寫入的權限。這個設置不能通過在你的腳本中調用ini_set()來設置。
xdebug.profiler_output_name
類型:字符串 默認值:cachegrind.out%p
這個設置決定了轉儲跟蹤寫入的文件的名稱。
遠程Debug
相關參數設置
xdebug.remote_autostart
類型:布爾型 默認值:0
一般來說,你需要使用明確的HTTP GET/POST變量來開啟遠程debug。而當這個參數設置為On,xdebug將經常試圖去開啟一個遠程debug session並試圖去連接客戶端,即使GET/POST/COOKIE變量不是當前的。
xdebug.remote_enable
類型:布爾型 默認值:0
這個開關控制xdebug是否應該試著去連接一個按照xdebug.remote_host和xdebug.remote_port來設置監聽主機和端口的debug客戶端。
xdebug.remote_host
類型:字符串 默認值:localhost
選擇debug客戶端正在運行的主機,你不僅可以使用主機名還可以使用IP地址
xdebug.remote_port
類型:整型 默認值:9000
這個端口是xdebug試著去連接遠程主機的。9000是一般客戶端和被綁定的debug客戶端默認的端口。許多客戶端都使用這個端口數字,最好不要去修改這個設置。
注意在配置xdebug之前,如果配置過ZendOptimizer,需要先屏蔽ZendOptimizer 有關的配置,通常如下:
[Zend]
zend_extension_manager.optimizer_ts="path\ZendOptimizer-3.3.0\lib\Optimizer-3.3.0"
zend_extension_ts="path\ZendOptimizer-3.3.0\lib\ZendExtensionManager.dll"