#php #laravel #visual-studio-code #xdebug #laravel-lighthouse
#php #laravel #visual-studio-code #xdebug #laravel-lighthouse
Вопрос:
Я пытаюсь настроить Xdebug для работы в VSCode в среде Windows с сервером на базе Lighthouse / Laravel. Мои настройки VSCode выглядят следующим образом
{
// 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
},
{
"name": "Launch currently open script",
"type": "php",
"request": "launch",
"program": "${file}",
"cwd": "${fileDirname}",
"port": 9000
}
]
}
Я также пытался добавить туда pathMappings, но безуспешно
"pathMappings": {
"/graphql": "${workspaceRoot}/public"
}
Я следил https://laracasts.com/series/visual-studio-code-for-php-developers/episodes/13 и добавил все предлагаемые там конфигурации. Когда я набираю php -v
PHP 7.4.10 (cli) (built: Sep 1 2020 16:52:21) ( NTS Visual C 2017 x64 )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
with Xdebug v3.0.0, Copyright (c) 2002-2020, by Derick Rethans
Я вижу, что установлен Xdebug.
Мой php.ini выглядит так
[XDebug]
zend_extension = "php_xdebug-3.0.0-7.4-vc15-nts-x86_64.dll"
xdebug.remote_enable = 1
xdebug.remote_autostart = 1
xdebug.remote_connect_back = 1
xdebug.remote_host=localhost
xdebug.idekey=VSCODE
xdebug.remote_log ="C:toolsxdebug.log"
Любые советы будут с благодарностью
Комментарии:
1. Используйте параметры конфигурации Xdebug 3 — они ОТЛИЧАЮТСЯ от того, что использует Xdebug 2 (который у вас есть в вашем php.ini). Проверьте документы по обновлению и измените свою конфигурацию: xdebug.org/docs/upgrade_guide
2. Спасибо, что решил это для меня. Я не понимал, что все, что я читал, устарело, следует более внимательно прочитать документы спасибо за вашу помощь.
3. Xdebug 3 был выпущен всего около 1 недели назад. В этом отношении почти все учебные пособия устарели (если только автор не следил за этим и не позаботился об этом, что случается редко), просто не так много пользователей ожидают таких изменений в параметрах конфигурации и просто изменяют конфигурацию. Эти изменения были необходимы: они устраняют некоторые недоразумения (не так много пользователей на самом деле читают документы, чтобы увидеть, что делает опция — они просто копируют-вставляют, не задумываясь, и следуют методу проб и ошибок)
Ответ №1:
Для всех, у кого есть подобная проблема, просто необходимо обновить мой php.ini.
[XDebug]
zend_extension = "php_xdebug-3.0.0-7.4-vc15-nts-x86_64.dll"
xdebug.mode = debug
xdebug.start_with_request=yes
xdebug.idekey=VSCODE
В итоге получилось что-то вроде этого, даже не уверен, нужен ли сейчас idekey.
Это и измените порт на 9003, как это, по-видимому, изменилось в версии 3.
Комментарии:
1. Да, порт по умолчанию был изменен с
9000
на9003
, поскольку он часто конфликтует (на Lunux и Mac) с php-fpm, который также использует этот порт. Вы можете указать Xdebug использовать любой порт, который вы хотите (xdebug.client_port
), даже оригинальный 9000.