4

我一直在努力尝试使用 Vagrant 连接到 centos 6.4 vm。我正在使用 salt 作为配置代理,并且我已经成功安装了 apache、php、mysql 包。当我 ssh 进入盒子时,apache 运行良好。我在 /var/www 中添加了一个 index.html 文件,当我 curl localhost:80 时我得到了内容

Vagrant.configure("2") do |config|
  ## Chose your base box
  config.vm.box = "centos63"
  config.vm.box_url = ""

  ## For masterless, mount your salt file root
  config.vm.synced_folder "salt/roots/", "/srv/"


  ## Use all the defaults:
  config.vm.provision :salt do |salt|
    salt.verbose = true
    salt.run_highstate = true
    salt.minion_config = "salt/minion"
 end
end

Vagrant::Config.run do |config|
 config.vm.forward_port 80, 8080
 config.vm.share_folder "mypath", "/var/www/leo", "."
end

我在本地机器上运行 sudo lsof -i :8080 并没有给我任何结果。我还使用 iptables -F 清除了客户机中的 iptable 配置。当我卷曲客人机器时

 curl -v 'localhost:8080'                            
* About to connect() to localhost port 8080 (#0)
*   Trying ::1...
* Connection refused
*   Trying 127.0.0.1...
* Connection refused
*   Trying fe80::1...
* Connection refused
* couldn't connect to host
* Closing connection #0
curl: (7) couldn't connect to host

我需要安装来宾添加吗?我四处寻找如何安装它,但我不确定它是否必须安装在主机或来宾上。不知道还有什么可以尝试的。

4

2 回答 2

3

您在这里尝试做的事情是不可能仅使用 vagrant 而不运行 vagrant as root。我相信你可以运行 Vagrant,root但 VirtualBox 不会同意这一点。您可以继续使用端口号,或者如果您想要或需要使用端口 80,有一种方法。

当我的一个客户要求我进行 Wordpress 多站点设置时,我遇到了这个问题。使用 Wordpress MS,您不能在 URL b/c 中包含端口号,某些 URL 映射将无法正常工作。当我发现这一点并且不想重新使用 MAMP 之类的程序时,我感到很惊讶。

无论如何,这里有两种方法可以实现这一目标(都不是很难)。我是 Mac 用户,所以这些是 Mac 特定的答案,我会看看是否有 Windows 版本,并在我可以测试时更新我的​​答案以确保(见下文,有一种方法)。

方式 #1(Mac IP 防火墙实用程序):

在你的流浪文件中

config.vm.forward_port 80, 8080
config.vm.forward_port 443, 8443

这很正常。

现在打开终端,您可以使用 ipfw 实用程序

sudo ipfw add 100 fwd 127.0.0.1,8080 tcp from any to me 80
sudo ipfw add 101 fwd 127.0.0.1,8443 tcp from any to me 443

现在 cmd 不是永久性的,因此如果您重新启动计算机,则必须重新运行 cmd。不过,您可以将其永久化,并且我在下面提供了一个链接,该链接将解释其余的方式 #1。

在 Vagrant 的 80 和 443 端口上进行 Web 开发

方式#2(Mac POW 和 Anvil):

如果您还没有 Pow,请获取!这是一个非常酷的应用程序。安装 Pow 和 Anvil,你可以在那里找到Anvil ,你可以在那里找到Pow

您可以阅读有关如何设置它们的文档,但不要注意“静态”和“机架”站点部分,您需要部分。

您将通过 Pow 使用端口代理从 mycoolsite.dev 获取传入流量并将其转发到虚拟机,例如 mycoolsite.dev:8080,然后虚拟机会将 8080 转发到 80 并备份您的内容将到达的线路。

安装 Anvil/Pow 并设置它们后,运行以下行:

echo 8080 > ~/.pow/mycoolsite

然后单击任务栏中的 Anvil(您可能需要刷新它或关闭并重新打开)并打开站点,就是这样,什么?真的吗?Pow 和 Anvil 摇滚!!

所以我找到了两种方法,我确信你可以用你的 Hosts 文件做一些事情,我曾经做过很多事情。但是,这些其他可用的方法确实很容易忘记那个讨厌的主机文件。

Windows 用户(以及不喜欢前两种方式的 Mac 用户)的注意事项:您可以使用 Vagrant Host Manager,您可以在 github 上找到如何设置它。它是一个 vagrant 插件,基本上会hosts为你编辑你的文件,你所做的就是你的 vagrantfile 配置,然后你就可以继续下去了。我刚刚在 Windows 7 上对其进行了测试,它在那里工作,所以它应该很好,如果您有任何问题,只需查看 github 上的文档或提交问题供 Vagrant Host Manager 团队审查。

于 2014-02-26T02:46:07.347 回答
0

I changed the guest port to 5656 and it worked. When running lsof -i :8080 I didn't see any results so i figured nothing was using that port maybe I was wrong.

于 2013-06-20T11:19:11.273 回答