如何在多个项目中使用vagrant

时间:2015-05-05 21:37:47

标签: vagrant puphpet vagrant-plugin

我是Vagrant的新手,我正在试用PuPHPet以便开始运行。我可以让debian盒子运行起来并进入它。这是我不清楚的工作流程。

目前我将PuPHPet配置下载到名为vagrant的文件夹中,我可以cd/进入并运行vagrant up然后vagrant ssh。我感到困惑的是我在放置文件的位置上做错了。

您是否按项目将设置文件直接下载到项目目录中?或者我将其下载到目录中,例如C:/sites/vagrant,然后此目录运行我的环境,配置文件指向项目文件夹,例如C:/sites/project_one

在我看来,PuPHPeT设置它然后用于所有项目,如果我想按照我通过GUI选择的debian。但我真的很困惑!

1 个答案:

答案 0 :(得分:3)

简答

我建议您将PuPHPet文件,生成的Vagrantfile及其环境保存在与您的站点(源)文件目录不同的目录中,因为这对我来说似乎更有条理和安全。为每个项目设置一个新的虚拟机是完全没问题的,但我更喜欢设置一个单独的Vagrant盒子并让它同时为我的所有项目提供服务所以我不会经常把盒子放在上面和下来在项目之间切换。

说明

要执行此操作,请在PuPHPet.com上配置“共享文件夹对”以映射文件夹来源(源文件所在的/source/code/path/name您的主计算机)到您的每个项目的{strong>文件夹目标(Vagrant生成的虚拟机上的/destination/path/name,您的Vagrant生成的Web服务器可以找到它们){{3} })。配置Web服务器(使用PuPHPet的 Web服务器配置页面)以引用此类/destination/path/name目录,这些目录将这些工作文件映射到可用的服务器名称,服务器别名和文档根目录。

作为警告,请勿将/var/www文件夹直接用作文件夹目标。在某些配置中,使用Vagrant配置时screenshot

在PuPHPet创建的config.yaml文件中,您会看到如下条目:

synced_folder:
    vflsf_12randomlettersandnumbers:
        source: /Users/unrivaled/www-development-source-files
        target: /var/www/dev

在PuPHPet.com上,您可以在其中配置您的环境,您可以在其中配置“共享文件夹对”。这是您告诉Vagrant 您的文件现在的位置(在您的主计算机上)和您希望它们在您的Vagrant生成的虚拟化环境中出现

这里要掌握的一个重要概念是我使用“是”和“出现”这两个词。

您的文件“是”在您的计算机上 - 您可能用于编辑和调试项目的文件,并且您希望从中运行PuPHPet来托管Vagrant生成的Web服务器。这是您的“主机”操作系统,您的开发文件(源代码)将始终位于此处。您永远不需要在主计算机和Vagrant生成的Web服务器之间来回复制它们。

相比之下,当您运行vagrant up时,您的文件会“显示”在Vagrant生成的Web服务器上,这会在Vagrant生成的虚拟化环境中生成“来宾”操作系统,其中Web服务器,数据库引擎等等。请注意,您不是在那里复制文件(在“guest”操作系统上)。相反,按照您之前提到的使用“共享文件夹对”,Vagrant会让他们出现

文件夹来源表示源文件所在的主计算机(“主机”操作系统)上的位置。

文件夹目标表示虚拟计算机上的位置(“访客”操作系统),您希望Vagrant在客户操作系统中显示它们。

通过这种方式,您只需在开发环境中编辑文件,无论它们在何处发生;和Vagrant将确保您的Vagrant生成的Web服务器能够即时,实时地查看这些文件。即使您vagrant destroy这个生成的Web服务器环境,您的源文件也将完全不受影响。只需重新创建一个新环境(vagrant up),然后bam!你去吧回到商业中。