0

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

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

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

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

4

1 回答 1

0

详细说明

  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. Folder Target代表您的虚拟计算机(“客户”操作系统)上的位置,您希望 Vagrant 使它们对 Web 服务器可见;例如: /var/www/lab 文件夹目标可以是虚拟机中 Apache 或 Nginx 可以到达的任何位置。

    文件夹源(本地机器)== 文件夹目标(虚拟机)
    /Users/unrivaled/Documents/laravel-project(本地机器)==  /var/www/lab(虚拟机)
  5. 配置您的网络服务器。您的服务器名称可以是您想要的任何名称;在这个例子中,让我们使用"lab.dev"。配置您的服务器别名;在这种情况下,请使用“www.lab.dev”。 您的服务器名称(或别名)必须与您在/etc/hosts文件中的条目相匹配;见下文。配置您的Document Root。这是您的网站文件所在的虚拟机上的文件夹,以及将由 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 步中定义的服务器名称(或服务器别名)。

这个怎么运作


使用此示例中的设置拥有一个正常工作的 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 服务器的文档根目录。

于 2015-07-22T00:05:10.650 回答