【问题标题】:CouchDB on Vagrant VM (Scotch box)Vagrant VM 上的 CouchDB(苏格兰威士忌)
【发布时间】:2026-01-17 17:45:01
【问题描述】:

我正在尝试在 Scotch Box VM 上设置 CouchDB(并最终使用 PouchDB)。 VM 运行良好,并通过包含以下代码包括端口 5849 的端口转发:

Vagrant.configure("2") do |config|

    config.vm.box = "scotch/box-pro"
    config.vm.hostname = "scotchbox"
    config.vm.network "forwarded_port", guest: 80, host: 8080
    config.vm.network "forwarded_port", guest: 5984, host: 5984
    config.vm.network "forwarded_port", guest: 3000, host: 3000
    config.vm.network "private_network", ip: "192.168.33.10"

虚拟机运行良好。 localhost:8080 将加载 PHP 主页,如果我运行节点服务器,则 localhost:3000 将加载节点脚本,但 localhost:5984 仅在从浏览器或使用 curl 从主机命令行加载时返回空响应curl: (52) Empty reply from server.

当我使用vagrant ssh访问VM时,我可以使用curl localhost:5984获得{"couchdb":"Welcome","uuid":"9cabeb8f66947adabe9443594aa7f69c","version":"1.6.0","vendor":{"version":"15.10","name":"Ubuntu"}},正如预期的那样。

这是我一直在参考的指南:https://pouchdb.com/guides/setup-couchdb.html

附加信息:当我转到 192.168.33.10:5984(而不是使用 localhost 端口转发)时,结果是连接被拒绝。

对我的问题有什么建议吗?我原以为是转发问题,但端口 8080 和 3000 工作正常,访问 IP:5984 不起作用,这让我感到奇怪。我还认为该服务可能没有运行,但是在 VM 上执行 ssh 并运行 curl 似乎表明它实际上正在运行。

谢谢!

【问题讨论】:

    标签: vagrant couchdb scotchbox


    【解决方案1】:

    默认情况下,CouchDB 绑定到本地主机地址 127.0.0.1,您需要将其重新绑定到 0.0.0.0 才能从 Vagrant 框外部访问它。为此,您需要在default.ini 配置文件的[httpd] 部分更改参数bind_address,或在local.ini 配置文件中添加与覆盖相同的参数。

    【讨论】:

    • 另外,我需要在 Vagrantfile 中添加转发端口如下:config.vm.network "forwarded_port", guest: 5984, host: 5984