【问题标题】:How do I add another virtual host?如何添加另一个虚拟主机?
【发布时间】:2013-11-12 23:43:22
【问题描述】:

我创建了一个 debian vm,并通过 puphet 创建了一个虚拟主机,并指向它在我的主机主机文件中创建的本地 ip。但是现在当我尝试创建另一个时它不会工作。我读过其他主题,例如:

creating virtual hosts on a vagrant box 提到使用厨师。但我不明白为什么它不能正常工作?通常,我的意思是在 /etc/apache2/sites-available 中创建一个新的 vhost 文件,启用它并在我的本地计算机主机文件中创建带有 ip 的路径。厨师在做什么我不能手动做的?

这是我的流浪文件:

Vagrant.configure("2") do |config|
  config.vm.box = "debian-wheezy72-x64-vbox43"
  config.vm.box_url = "https://puphpet.s3.amazonaws.com/debian-wheezy72-x64-vbox43.box"

  config.vm.network "private_network", ip: "192.168.56.101"

  config.vm.synced_folder "/Volumes/www", "/var/www", id: "vagrant-root", :nfs => false

  config.vm.usable_port_range = (2200..2250)
  config.vm.provider :virtualbox do |virtualbox|
    virtualbox.customize ["modifyvm", :id, "--name", "wheezyDEB"]
    virtualbox.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
    virtualbox.customize ["modifyvm", :id, "--memory", "512"]
    virtualbox.customize ["setextradata", :id, "--VBoxInternal2/SharedFoldersEnableSymlinksCreate/v-root", "1"]
  end

  config.vm.provision :shell, :path => "shell/initial-setup.sh"
  config.vm.provision :shell, :path => "shell/update-puppet.sh"
  config.vm.provision :shell, :path => "shell/librarian-puppet-vagrant.sh"
  config.vm.provision :puppet do |puppet|
    puppet.facter = {
      "ssh_username" => "vagrant"
    }

    puppet.manifests_path = "puppet/manifests"
    puppet.options = ["--verbose", "--hiera_config /vagrant/hiera.yaml", "--parser future"]
  end

  config.ssh.username = "vagrant"

  config.ssh.shell = "bash -l"

  config.ssh.keep_alive = true
  config.ssh.forward_agent = false
  config.ssh.forward_x11 = false
  config.vagrant.host = :detect
end

【问题讨论】:

    标签: vagrant vagrantfile


    【解决方案1】:

    我想通了,我不确定这是否是正确的做法,但它确实有效,这才是最重要的。如果有人有更好或更快的方法,请告诉我。

    这就是我所做的:

    1) 我最初使用的是 puphet.com 上的 puphet
    2) 我最初使用的是 puphet.com 上的 puphet
    3)我进入了 puhpet 给我的目录,所以我进入了 mypath/puppet/hieradata 并打开 common.yaml
    4)vhosts下:是vhost设置,例如:

    vhosts:
            VO6aT11EHJmL:
                servername: localhost
                docroot: /var/www/public
                port: '80'
                setenv:
                    - 'APP_ENV dev'
                override:
                    - All
            4yNJr1LpLJYA:
                servername: laravel.dev
                docroot: /var/www/vhosts/laravel-dev
                port: '80'
                setenv:
                    - 'APP_ENV dev'
                override:
                    - all
    

    每个虚拟主机都有一个唯一的标识名称,它可以是任何东西。 servername, docroot 的选项看起来很简单,所以修改这些。

    接下来,为了让虚拟机重新调整您的更新,请确保在将这些更改更改为 common.yaml 并完成后停止您的 vagrant,并将类型 vagrant 保存到终端中。一旦它进入您的站点可用目录所在的目录。在我的情况下,我在 debian 下使用 apache; ubuntu 也是如此。

    /etc/apache2/sites-available
    

    您在此处看到的文件,它们的名称与您在 common.yaml 文件中的唯一名称匹配,但其中有数字,例如:

    #-unique_name.conf
    

    所以在 common.yaml 文件中,如果您在 4yNJr1LpLJYA 下创建或修改了设置,则需要在此目录中查找 #-4yNJr1LpLJYA.conf 并匹配您在 common.yaml 文件中的设置。完成后重新启动服务器,在我的情况下是

    sudo service apache reload
    

    也不要忘记将虚拟主机添加到您的本地计算机主机文件中,并将其与 puphet 给您的相同 ip 匹配。例如:

    192.168.56.101 我的虚拟域

    对您要添加的每一个都执行此操作。

    【讨论】:

    • 我尝试在我的 debian VM 上执行此操作,但新主机未出现在 /etc/apache2/sites-available 中。有没有找到其他方法?
    猜你喜欢
    • 2010-10-07
    • 1970-01-01
    • 2017-02-27
    • 1970-01-01
    • 2016-05-12
    • 2012-07-08
    • 2019-11-14
    • 2014-04-22
    • 2017-04-08
    相关资源
    最近更新 更多