PHP更有效率的除錯 - XDebug

13
PHP更有效率的除錯 - XDebug 1011012 @ Hiiir Inc. Taien Wang<[email protected]>

description

PHP更有效率的除錯 - XDebug Hiiir內部分享 1011012 Taien Wang

Transcript of PHP更有效率的除錯 - XDebug

Page 1: PHP更有效率的除錯 - XDebug

PHP更有效率的除錯 - XDebug1011012 @ Hiiir Inc.

Taien Wang<[email protected]>

Page 2: PHP更有效率的除錯 - XDebug

前言

• PHP

• 以往的除錯

– echo、print_r()、var_dump()、printf()

• Zend Framework的除錯

– Zend_Debug::dump()、Zend_Log

Page 3: PHP更有效率的除錯 - XDebug

為什麼其他語言開發者可以?

Page 4: PHP更有效率的除錯 - XDebug

Xdebug – 讓PHP也可以

• http://xdebug.org/

• Xdebug是一個開放原始碼的PHP程序除錯器(即一個Debug工具),可以用

來跟踪,除錯和分析PHP程序的執行狀況。 Xdebug現在的最新版本是

xdebug 2.2.1,支持PHP4/PHP5。

• 可溝通IDE

– NetBeans、Eclipse 、Zend Studio、Notepad++…

Page 5: PHP更有效率的除錯 - XDebug

Xdebug – Windows 安裝

• 自行安裝

– 下載php_xdebug.dll放置php\ext下

• Apache整合包

– XAMPP內建

Page 6: PHP更有效率的除錯 - XDebug

Xdebug – Linux 安裝

• 直接下載某特定版本

– http://xdebug.org/download.php

• 客製化安裝

– 執行phpinfo()直接複製畫面的文字資料

– 貼到 http://xdebug.org/wizard.php 分析

• wget http://xdebug.org/files/xdebug-2.2.1.tgz

• tar -xvzf xdebug-2.2.1.tgz

• cd xdebug-2.2.1

• phpize

• ./configure

• make

• cp modules/xdebug.so /usr/lib/php/modules

• vi /etc/php.ini

• zend_extension = /usr/lib/php/modules/xdebug.so

Page 7: PHP更有效率的除錯 - XDebug

Xdebug - Windows 設定

• 可在php.ini設定或是統一額外的conf中設定

– [XDebug]

– ;; Only Zend OR (!) XDebug

– zend_extension_ts="C:\xampp\php\ext\php_xdebug.dll"

– xdebug.remote_enable = 1

– xdebug.remote_connect_back = 1 (多人連線)

– xdebug.remote_port=9000

– xdebug.remote_handler=dbgp

– xdebug.profiler_output_dir="C:\xampp\tmp"

– xdebug.remote_host=127.0.0.1 (你要反連的IP)

– xdebug.profiler_enable=1

– xdebug.remote_log = "C:\xampp\tmp"

Page 8: PHP更有效率的除錯 - XDebug

Xdebug - Linux 設定

• 在php.ini或是xdebug.ini

– zend_extension=/usr/lib/php5/20090626+lfs/xdebug.so

– xdebug.remote_log="/var/log/xdebug.log"

– xdebug.remote_connect_back=1

– xdebug.remote_autostart = 1

– xdebug.remote_enable = 1

– xdebug.remote_connect_back = 1

– xdebug.remote_port=2222

– xdebug.remote_handler=dbgp

– xdebug.remote_host=192.168.0.4

– xdebug.profiler_enable=1

Page 9: PHP更有效率的除錯 - XDebug

單人與多人連線方式差異

• 單人

• 多人

Page 10: PHP更有效率的除錯 - XDebug

Xdebug成功畫面

Page 11: PHP更有效率的除錯 - XDebug

常見問題(1/2)

• 無法連線

– 有其他的conf檔衝突(如:php.ini、xdebug.ini)

– 確定伺服器與客戶端的設定匹配

– 伺服器與客戶端防火牆要開

– 確定端口沒有占用

– 將php.ini裡的Zend區塊註解

– 專案的起始目錄

Page 12: PHP更有效率的除錯 - XDebug

常見問題(2/2)

Page 13: PHP更有效率的除錯 - XDebug

參考資料

• XDEBUG官網