PHP更有效率的除錯 - XDebug
-
Upload
taien-wang -
Category
Technology
-
view
4.638 -
download
8
description
Transcript of PHP更有效率的除錯 - XDebug
PHP更有效率的除錯 - XDebug1011012 @ Hiiir Inc.
Taien Wang<[email protected]>
前言
• PHP
• 以往的除錯
– echo、print_r()、var_dump()、printf()
• Zend Framework的除錯
– Zend_Debug::dump()、Zend_Log
為什麼其他語言開發者可以?
Xdebug – 讓PHP也可以
• http://xdebug.org/
• Xdebug是一個開放原始碼的PHP程序除錯器(即一個Debug工具),可以用
來跟踪,除錯和分析PHP程序的執行狀況。 Xdebug現在的最新版本是
xdebug 2.2.1,支持PHP4/PHP5。
• 可溝通IDE
– NetBeans、Eclipse 、Zend Studio、Notepad++…
Xdebug – Windows 安裝
• 自行安裝
– 下載php_xdebug.dll放置php\ext下
• Apache整合包
– XAMPP內建
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
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"
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
單人與多人連線方式差異
• 單人
• 多人
Xdebug成功畫面
常見問題(1/2)
• 無法連線
– 有其他的conf檔衝突(如:php.ini、xdebug.ini)
– 確定伺服器與客戶端的設定匹配
– 伺服器與客戶端防火牆要開
– 確定端口沒有占用
– 將php.ini裡的Zend區塊註解
– 專案的起始目錄
常見問題(2/2)