Xdebug是一個PHP程序調試器,可以用來跟蹤,調試和分析PHP程序的運行狀況。其實調試PHP還有其他工具比如Zend Debugger,但zend官方不是免費發布的,后來更新為zend Server也是收費版。而Xdebug是完全免費的並且功能也不差。其實xdebug可以看做PHP的擴展,如果環境中沒有集成需要先在官網下載然后安裝,下載地址:https://xdebug.org/download.php。下面說一下安裝方式:
1.在windows下的安裝方式,在windows安裝時下載需要注意除了下載的擴展和PHP版本一致外還應該查看一下PHP是TS(Thread-Safety)即線程安全還是NTS(None-Thread Safe)即非線程安全,可以通過查看phpinfo內容確定是哪一種。找到phpinfo中的PHP Extension Build這一項,如下圖:
下載完成后將dll文件放到php的安裝目錄下,為了統一可以放到ext目錄下,也可以重命名一下,然后再php.ini中加入如下代碼(具體可根據調試場景進行修改)
[Xdebug] zend_extension ="擴展的絕對路徑" xdebug.collect_params = 1 xdebug.collect_return = 1 xdebug.auto_trace = 0 xdebug.profiler_enable = 0 xdebug.max_nesting_level = 1000000 xdebug.remote_enable = 1 xdebug.remote_host = localhost xdebug.remote_port = 9999 xdebug.remote_handler = dbgp xdebug.idekey = netbeans-xdebug
以上代碼主要適合本地調試的場景,如果是局域網內多人遠程調試可以添加xdebug.remote_connect_back =1或者根據具體的調試場景進行修改。重啟apache或者php-fpm之后使配置文件生效可以再phpinfo中查看到如下圖所示:
2.linux下安裝xdebug的方式
首先也需要在官網下載xdebug,下載source即可,然后解壓后進入解壓后的目錄然后按如下步驟執行:
/PHP的安裝目錄/bin/phpize ./configure --with-php-config=/PHP的安裝目錄/bin/php-config make make install
執行成功后會顯示一個帶extensions的目錄,記下這個目錄,這個目錄中會包含xdebug.so,然后和windows一樣修改php.ini加入相同代碼(除了擴展目錄和文件名不同),重啟php-fpm即可生效。
特別提示:不管是Windows還是Linux安裝xdebug都需要以zend擴展的形式安裝,如果提示XDEBUG NOT LOADED AS ZEND EXTENSION即下圖所示界面則沒有正確安裝,需要重新修改配置文件。
以上配置是xdebug本地調試,其實xdebug也可以設置局域網多人調試或者遠程調試的方式。待續....
轉:https://www.liminghulian.com/article/51
另: 配置其它選項:
[Xdebug] ;指定Xdebug擴展文件的絕對路徑 zend_extension="C:\App\php\php\php-7.0.12-nts\ext\php_xdebug-2.7.0alpha1-7.0-vc14-nts.dll" ;最大循環或調試次數,防止死循環 xdebug.max_nesting_level=50 ;啟用性能檢測分析 xdebug.profiler_enable=On ;啟用代碼自動跟蹤 xdebug.auto_trace=on ;允許收集傳遞給函數的參數變量 xdebug.collect_params=On ;允許收集函數調用的返回值 xdebug.collect_return=On ;指定堆棧跟蹤文件的存放目錄 xdebug.trace_output_dir="C:\App\php\debug" ;指定性能分析文件的存放目錄 xdebug.profiler_output_dir="C:\App\php\debug" ;追加 xdebug.profiler_append=1 ;指定追蹤文件名格式 ;xdebug.profiler_output_name = "cachegrind.out.%c" xdebug.profiler_output_name = "cachegrind.out.%s" ;遠程調試是否開啟 xdebug.remote_enable = On ;端口 xdebug.remote_port=9000 ;遠程調試地址 xdebug.remote_host = 127.0.0.1 ;數組或對象最大層數 最大可設置1023 xdebug.var_display_max_depth = 10 ;將require,include相關載入的文件名寫入追蹤文件 xdebug.collect_includes=1 ;堆棧追蹤 xdebug.default_enable=1 ;打印請求方式 xdebug.dump.SERVER=REQUEST_METHOD ;打印GET請求參數 xdebug.dump.GET=* ;打印POST請求參數 xdebug.dump.POST=* ;打印COOKIE ;xdebug.dump.COOKIE=* ;打印UA ;xdebug.dump.SERVER=HTTP_USER_AGENT
參考: https://www.cnblogs.com/alex-dong/p/9126904.html