У меня установлен Visual Studio Code 1.41.1 с PHP Отладочная версия - 1.13.0.
https://marketplace.visualstudio.com/items?itemName=felixfbecker.php-debug
Я работаю PHP Стек ламп в Ubuntu, моя PHP информация показывает «xdebug xdebug support enabled - Version 2.9.0»
My PHP .ini настроен следующим образом:
[XDebug]
zend_extension = /usr/lib/php/20170718/xdebug.so
xdebug.remote_enable = 1
xdebug.remote_autostart = 1
xdebug.remote_connect_back = 1
xdebug.remote_handler = dbgp
;xdebug.remote_host = 192.168.1.103
xdebug.remote_port=9000
xdebug.remote_log=/var/log/xdebug.log
My Запустите. 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",
"port": 9000,
"hostname": "192.168.1.23"
},
{
"name": "Launch currently open script",
"type": "php",
"request": "launch",
"program": "${file}",
"cwd": "${fileDirname}",
"port": 9000,
"hostname": "192.168.1.23"
}
]
}
Мой сервер работает на 192.168.1.23, а мой ide работает на 192.168.1.103.
Когда я пытаюсь 'Listen for XDebug 'или' Запустить открытый скрипт 'я получаю следующую ошибку:
Error: listen EADDRNOTAVAIL: address not available 192.168.1.23:9000
at Server.setupListenHandle [as _listen2] (net.js:1209:19)
at listenInCluster (net.js:1274:12)
at doListen (net.js:1413:7)
at processTicksAndRejections (internal/process/task_queues.js:84:9) {
code: 'EADDRNOTAVAIL',
errno: 'EADDRNOTAVAIL',
syscall: 'listen',
address: '192.168.1.23',
port: 9000
}
Я пытался установить xdebug.remote_connect_back на 0 и 1 и явно указать IP удаленного хоста с xdebug.remote_host = 192.168. 1.103 или тоже комментируя
Ошибка почти мгновенно возникает в Visual Studio, что указывает на то, что она блокируется локально.
Глядя на мой файл журнала: xdebug.log Я получаю:
[2268] Log opened at 2020-01-08 12:39:09
[2268] I: Connecting to configured address/port: 192.168.1.103:9000.
[2268] E: Time-out connecting to client (Waited: 200 ms). :-(
[2268] Log closed at 2020-01-08 12:39:09
[2225] Log opened at 2020-01-08 13:09:37
[2225] I: Checking remote connect back address.
[2225] I: Checking header 'HTTP_X_FORWARDED_FOR'.
[2225] I: Checking header 'REMOTE_ADDR'.
[2225] W: Remote address not found, connecting to configured address/port: localhost:9000. :$
[2225] W: Creating socket for 'localhost:9000', poll success, but error: Operation now in pr$
[2225] E: Could not connect to client. :-(
[2225] Log closed at 2020-01-08 13:09:37
Файл журнала кажется медленным для записи - я не удивлен е какое событие вызывало события в журнале. Я подозреваю, что это был доступ к веб-странице непосредственно с моего удаленного хоста, а не через код Visual Studio.
Я также установил свой брандмауэр защитника windows на порт 9000.
Редактирование на основе в комментариях. 192.168.1.103 Это IP-адрес компьютера windows 10, на котором работает код Visual Studio. На машине также запущена версия 6.0.8 r130520 (Qt5.6.2), а IP-адрес виртуальной машины - 192.168.1.23.
Я обновил время ожидания до 2000 мс.
I Я заметил, что если я выключаю виртуальную машину, VS C пытается подключиться, а остальные пытаются подключиться гораздо дольше. Тогда как виртуальная машина работает, она мгновенно выдает ошибки. Что может означать, что виртуальная машина блокирует порт?
Наконец - что инициирует вход в xdebug.log. Будет ли загрузка файла PHP на веб-сайт триггера выводить регистратор? Причина, по которой я спрашиваю, состоит в том, что я не могу различить, вызвать ошибку, но при открытии файла журнала между дельтами времени, т. Е. Сегодня по сравнению с прошлой ночью, были сгенерированы различные ошибки?
Машина и виртуальная машина - оба защищен за брандмауэрами на основе маршрутизатора, поэтому это не будет внешним трафиком c.
Виртуальная машина работает на клиентской машине windows 10, как и ожидалось. Просто не удается подключить отладчик. Но PHP / MYSQL / APACHE все работают правильно.