Я пытаюсь установить точку останова в PHP коде, используя XDebug с кодом Visual Studio, который установлен на виртуальной машине Ubuntu Hyper-V. Я нахожусь на PHP 7.2.
Всякий раз, когда я устанавливаю точку останова в своем коде PHP и переименовываю sh страницу, которая должна достигнуть точки останова, я получаю сообщения об ошибках "команда недоступна" и «Нет такой точки останова» отображается во всплывающих окнах в Visual Studio Code. Я также получаю следующую ошибку в консоли отладки:
XDebugError: command is not available
at new Response (/home/ben/.vscode/extensions/felixfbecker.php-debug-
1.13.0/out/xdebugConnection.js:56:19)
at new BreakpointSetResponse (/home/ben/.vscode/extensions/felixfbecker.php-debug-
1.13.0/out/xdebugConnection.js:207:9)
at Connection.<anonymous> (/home/ben/.vscode/extensions/felixfbecker.php-debug
1.13.0/out/xdebugConnection.js:599:20)
at Generator.next (<anonymous>)
at fulfilled (/home/ben/.vscode/extensions/felixfbecker.php-debug-1.13.0/out/xdebugConnection.js:4:58) {
code: 5,
name: 'XDebugError'
}
Основываясь на моих исследованиях, я думаю, что проблема в том, что XDebug не работает с IPv6, но отладчик прослушивает v6. Если я сделаю netstat -an | grep 9000
, я получу
tcp6 0 0 :::9000 :::* LISTEN
Вот содержимое /etc/php/7.2/fpm/conf.d/20-xdebug.ini
zend_extension=xdebug.so
xdebug.remote_autostart=1
xdebug.remote_enable=1
xdebug.remote_handler=dbgp
xdebug.remote_host=127.0.0.1
xdebug.remote_mode=req
xdebug.remote_port=9000
xdebug.var_display_max_depth=-1
xdebug.var_display_max_children=-1
xdebug.var_display_max_data=-1
Как мне исправить эту проблему и заставить мою точку останова работать?