Hướng dẫn cài đặt Show
Giới thiệu về XdebugXdebug 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ư
Cài đặt XdebugCài đặt Xdebug trong PHP chạy trực tiếp trên Linux, macOSBạn dùng PEAR/PECL để cài đặt. Mặc định thì lệnh yum install php-pear Gõ lệnh pecl sau để cài đặt Xdebug pecl install xdebug Sau khi cài đặt cần thêm dòng sau vào 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 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 <?php phpinfo(); Khi chạy script đó, từ trình duyệt có kết 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 Sau đó thêm vào zend_extension = C:\wamp64\bin\php\php7.2.18\zend_ext\php_xdebug-2.7.2-7.2-vc15-x86_64.dll Sử dụng Xdebug trong Visual Studio Code và PHPStormPhần này hướng dẫn cấu hình sử dụng Xdebug trên 2 IDE nổi tiếng dành cho PHP, một cái miễn phí là Visual Studio Code và cái kia là PHPStorm. Cấu hình XdebugTrước khi cấu hình nắm một số nguyên tắc làm việc của Xdebug khi kết nối với IDE như sau: IDE phải tạo ra một phiên làm việ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 kết nối vào mỗi khi PHP chạy các script. Bạn
cập nhật vào 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=localhost Thực hiện Debug trên Visual Studio CodeTrong Visual Studio Code, cần cài đặt Extension có tên 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
Sau khi chọn xong, nó sẽ tạo ra file { // 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 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. Bạn đã bắt đầu có thể thực hiện các thao tác debug (step over, step into ...), trong quá trình này bạn sẽ giám sát được giá trị các biến, call stack ... Thực hiện Debug với PHPStormNế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 Khi cấu hình xong, muốn bắt đầu một phiên debug thì bấm vào biểu tượng điện thoại (Start Listening for PHP Debug ...), sau đó 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à xuất hiện khu vực Debug trong PHPStorm Sử dụng Xdebug trong PHP Container DockerTrong 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 XDebug Theo như cấu trúc trên thì dự án PHP code lưu ở máy host tại thư mục Cài đặt XDebug vào PHP ContainerContainer PHP đang chạy có đặt tên là docker exec -it c-php bash Sau đó gõ lần lượt các lệnh sau để cài đặt 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 xdebug Sau khi cài đặt xong, gõ lệnh Cấu hình để XDebug cho phép Remote DebugBạn mở file 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.5 Sau 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 Trên macOS, Linux
có thể gõ Thiết lập Visual Studio Code để Debug với PHP ContainerChỉ việc sửa đổi file { // 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 |