PHP IDE 開發環境配置是提升開發效率的關鍵。本文記錄 Eclipse PDT 整合 Xdebug/Zend Debugger 的完整步驟,含常見坑點與替代方案推薦。
# Ubuntu/Debian
sudo apt install php-xdebug
# Windows (XAMPP)
# 1. 下載對應 PHP 版本、TS/NT、VC 版本的 php_xdebug.dll
# 2. 放入 php/ext/
# 3. php.ini 加入:
zend_extension=xdebug
xdebug.mode=debug
xdebug.start_with_request=yes
xdebug.client_host=127.0.0.1
xdebug.client_port=9003
xdebug.idekey=VSCODE
| 現象 | 原因 | 解決 |
|---|---|---|
| Waiting for Xdebug session 卡住 | Port 衝突/防火牆/客戶端 IP 錯誤 | 檢查 xdebug.client_port=9003、client_host=host.docker.internal (Docker) |
| Breakpoint 不生效 | 路徑映射錯誤 | Debug 配置 → Path Mapping 設定專案根目錄對應 Server Document Root |
| 57% 卡住 | Xdebug 3 協議變更 | 確認 xdebug.mode=debug、IDE 端口 9003 |
{
"version": "0.2.0",
"configurations": [
{
"name": "Listen for Xdebug",
"type": "php",
"request": "launch",
"port": 9003,
"pathMappings": {
"/var/www/html": "${workspaceFolder}"
},
"hostname": "0.0.0.0",
"log": true
},
{
"name": "Launch Built-in Server",
"type": "php",
"request": "launch",
"runtimeArgs": [
"-dxdebug.mode=debug",
"-dxdebug.start_with_request=yes",
"-S", "localhost:8000",
"-t", "${workspaceFolder}/public"
],
"port": 9003
}
]
}
# Dockerfile
FROM php:8.2-fpm
RUN pecl install xdebug \
&& docker-php-ext-enable xdebug
# php.ini
xdebug.mode=debug
xdebug.start_with_request=yes
xdebug.client_host=host.docker.internal
xdebug.client_port=9003
xdebug.idekey=VSCODE
xdebug.log=/var/log/xdebug.log
# docker-compose.yml
services:
php:
build: .
environment:
XDEBUG_CONFIG: "client_host=host.docker.internal client_port=9003"
extra_hosts:
- "host.docker.internal:host-gateway"
僅用於極舊專案 (PHP 5.2-5.6) 維護,現代專案請遷移至 Xdebug 3。
# php.ini (Windows XAMPP 1.6.8 範例)
zend_extension_ts="C:\xampp\php\ext\ZendDebugger.dll"
zend_debugger.allow_hosts=127.0.0.1,192.168.1.0/24
zend_debugger.expose_remotely=always
工具服務於開發流程,而非反之。選擇適合團隊技術棧、專案規模、維護週期的工具鏈,比追求「最強 IDE」更重要。