【问题标题】:how to access vagrant box "guest machine" from host machine?如何从主机访问 vagrant box “guest machine”?
【发布时间】:2014-07-29 23:34:17
【问题描述】:

我正在使用puphpet.com 工具来设置 Vagrant 盒子。

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

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

我正在使用 PHP Laravel 框架,我需要访问指向 /var/www/lab.dev/public/ 的服务器名称。我将不胜感激,因为我对这一切都很陌生

【问题讨论】:

  • 我不确定我是否正确理解了这个问题,但不妨试试vagrant ssh?
  • 我可以 ssh 到 vagrant box ,我想要的是访问 vagrant vhost 。看,我已经在 vagrant box 内设置了一个虚拟主机,我想要的是使用它的服务器名称“例如 lab.dev”从主机“my mac”访问虚拟主机......抱歉英语不是我的母语

标签: laravel vagrant virtualbox vhosts puphpet


【解决方案1】:

详细说明

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

    让我们假设您的 OS/X 机器上的目录结构如下:
    /Users/unrivaled/Documents/laravel-project     (项目文件放在这里)
    /Users/unrivaled/Documents/laravel-project/public     (网络根文件)
  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 步中配置的“共享文件夹对”, em> 上面。
  6. 通常,在 PuPHPet 中配置您认为合适的所有其他内容。

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

工作原理


一旦您使用本示例中的设置拥有一个正常工作的网络服务器,您就可以通过转到 lab.dev 查看您的网站。您在 OS/X 中的浏览器将通过 /etc/hosts 文件将 lab.dev 解析为您服务器的正确 IP 地址。然后它从该 IP 地址请求您的网页,服务器将请求的资源 "lab.dev," 匹配到适当的 服务器名称服务器别名 匹配。该服务器名称 (/var/www/lab/public) 的 Document Root 中的文件将由 Web 服务器处理。

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

【讨论】:

    猜你喜欢
    • 2021-05-07
    • 2023-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-11
    • 1970-01-01
    相关资源
    最近更新 更多