Bài viết này trình bày cách cài xDebug với Laradock trong Visual Studio Code.

Thiết lập Xdebug cho Vscode sử dụng laradock

2022-01-19 506 lượt xem

Bài viết này trình bày cách cài xDebug với Laradock trong Visual Studio Code.

Nếu bạn đã dùng qua laradock thì chắc là bạn cũng đã biết sơ qua cách build php-fpm, workspace. Đối với lập trình viên PHP thì đôi khi cũng cần sử dụng xdebug để debug những thứ phức tạp hơn. 

Chỉnh file .env trong thư mục laradock

Đầu tiên hãy cài đặt xDebug trong Workspace và các Container PHP-FPM.

tìm WORKSPACE_INSTALL_XDEBUG set từ false thành true.

Tìm PHP_FPM_INSTALL_XDEBUG set từ false thành true.

Tuỳ chỉnh cho VSCODE

Vào file workspace/xdebug.ini và file php-fpm/xdebug.ini chỉnh lại nội dung như sau: 

xdebug.remote_host=host.docker.internal
xdebug.remote_connect_back=0
xdebug.remote_port=9000
xdebug.idekey=VSCODE

xdebug.remote_autostart=0
xdebug.remote_enable=0
xdebug.cli_color=0
xdebug.profiler_enable=0
xdebug.profiler_output_dir="~/xdebug/phpstorm/tmp/profiling"

xdebug.remote_handler=dbgp
xdebug.remote_mode=req
xdebug.var_display_max_children=-1
xdebug.var_display_max_data=-1
xdebug.var_display_max_depth=-1

Mẹo: nếu bạn có phpstorm, hãy thay đổi VSCODE thành PHPSTORM

PS: Cái domain : host.docker.internal làm việc với docker version 2.0.3.2 . Nếu bạn xài version khác thì nhớ sửa lại host khác. Có thể là : docker.for.mac.localhost

 

Rebuild workspace và php-fpm

docker-compose build workspace php-fpm
docker-compose up -d workspace php-fpm
docker-compose restart workspace php-fpm

 

Kiểm tra cài đặt thành công và start - stop

Bạn đứng trong thư mục laradock gõ:

Stop xdebug gõ: ./php-fpm/xdebug stop  
Start xdebug gõ: ./php-fpm/xdebug start
Xem trạng thái xdebug: ./php-fpm/xdebug status

Cài đặt.vscode/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",
            //"type": "pwa-chrome",
            //"url": "http://127.0.0.1//posts/first",
            "port": 9000,
            "stopOnEntry":false,
            "pathMappings": {
                "/var/www/PROJECT_NAME": "/Users/hero/Code/web/PROJECT_NAME",
            },
            "ignore": [
                "**/vendor/**/*.php"
            ]
        }
    ]
}

 

#### docker run --rm alpine nslookup host.docker.internal 

những tag
bài viết trong chủ đề