Xdebug là thư viện được viết ra để hỗ trợ việc tìm ra lỗi trong ứng dụng viết bằng PHP một cách hiệu quả hơn. Các công cụ hỗ trợ tìm ra lỗi của ứng dụng như Xdebug được gọi là debugger, đặc biệt Xdebug cho phép kết nối đến các IDE (như Visual Studio Code, Sublime Text, PHPStorm …) để gỡ rối mã PHP, lúc này từ IDE có thể thực hiện việc đặt các breakpoint (điểm dừng mã để trích xuất, xem các thông tin …) cũng như các thao tác Debug như : Step Into, Step Over, Restart …
Cài đặt Xdebug PHP trên Windows
Bước 1. Cài đặt Xdebug:
- Download file DLL đúng phiên bản PHP đang cài đặt tại đây https://xdebug.org/download
- Copy file DLL vừa download vào thư mục *C:\xampp\php\ext*
Bước 2. Thêm cấu hình Xdebug vào php.ini (\xampp\php\php.ini)
[XDebug]
zend_extension=C:\xampp\php\ext\php_xdebug-xxx.dll
xdebug.remote_enable = 1
xdebug.remote_autostart = 1
php_xdebug-xxx.dll: là file vừa download ở bước 1
Sử dụng phpinfo() hoặc vào CMD gõ php -v để xem Xdebug đã cấu hình chưa.
Bước 3. Cài đặt PHP Debug Extension trong VS Code
Link: https://marketplace.visualstudio.com/items?itemName=felixfbecker.php-debug
Bước 4. Add config cho project PHP và sử dụng
- Chọn hình cọn bọ và bấm vào chỗ bánh xe để add config cho project cần debug -> sau khi add xong sẽ tạo ra 1 file launch.json giống như bên dưới
{
"version": "0.2.0",
"configurations": [
{
"name": "Listen for Xdebug",
"type": "php",
"request": "launch",
"port": 9000
},
{
"name": "Launch currently open script",
"type": "php",
"request": "launch",
"program": "${file}",
"cwd": "${fileDirname}",
"port": 9000
}
]
}
- Bây giờ có thể đặt breakpoint và bấm vào nút mũi tên xanh để bắt đầu debug.
Cài đặt XDebug để Remote Debug
Bước 1. Cài đặt Xdebug:
// Install Xdebug through PECL on Linux
pecl install Xdebug
Nếu PHP 5.3 thì chạy lệnh:
pecl install xdebug-2.2.7
Bước 2. Thêm cấu hình Xdebug vào php.ini
;xDebug: Configuration starts
zend_extension = PATH_TO_LIBRARY_PHP/xdebug.so
xdebug.remote_enable = 1
; <IP Host>: Linux type command: ifconfig | grep "inet " | grep -v 127.0.0.1
; <IP Host>: Windows type command: ipconfig in cmd
xdebug.remote_host="<IP Host>"
xdebug.remote_port=9000
xdebug.profiler_output_dir = PATH_TO_PROFILER_OUTPUT_DIR
xdebug.profiler_enable = 1
xdebug.remote_log=PATH_TO_LOG/xdebug.log
; The Linux way
xdebug.remote_connect_back = 1
; idekey value is specific to VSCODE
xdebug.idekey=VSCODE
; Optional: Set to true to always auto-start xdebug
xdebug.remote_autostart = 1
;xDebug: Configuration ends
Bước 3. Cài đặt PHP Debug Extension trong VS Code như phía trên
Bước 4. ở bước này thay đổi thiết lập như sau
{
"version": "0.2.0",
"configurations": [
{
"name": "remote XDebug",
"type": "php",
"request": "launch",
"program": "${file}",
"cwd": "${fileDirname}",
"pathMappings": {
// server -> local
"/var/www/html": "${workspaceRoot}/",
},
"port": 9000,
}
]
}