VSCode и PHP с XDebug и PHP Debug extension и IISExpress - PullRequest
1 голос
/ 01 августа 2020

Я пытаюсь использовать расширение PHP Debug в VS Code. Я выполнил инструкции, вставил содержимое phpinfo в мастер и загрузил соответствующую dll. Я получаю следующую ошибку:

запуск. json

"version": "0.2.0",
"configurations": [
    {
        "name": "Listen for XDebug",
        "type": "php",
        "request": "launch",
        "port": 9000,
        "log": true
        },
    {
        "name": "Launch currently open script",
        "type": "php",
        "request": "launch",
        "program": "${file}",
        "cwd": "${fileDirname}",
        "port": 9000
    }
]

php .ini

[XDEBUG]
zend_extension = C:\PHP\ext\php_xdebug-2.9.6-7.4-vc15-nts.dll
xdebug.remote_enable = 1
xdebug.remote_autostart = 1
xdebug.remote_handler = dbgp
xdebug.remote_host = 127.0.0.1
xdebug.remote_port = 9000
xdebug.remote_mode = req

Если я выберу опцию прослушивания, предварительно запустив IIS Express, я получаю эту ошибку

Ошибка: прослушивание EACCES: разрешение отклонено 0.0.0.0:9000 на Server.setupListenHandle [as _listen2] (net. js: 1211: 19) в listenInCluster (net. js: 1276: 12) в Server.listen (net. js: 1364: 7) в c: \ Users \ me.vscode \ extensions \ felixfbecker. php -debug-1.13.0 \ out \ phpDebug. js: 236: 24 в новом Promise () в createServer (c: \ Users \ me.vscode \ extensions \ felixfbecker. php -debug-1.13.0 \ out \ phpDebug. js: 184: 40) в PhpDebugSession. (c: \ Users \ me.vscode \ extensions \ felixfbecker. php -debug-1.13.0 \ out \ phpDebug. js: 240: 27) в Generator.next () в c: \ Users \ me.vscode \ extensions \ felixfbecker. php -debug-1.13.0 \ out \ phpDebug. js: 7: 71 при новом обещании () {код: 'EACCES', errno: 'EACCES', системный вызов : 'listen', адрес: '0.0.0.0', порт: 9000}

Если я выберу другой вариант и сначала запущу VS Code, я получу ошибку IIS Express

Не удалось зарегистрировать URL "http://localhost: 9000 /" для сайта "XXXXXXX-0f34f450-230f-4d11-8878-1a90a024dcf6" application "/". Описание ошибки: процесс не может получить доступ к файлу, потому что он используется другим процессом. (0x80070020)

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

Get-Process -Id (Get-NetTCPConnection -LocalPort 9000).OwningProcess

Очевидно, обе стороны могут запустить порт 9000, но им не нравится использовать один и тот же порт. Что мне не хватает?

1 Ответ

1 голос
/ 02 августа 2020

Моя ошибка заключалась в том, что сайт также работал на порту 9000. Это должен быть совершенно другой порт, нежели XDebug, который прослушивает свой собственный порт.

iis express. json

{
  "port": 1785,
  "path": "C:\\YourSite",
  "clr": "v4.0",
  "protocol": "http"
}
...