Hướng dẫn cài đặt Xdebug
và sử dụng XDebug để gỡ rối PHP với IDE phổ biến như Visual Studio Code, PHPStorm
Tóm Tắt
Giới thiệu về Xdebug
Xdebug là một extension dành cho PHP, khi cài đặt nó nó sẽ cập nhật lại việc hiện thị lỗi, cập nhật một số lệnh có sẵn (như var_dump
), đặc biệt nó cho phép kết nối đến các IDE (như Visual Studio Code, 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
Cài đặt Xdebug trong PHP chạy trực tiếp trên Linux, macOS
Bạn dùng PEAR/PECL để cài đặt. Mặc định thì lệnh pecl
có sẵn khi cài PHP trên macOS với brew (xem phần cài đặt PHP trên macOS). Trên Linux ví dụ CentOS nếu chưa có pecl thì gõ lệnh sau để cải đặt
Bạn đang đọc: Sử dụng Xdebug để gỡ rối khi lập trình PHP
yum install php-pear
Gõ lệnh pecl sau để thiết lập Xdebug
pecl install xdebug
Sau khi cài đặt cần thêm dòng sau vào php.ini
để PHP nạp extension này:
zend_extension="/usr/local/php/modules/xdebug.so"
(Đường dẫn tới xdebug.so có thể khác trên máy bạn – xem kết quả lệnh cài xdebug để biết nó ở đâu)
Cuối cùng gõ lệnh sau để kiểm tra xem PHP có nạp được Xdebug chưa
php -m | grep "xdebug"
Nếu hiện thị dòng xdebug là thành công xuất sắc
Cài đặt Xdebug trong PHP trên Windows
Đối với PHP trên Windows bạn cần tải về một file thư viện xdebug.x.x..dll
thích hợp, hãy chạy một script php từ trình duyệt có nội dung:
Khi chạy script đó, từ trình duyệt có hiệu quả dạng :
Hãy chọn tất cả nội dung xuất ra đó (Ctrl - A), rồi copy (Ctrl - C) rồi vào trang xdebug wizard, dán toàn bộ nội dung có được vào hộp nhập liệu của trang đó. Sau đó bấm vào nút bấm
Analyse my phpinfo() output
, sau khi nó phân tích thì sẽ có đường link để bạn tải xdebug thích hợp về máy. Ví dụ, file tải về làphp_xdebug-2.7.2-7.2-vc15-x86_64.dll
, hãy lưu vào thư mục chứa phần mở rộng của PHP, trên máy tôi làC:\wamp64\bin\php\php7.2.18\zend_ext
Sau đó thêm vào
php.ini
(ví dụ C:\wamp64\bin\php\php7.2.18\ini) nội dung:zend_extension = C:\wamp64\bin\php\php7.2.18\zend_ext\php_xdebug-2.7.2-7.2-vc15-x86_64.dllSử dụng Xdebug trong Visual Studio Code và PHPStorm
Phần này hướng dẫn thông số kỹ thuật sử dụng Xdebug trên 2 IDE nổi tiếng dành cho PHP, một cái không lấy phí là Visual Studio Code và cái kia là PHPStorm .
Cấu hình Xdebug
Trước khi thông số kỹ thuật nắm một số ít nguyên tắc thao tác của Xdebug khi liên kết với IDE như sau : IDE phải tạo ra một phiên thao tác và mở ra một cổng ( mặc định 9000, với địa chỉ IP, mặc định localhost ) để XDebug của PHP liên kết vào mỗi khi PHP chạy những script .
Bạn cập nhật vào
php.ini
nội dung sau:xdebug.remote_enable=1 xdebug.remote_connect_back=1 xdebug.remote_autostart=1 xdebug.remote_connect_back=1 xdebug.remote_port=9000 xdebug.profiler_enable=0 xdebug.var_display_max_depth = 5 xdebug.var_display_max_children = 256 xdebug.var_display_max_data = 1024 xdebug.profiler_enable=0 #xdebug.remote_log = /var/logs/xdebug.log - chỉnh đến đường dẫn lưu log xdebug.remote_connect_back=0 xdebug.remote_host=localhostThực hiện Debug trên Visual Studio Code
Trong Visual Studio Code, cần cài đặt Extension có tên
PHP Debug
, phần mở rộng này cho phép tạo ra Client lắng nghe trên cổng do bạn
ấn định để xDebug kết nối vào.Khi mở dự án PHP của bạn xong, chọn biểu tượng Debug (hình con bọ), sau đó chọn biểu tượng bánh xe, chọn
Add Config PHP
cấu hình như hình dưới:Sau khi chọn xong, nó sẽ tạo ra file
launch.json
, bạn sửa đổi file này nội dung như sau:{ // Use IntelliSense to learn about possible attributes. // Hover to view descriptions of existing attributes. // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { "name": "Listen for XDebug", "type": "php", "request": "launch", "port": 9000, "hostname": "localhost" }, { "name": "Launch currently open script", "type": "php", "request": "launch", "program": "${file}", "cwd": "${fileDirname}", "port": 9000, } ] }Lúc này, bạn có thể đặt breakpoint, hoặc gỡ rối nếu phát sinh ngoại lệ. Bạn bấm vào nút mũi tên xanh (play) để bắt đầu tạo client phiên làm việc, lắng nghe Xdebug kết nối tới ở cống
9000
củalocalhost
, nó xuất hiện như hình dưới.
Giả sử đặt breakpoint vào file test.php, khi chạy file này từ trình duyệt hoặc CLI, lập tức XDebug hoạt động giải trí .
Bạn đã mở màn hoàn toàn có thể thực thi những thao tác debug ( step over, step into ... ), trong quy trình này bạn sẽ giám sát được giá trị những biến, call stack ...Thực hiện Debug với PHPStorm
Nếu phát triển dự án PHP với PHPStorm thì cấu hình để nó kết nối với Xdebug như sau: Mở hộp thoại
Preferences
, Settings tìm đến mục Xdebug và nhập các thông tin như sau:
Khi thông số kỹ thuật xong, muốn khởi đầu một phiên debug thì bấm vào hình tượng điện thoại thông minh ( Start Listening for PHP Debug ... ), sau đó hoàn toàn có thể đặt breakpoint, phát sinh ngoại lệ ... để Debug. Khi chạy code nếu phát sinh ngoại lệ, hoặc đến breakpoint chương trình sẽ tạp dừng và Open khu vực Debug trong PHPStorm
Sử dụng Xdebug trong PHP Container Docker
Trong phần này thực hiện trên PHP Container với cấu trúc và thư mục chia sẻ code ... đúng như hướng dẫn tại
Cài đặt PHP FPM - tuy nhiên có thêm ánh xạ cổng XDebug9001
(thêm tham số-p 9001:9001
khi chạy container này)(chọn 9001 vì cổng 9000 có thể PHP FPM đang chiếm), đồng thời cũng có Container Apache cài đặt giống như
Cài đặt và cấu hình Apache ContainerTheo như cấu trúc trên thì dự án PHP code lưu ở máy host tại thư mục
/mycode/php
tương ứng trong
các container là đường dẫn/home/phpcode
, bạn nhớ cấu trúc này vì cần trong thiết lập XDebug PHPCài đặt XDebug vào PHP Container
Container PHP đang chạy có đặt tên là
c-php
, khi nó đang chạy hãy vào terminal của container bằng lệnh:docker exec -it c-php bashSau đó gõ lần lượt những lệnh sau để thiết lập XDebug
apt-get update apt-get upgrade -y apt-get install -y --force-yes curl git nano zlib1g-dev apt-get install libzip-dev docker-php-ext-install zip docker-php-ext-enable zip pecl install xdebug docker-php-ext-enable xdebugSau khi cài đặt xong, gõ lệnh
php -v
, nếu hiện thị có dòngwith Xdebug v2.7.2, Copyright (c) 2002-2019, by Derick Rethans
thì đã cài đặt thành công extension này vào PHPCấu hình để XDebug cho phép Remote Debug
Bạn mở file
/usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
trong containerc-php
thêm vào các cấu hình sau:xdebug.remote_enable=1 xdebug.remote_connect_back=0 xdebug.remote_autostart=1 xdebug.remote_port=9001 xdebug.profiler_enable=0 xdebug.var_display_max_depth = 5 xdebug.var_display_max_children = 256 xdebug.var_display_max_data = 1024 xdebug.profiler_enable=0 xdebug.remote_log = /xdebug.log xdebug.idekey = docker xdebug.remote_host=192.168.1.5Sau khi thêm vào khởi động lại container, mọi tình trạng hoạt động được ghi ra log tại
/xdebug.log
, địa chỉ192.168.1.5
là IP máy host, hãy thay bằng IP máy host của bạn. Khởi động lại container khi đã cấu hình xong.Trên macOS, Linux có thể gõ
ifconfig | grep "inet " | grep -v 127.0.0.1
để xem địa chỉa IP của máy HOST. Trên Windows gõipconfig
Thiết lập Visual Studio Code để Debug với PHP Container
Chỉ việc sửa đổi file
launch.json
{ // Use IntelliSense to learn about possible attributes. // Hover to view descriptions of existing attributes. // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { "name": "Listen for XDebug", "type": "php", "request": "launch", "port": 9001, "hostname": "192.168.1.5", "pathMappings": { "/home/phpcode": "/mycode/php" } }, { "name": "Launch currently open script", "type": "php", "request": "launch", "program": "${file}", "cwd": "${fileDirname}", "port": 9001, } ] }Hãy chú ý mục pathMappings, hostname, port. Đến đây thì có thể Debug PHP Docker giống như PHP trực tiếp ở trên. Tương tự dành cho PHPStorm, chỉ việc thay cổng 900 thành 9001
ĐĂNG KÝ KÊNH, XEM CÁC VIDEO TRÊN XUANTHULAB
Đăng ký nhận bài viết mới
Source: https://final-blade.com
Category: Kiến thức Internet