我正在使用puphpet.com工具设置Vagrant框。
现在,我能够ssh到它并在浏览器上打开IP,但我无法通过puphpet访问我之前设置的VHost。
我已经使用OSX编辑了我的主机文件(/ etc / hosts),以便将IP 2.168.56.101提供给 lab.dev 。现在它工作正常,但我无法访问来宾机上的虚拟机!!!!
我正在使用PHP Laravel框架,我需要访问指向/var/www/lab.dev/public/
的服务器名称。我非常感谢非常详细的回答,因为我对这一切都很陌生。
答案 0 :(得分:0)
配置共享文件夹对。这是在“部署目标>本地”下。
让我们假设您的OS / X机器上有这个目录结构:
/ Users / unrivaled / Documents / laravel-project(项目文件到这里)
/ Users / unrivaled / Documents / laravel-project / public(Web根文件)
文件夹来源表示源文件所在的主计算机(“主机”操作系统)上的位置;例如:/Users/unrivaled/Documents/laravel-project
文件夹源必须位于您的OS / X计算机上,正好是您的Laravel文件所在的位置。
文件夹目标表示虚拟计算机上的位置(“访客”操作系统),您希望Vagrant使其对Web服务器可见;例如:/var/www/lab
文件夹目标可以是虚拟机中的Apache或Nginx可以访问它的任何位置。
文件夹来源(本地计算机)== 文件夹目标(虚拟机)
/ Users / unrivaled / Documents / laravel-project (本地机器)== / var / www / lab (虚拟机)
配置您的网络服务器。您的服务器名称可以是您想要的任何内容;在这个例子中,我们使用“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中配置的“共享文件夹对”。以上
通常,根据需要配置PuPHPet中的所有其他内容。
vagrant up
以启动并运行虚拟机。如果它在此阶段不起作用,您需要在继续之前解决所有问题。vagrant ssh
登录虚拟机,然后ifconfig
应该可以正常运行。 不要依赖PuPHPet中定义的IP地址。您的虚拟机提供商可能会覆盖此值,您需要知道实际的实际IP地址。 /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服务器的文档根目录。