代码之家  ›  专栏  ›  技术社区  ›  Gregory Schultz

如何获取多机Vagrant文件以使用一个VM?

  •  0
  • Gregory Schultz  · 技术社区  · 9 年前

    这是我到目前为止所拥有的:

    Vagrant.configure("2") do |config|
    config.vm.box = "ubuntu/trusty64"
    config.vm.network :forwarded_port, host: 8080, guest: 80
    config.vm.network "private_network", ip: "172.28.128.3"
    
    config.vm.define "myoffercode" do |vm1|
        vm1.vm.synced_folder "/Users/gregoryschultz/Sites/myoffercode", "/var/www/html"
    end
    
    config.vm.define "dailybayou" do |vm2|
        vm2.vm.synced_folder "/Users/gregoryschultz/Sites/dailybayou", "/var/www/html"
    end
    end
    

    1 回复  |  直到 9 年前
        1
  •  2
  •   Frederic Henri    9 年前

    是否有一种多机器设置方法,其中每个配置使用相同的机器?

    不,你不能,1个配置机器=1个虚拟机,所以当你写

    config.vm.define "myoffercode" do |vm1|
        vm1.vm.synced_folder "/Users/gregoryschultz/Sites/myoffercode", "/var/www/html"
    end
    

    它实际上创建了一个由vagrant管理的新VM

    我设计网站,我希望我的虚拟机被配置为作为一个具有IP地址的Web服务器运行,并让每个配置加载同步文件夹和域名。

    解决方案是使用1个虚拟机,并使用 Virtual hosts

    因此,在虚拟机中,您可以同步所有项目

    Vagrant.configure("2") do |config|
      config.vm.box = "ubuntu/trusty64"
      config.vm.network :forwarded_port, host: 8080, guest: 80
      config.vm.network "private_network", ip: "172.28.128.3"
    
      config.vm.synced_folder "/Users/gregoryschultz/Sites/myoffercode", "/var/www/html/myoffercode"
      config.vm.synced_folder "/Users/gregoryschultz/Sites/dailybayou", "/var/www/html/dailybayou"
    end
    

    在您的Apache配置中

    # Ensure that Apache listens on port 80
    Listen 80
    <VirtualHost *:80>
        DocumentRoot "/var/www/html/dailybayou"
        ServerName dailybayou.localdev
    
        # Other directives here
    </VirtualHost>
    
    <VirtualHost *:80>
        DocumentRoot "/var/www/html/myoffercode"
        ServerName myoffercode.localdev
    
        # Other directives here
    </VirtualHost>
    

    确保将本地主机文件更新为 172.28.128.3 这些网站