Решил следующим образом. Может кому пригодится.
Конфигурация в на сервере xdebug 3 (дла версий младше 3й другие наименования параметров):
xdebug.mode=debug
xdebug.start_with_request=yes
xdebug.client_host=<ip машины где стoит ide>
xdebug.discover_client_host = 1
xdebug.idekey = vscode
xdebug.client_port=9003
xdebug.discover_client_host = 1
В случае если отладка происходит кода в докере, то ip надо посмотреть командой типа ip -a. У меня был 172.17.0.1. На видео, которое мне помогло сработал 172.19.0.1. Но +/- будте примерно таким. Если че вот то
видео
Не забыть пробросить запросы от роутера к компу с IDE, если он стоит за роутером (я по крайней мере делал это). Не проверял будет ли работать без проброски.
Конфигурация launch.json
{
"name": "Listen for Xdebug",
"type": "php",
"request": "launch",
"port": 9003,
"pathMappings": {
"/var/www/html": "${workspaceFolder}/www"
},
Про pathMappings уточню. "/var/www/html"-путь на сервере (или например в докере) где лежит код. "${workspaceFolder}/www" - папка где лежит относительно IDE. В данном случае это конфиг с проекта в докере и www отображает /var/www/html в контейнере. ${workspaceFolder} - насколько я понял, папка с проектом в VS Code. На удаленном сервере pathMappings был без www:
"/var/www/html": "${workspaceFolder}"
После этого необходимо открыть файл, который собираетесь отладить, переключиться на вкладку "Запуск и отладка" (значок play c жучком), расставить брейкпоинты в файле и нажать кнопку отладки. Она начнет выполняться. Далее открываем на сайте именно ту страницу, за которую отвечает отлаживаемый файл и вас автоматом перенаправит обратно в VS Code и появятся элементы управления отладки и переменные различные которые появляются в процессе.