環境需求
- PHP(建議 5.0.3+)
- Web Server(Apache 2 / Nginx)
- Eclipse 3.1.1 + PHPEclipse 1.1.8 外掛
- Java Runtime(Eclipse 必備)
- PHP Debugger 擴展(DBG/Xdebug)
第一道防線:錯誤報告設定
php.ini 設定
display_errors = On
error_reporting = E_ALL & ~E_NOTICE
E_ALL & ~E_NOTICE 顯示錯誤與不良編碼習慣,隱藏無害提示(如未初始化變數)。
Apache httpd.conf 覆蓋(更安全)
php_flag display_errors on
php_value error_reporting 2039
2039 = E_ALL & ~E_NOTICE,2047 = E_ALL。修改後需重啟 Apache。
基礎除錯技巧
- var_dump() / print_r():檢查變數結構與值。
- 錯誤訊息行號:直接定位問題程式碼。
- 註釋法:逐段註釋縮小問題範圍。
- 測試資料隔離:建立最小復現腳本。
PHPEclipse 整合開發環境
- 即時語法檢查:編輯器下紅線標示錯誤。
- 儲存時自動驗證:檔案標籤顯示紅色
x 標記錯誤行。
- 程式碼摺疊、自動完成、範本支援。
進階:斷點除錯
- 安裝 PHP Debugger 擴展(如 DBG 或 Xdebug),修改
php.ini 載入。
- Eclipse 中設定 Debug Configuration:PHP Script / Web Page。
- 在編輯器雙擊行號設定斷點。
- 啟動除錯:程式暫停於斷點,可檢視變數、堆疊、逐步執行。
Xdebug 設定範例
zend_extension="/usr/local/php/extensions/xdebug.so"
xdebug.remote_enable=1
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9000
xdebug.remote_handler=dbgp
除錯心法
- 重現問題 → 縮小範圍 → 假設驗證 → 修正測試。
- 善用版本控制
git bisect 定壞 commit。
- 記錄除錯過程,建立團隊知識庫。