XDebug на порту 9000 с виртуальной машиной - EADDRINUSE ::: 90000 - PullRequest
0 голосов
/ 01 июня 2018

Я запускаю приложение Symfony на виртуальной машине VirtualBox.PHP работает с XDebug, и он правильно настроен.Я знаю это, потому что другим людям удалось заставить его работать со снимком той же виртуальной машины.

Когда я пытаюсь настроить в VS Code XDebug, я использую следующее 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",
            "port": 9000
        },
        {
            "name": "Launch currently open script",
            "type": "php",
            "request": "launch",
            "program": "${file}",
            "cwd": "${fileDirname}",
            "port": 9000
        }
    ]
}

Но когда я нажимаю «Начать отладку: прослушивание XDebug», я получаю следующую ошибку:

ОШИБКА: прослушивание EADDRINUSE ::: 9000

Я пыталсяуничтожение процесса, использующего этот порт ... и, к моему удивлению, это была виртуальная машина, к которой я пытался подключиться.

Что мне не хватало в этой конфигурации?

Ответы [ 4 ]

0 голосов
/ 21 ноября 2018

В MacOS мы можем использовать терминал, чтобы определить, что открыто на порту 9000, с помощью следующего:

sudo lsof -nP -i4TCP:9000 | grep LISTEN

Мы можем использовать sudo выше, поэтому мы видим процессы, которые не принадлежат зарегистрированной учетной записи.

Например, когда я сделал вышеупомянутое, я получил:

php-fpm 110 root    6u  IPv4 0x5cb825c4aa80be09      0t0  TCP 127.0.0.1:9000 (LISTEN)
php-fpm 261 _www    0u  IPv4 0x5cb825c4aa80be09      0t0  TCP 127.0.0.1:9000 (LISTEN)
php-fpm 262 _www    0u  IPv4 0x5cb825c4aa80be09      0t0  TCP 127.0.0.1:9000 (LISTEN)

Затем мы можем завершить процессы с помощью этой команды:

sudo kill 110

Тогда у нас будет портбесплатно, чтобы мы могли запустить Xdebug без конфликта.

Это решило это для меня.

0 голосов
/ 05 июня 2018

Я нашел ответ сам примерно.

Проблема заключалась в настройке Virtualbox.

В настройках сети была переадресация порта для порта 9000, который заблокировалмой отладчик работает локально.После удаления все работало без проблем.

0 голосов
/ 08 июня 2018

порт 9000 часто используется конфигурациями по умолчанию других приложений (например, нативного apache в MacOsX), а также виртуальных машин, контейнеров Docker и т. Д.

Надежным решением будет использование другого порта.,Например, 9001:)

Это означает:

  • обновление ваших конфигураций xdebug IDE с порта 9000 на 9001;
  • добавление в ваш php.ini(xdebug.ini) строка

    xdebug.remote_port=9001
    

Кроме того, вы можете проверить использование порта 9000 с помощью некоторого инструмента, такого как telnet

0 голосов
/ 05 июня 2018

Вы пытаетесь выполнить launch операцию в вашем launch.json, что приведет к тому, что vscode попытается запустить новый экземпляр php с xdebug на порту 9000 .

Попробуйте заменить конфигурацию launch на attach config.

Надеюсь, это поможет.

...