使用虚拟机在端口 9000 上进行 XDebug - EADDRINUSE ::::9000

2022-08-30 23:36:13

我正在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

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

我在此配置中错过了什么?


答案 1

您正在尝试在 中执行操作,这将导致 vscode 尝试在端口 9000 上使用 xdebug 启动一个新的 php 实例。launchlaunch.json

尝试用配置替换您的配置。launchattach

希望它有帮助。


答案 2

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

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

这意味着:

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

    xdebug.remote_port=9001
    

此外,您可以通过一些工具(如telnet)检查9000端口使用情况


推荐