具有FQDN的Vagrant Vhost(完全合格的域名)

时间:2014-06-21 23:55:02

标签: vagrant vhosts

使用以下域名:
development.mysite.com

我想设置一个Vagrant vhost,允许我在浏览器中访问此位置。

据我所知,它不会让我使用端口80,所以即使我将我的主机文件更改为:

127.0.0.1 development.mysite.com

它仍然无法找到它。

有没有人有想法?


更新

VagrantFile

# -*- mode: ruby -*-
# vi: set ft=ruby :

# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  # Every Vagrant virtual environment requires a box to build off of.
  config.vm.box = "hashicorp/precise32"

  # Networking
  config.vm.network "forwarded_port", guest: 80, host: 8000
  config.vm.network "private_network", ip: "192.168.33.10"

  # Synced folders
  config.vm.synced_folder ".", "/var/www"

  # Provisioning
  config.vm.provision :shell, :inline => "apt-get update --fix-missing"

  config.vm.provision :shell do |shell|
    shell.inline = "mkdir -p /etc/puppet/modules;
                    (puppet module install example42/puppi; true)
                    (puppet module install example42/apache; true)
                    (puppet module install example42/php; true)
                    (puppet module install puppetlabs/stdlib; true)
                    (puppet module install puppetlabs/mysql; true)
                    (puppet module install saz/vim; true)"
  end

  config.vm.provision "puppet" do |puppet|
    puppet.facter = {
      "fqdn" => "development.eatologie.com",
      "hostname" => "www",
      "docroot" => '/var/www/html/'
    }
    puppet.manifests_path = "puppet"
    puppet.manifest_file  = "site.pp"
  end
end

Puppet site.pp

###########################
# Eatologie Puppet Config #
###########################
# OS          : Linux     #
# Database    : MySQL 5   #
# Web Server  : Apache 2  #
# PHP version : 5.4       #
###########################

# Vim
class { 'vim': }

# Puppi
class { 'puppi': }

# Apache setup
class { "apache":
    puppi        => true,
    puppi_helper => "myhelper",
}

apache::vhost { $fqdn :
    docroot => $docroot,
    server_name => $fqdn,
    priority            => '',
    template            => 'apache/virtualhost/vhost.conf.erb',
}

apache::module { 'rewrite': }

# PHP Extensions
class {"php":}

php::module { ['xdebug', 'mysql', 'curl', 'gd']:
    notify => Service['apache2']
}

# MySQL Server
class { '::mysql::server':
  root_password    => 'abc123',
}

mysql::db { 'eatdb':
    user     => 'admin',
    password => 'abc456',
    host     => 'localhost',
    grant    => ['all'],
    charset => 'utf8',
}

# Eatologie Setup

file { $docroot:
    ensure  => 'directory',
}

$writeable_dirs = ["${docroot}cache/", "${docroot}cache/css/", "${docroot}cache/css/js/"]

file { $writeable_dirs:
    ensure => "directory",
    mode   => '0777',
    require => File[$docroot],
}

1 个答案:

答案 0 :(得分:4)

据我所知,这是您的Vagrantfile中的相关部分:

# Networking
config.vm.network "forwarded_port", guest: 80, host: 8000
config.vm.network "private_network", ip: "192.168.33.10"

这意味着您的Vagrantbox可以通过ip 192.168.33.10和端口8000访问。因此,您的主机文件应该说

192.168.33.10   development.eatologie.com

而不是

127.0.0.1   development.mysite.com

通过此更改,您应该development.eatologie.com:8000

访问您的网站

有关详情,请查看forwarded portsprivate networking的Vagrant文​​档页面。对于专用网络部分,请注意,如果您为Vagrant框分配静态IP(就像在设置中那样),则必须确保本地网络上的其他设备不会使用IP。