成人午夜激情影院,小视频免费在线观看,国产精品夜夜嗨,欧美日韩精品一区二区在线播放

安裝/使用/調試xdebug以及xdebug參數設置的教程

2011-02-16 14:21:28來源:JS8.IN作者:

xdebug是PHP的一個擴展應用,有了xdebug就可以輕松的調試PHP程序,有了它,我們就不用使用var_dump(),print_r()之類的傻瓜調試函數了。
Xdebug則提供了更多的功能,能全方位的對PHP腳本進行調試。Xdebug主要的功能

xdebug是PHP的一個擴展應用,有了xdebug就可以輕松的調試PHP程序,有了它,我們就不用使用var_dump()print_r()之類的傻瓜調試函數了。
Xdebug則提供了更多的功能,能全方位的對PHP腳本進行調試。Xdebug主要的功能如下:

  1. 堆棧追蹤和函數追蹤;
  2. 錯誤信息;
  3. 內存分配;
  4. 剖析php腳本的信息;
  5. 代碼覆蓋率分析;
  6. 遠程調試分析;

1、Ubuntu搭建xdebug調試環境

安裝Xdebug模塊

在終端中使用apt-get安裝xdebug,命令如下

sudo apt-get install php5-dev php-pear
sudo apt-get install php5-xdebug

然后打開php.ini文件(例如gedit /etc/php5/apache2/php.ini)。進行如下配置;

;加載xdebug動態鏈接庫
extension=xdebug.so
;xdebug分析文件輸出路徑
xdebug.profiler_output_dir = “/var/www/xdebug/”
;分析器默認是關閉,調試的時候在url中加入XDEBUG_PROFILE=true即可
xdebug.profiler_enable = Off
xdebug.profiler_enable_trigger = 1

重啟apache,這樣就可以使用xdebug調試PHP了。

2、windows下安裝xdebug

以PHP5.1.4,Windows平臺為例(其它PHP版本,其它平臺請參看官網文檔):
1. 登錄www.xdebug.org,在首頁右側有一個Windows modules,選擇其中的PHP5.1.2+,下載php_xdebug-5.1.2-2.0.0beta6.dll文件;
2. 將下載的php_xdebug-5.1.2-2.0.0beta6.dll放到C:\php5\ext目錄,重命名為php_xdebug.dll;
3. 編輯php.ini,加入下面幾行:

extension=php_xdebug.dll
[Xdebug]
xdebug.profiler_enable=on
xdebug.trace_output_dir=”I:\Projects\xdebug”
xdebug.profiler_output_dir=”I:\Projects\xdebug”
xdebug.dump.GET=*
xdebug.show_local_vars=1

具體參數PHP.ini說明參見ubuntu下的注釋。

3、使用xdebug進行PHP調試

xdebug調試變量更加友好

Xdebug重寫了php里面var_dump()函數。
xdebug里的var_dump()給變量對象有不同的顏色,顯示類型長度,還可以控制顯示層次,顯示的方式經過格式化,清晰友好。
需要使用此功能,有如下參數需注意。
 

;是否覆蓋php里面的函數var_dump();默認是開啟的,值為1;設為0,則關閉;
xdebug.overload_var_dump = 1
;控制數組子元素顯示的大小默認為256
xdebug.var_display_max_children = 256
;控制變量打印的大小,默認為512
xdebug.var_display_max_data = 512
;控制數組和對象元素顯示的層級。默認為3
xdebug.var_display_max_depth = 3

xdebug的堆棧追蹤功能

如果腳本中出現函數參數不正確,方法重復,語法錯誤等錯誤的時候。xdebug能追蹤其錯誤產生的產生的過程。

參數配置請參考http://xdebug.com/docs/stack_trace;一般來說,很少需要配置。

4、使用xdebug進行腳本性能測試

在php.ini做如下配置

;默認為0,不開啟xdebug調試器;
xdebug.profiler_enable = 0
;默認為0;這里設為1,可以通過XDEBUG_PROFILE參數通過GET/POST傳遞
xdebug.profiler_enable_trigger = 1

測試性能結果查看工具

測試完畢后,我們需要查看下測試結果,從而找到PHP的瓶頸。
這里推薦使用兩款查看工具,ubuntu下可以使用KCachegrind,windows下可以使用WinCacheGrind。具體查看xdebug測試結果工具使用方法自己谷歌,很簡單。懂點E文就可以看懂的。

5、xdebug使用注意及相關參數說明

xdebug使用注意

如果您在 phpinfo() 的輸出中沒有看到 Xdebug 部分,則 Xdebug 裝入失敗。Apache 錯誤日志會列出原因。常見錯誤包括 zend_extension 的路徑錯誤或者與其他擴展發生沖突。例如,如果需要使用 XCache 和 Xdebug,一定要先裝入 XCache。但是,由于 Xdebug 適于在開發時使用并假定 xdebug.so 的路徑正確,因此需要禁用其他擴展并重試。然后您可以重新啟用擴展以執行其他測試,如緩存的效果。

Xdebug 站點還有其他一些故障檢修技巧。

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
這個設置決定了轉儲跟蹤寫入的文件的名稱。

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客戶端默認的端口。許多客戶端都使用這個端口數字,最好不要去修改這個設置。

注意:所有以上參數修改后,要重啟Apache才能生效!

原文:http://www.js8.in/674.html
關鍵詞:xdebugphp

贊助商鏈接:

主站蜘蛛池模板: 延安市| 顺平县| 拉萨市| 乌海市| 甘谷县| 吴江市| 绥宁县| 蓬莱市| 兴城市| 邳州市| 垦利县| 珠海市| 合山市| 泰来县| 庆安县| 美姑县| 罗甸县| 邛崃市| 满城县| 镇沅| 崇文区| 镇江市| 浠水县| 建瓯市| 平谷区| 和林格尔县| 绵竹市| 余干县| 庄浪县| 柘荣县| 马尔康县| 星子县| 新郑市| 赞皇县| 明水县| 遂溪县| 潮安县| 乌拉特中旗| 手游| 德阳市| 日照市|