首页 > 解决方案 > 使用虚拟机在端口 9000 上进行 XDebug - EADDRINUSE :::9000

问题描述

我在 VirtualBox VM 上运行我的 Symfony 应用程序。PHP 使用 XDebug 运行,并且配置正确。我知道这一点是因为其他人已经设法使其与同一 VM 的快照一起工作。

当我尝试在 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

我试图杀死正在使用该端口的进程......令我惊讶的是,这是我试图连接的虚拟机。

我在这个配置中错过了什么?

标签: phpvisual-studio-codevirtualboxxdebug

解决方案


端口 9000 经常被其他应用程序(例如 MacOsX 上的本机 apache)、VM、Docker 容器等的默认配置使用。

一个可靠的解决方案是 - 使用不同的端口。例如,9001 :)

这意味着:

  • 将您的 IDE xdebug 配置从端口 9000 更新到 9001;
  • 添加到您的 php.ini (xdebug.ini) 行

    xdebug.remote_port=9001
    

此外,您可以通过 telnet 等工具检查 9000 端口的使用情况


推荐阅读