php - 使用虚拟机在端口 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
我试图杀死正在使用该端口的进程......令我惊讶的是,这是我试图连接的虚拟机。
我在这个配置中错过了什么?
解决方案
端口 9000 经常被其他应用程序(例如 MacOsX 上的本机 apache)、VM、Docker 容器等的默认配置使用。
一个可靠的解决方案是 - 使用不同的端口。例如,9001 :)
这意味着:
- 将您的 IDE xdebug 配置从端口 9000 更新到 9001;
添加到您的 php.ini (xdebug.ini) 行
xdebug.remote_port=9001
此外,您可以通过 telnet 等工具检查 9000 端口的使用情况
推荐阅读
- node.js - 节点 express req.body 返回空 obj
- android - I am having troubles creating a Marker on flutter with the Google Maps dependency
- javascript - 检查 CKEditor 是否已初始化
- python - CSV 到字典 Python
- laravel - I have project created by laravel 8 ,and i use JWT for my API ,now i can't install pusher because of JWT version
- sqlite - Adding SQLite.db file from the assets and show in List view
- javascript - 使用 HTMLAgilityPack 解析 Javascript HTML
- javascript - 循环重新加载图像(JavaScript / HTML)
- c++ - Where can I find the GCC 9 implementation of std::chrono::system_clock::now()?
- stata - 上一年的统计交互变量