如何访问流浪盒"客机"从主机?

时间:2014-06-09 12:14:47

标签: laravel vagrant virtualbox vhosts puphpet

我正在使用puphpet.com工具设置Vagrant框。

现在,我能够ssh到它并在浏览器上打开IP,但我无法通过puphpet访问我之前设置的VHost。

我已经使用OSX编辑了我的主机文件(/ etc / hosts),以便将IP 2.168.56.101提供给 lab.dev 。现在它工作正常,但我无法访问来宾机上的虚拟机!!!!

我正在使用PHP Laravel框架,我需要访问指向/var/www/lab.dev/public/的服务器名称。我非常感谢非常详细的回答,因为我对这一切都很陌生。

1 个答案:

答案 0 :(得分:0)

详细说明

  1. 访问PuPHPet.com以构建您的Vagrant文​​件。
  2. 配置共享文件夹对。这是在“部署目标>本地”下。

    让我们假设您的OS / X机器上有这个目录结构:
    / Users / unrivaled / Documents / laravel-project(项目文件到这里)
    / Users / unrivaled / Documents / laravel-project / public(Web根文件)
  3. 文件夹来源表示源文件所在的主计算机(“主机”操作系统)上的位置;例如:/Users/unrivaled/Documents/laravel-project 文件夹源必须位于您的OS / X计算机上,正好是您的Laravel文件所在的位置。

  4. 文件夹目标表示虚拟计算机上的位置(“访客”操作系统),您希望Vagrant使其对Web服务器可见;例如:/var/www/lab 文件夹目标可以是虚拟机中的Apache或Nginx可以访问它的任何位置。

    文件夹来源(本地计算机)== 文件夹目标(虚拟机)
    / Users / unrivaled / Documents / laravel-project (本地机器)== / var / www / lab (虚拟机)
  5. 配置您的网络服务器。您的服务器名称可以是您想要的任何内容;在这个例子中,我们使用“lab.dev”。配置服务器别名;在这种情况下,请使用“www.lab.dev。” 您的服务器名称(或别名)必须与/etc/hosts文件中的条目匹配;请参阅下文。配置文档根目录。这是虚拟机上您的网站文件所在的文件夹以及将由Nginx或Apache提供的文件。 此值必须等于或低于步骤4中定义的文件夹目标;例如,/var/www/lab/public

    请注意示例中我们如何为Web服务器提供 / var / www / lab / public 的访问权限?这实际上是指本地OS / X系统上的 / Users / unrivaled / Documents / laravel-project / public ,这要归功于步骤2中配置的“共享文件夹对”。
  6. 通常,根据需要配置PuPHPet中的所有其他内容。

  7. 运行vagrant up以启动并运行虚拟机。如果它在此阶段不起作用,您需要在继续之前解决所有问题。
  8. 确定虚拟机的IP地址。使用vagrant ssh登录虚拟机,然后ifconfig应该可以正常运行。 不要依赖PuPHPet中定义的IP地址。您的虚拟机提供商可能会覆盖此值,您需要知道实际的实际IP地址。
  9. 在您的主要主机(不是虚拟机)上,编辑/etc/hosts文件:sudo nano /etc/hosts,添加服务器的IP地址,然后是服务器名称(或上面的步骤5 中定义的服务器别名。
  10. 如何运作

    使用此示例中的设置创建有效的Web服务器后,您可以转到 lab.dev 查看您的网站。 OS / X中的浏览器将通过 / etc / hosts 文件将lab.dev解析为服务器的正确IP地址。然后,它会从该IP地址请求您的网页,服务器将所请求的资源与“lab.dev”匹配到相应的服务器名称服务器别名匹配。该服务器名称(/var/www/lab/public)的文档根目录中的文件将由Web服务器处理。

    总之,本地/etc/hosts文件中服务器的IP地址与虚拟机中服务器的IP地址相匹配;本地/etc/hosts文件中的服务器名称与虚拟机上Web服务器中的服务器名称(或服务器别名)相匹配;本地计算机上项目源文件的路径名(文件夹源)映射到虚拟机上的目标目录;最后,该目标目录(public)的子目录对应于Web服务器的文档根目录