与vagrant建立一个vhost

时间:2014-07-16 09:59:26

标签: vagrant vhosts

我在设置带有流浪汉的虚拟主机方面遇到了麻烦。 我已在主机上配置了我的主机文件(192.168.33.10 local.dev)。但我不知道如何在我的VM中设置我的虚拟主机以及如何访问它。而且我不想使用木偶或厨师或其他因为我想了解我正在做什么... :) 目前这是我的vhost设置:

ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/support/mysite
<Directory /var/www/html/support/mysite>
     Options -Indexes +FollowSymLinks
     AllowOverride All
     Require all granted
</Directory>

ErrorLog ${APACHE_LOG_DIR}/mysite-error.log
CustomLog ${APACHE_LOG_DIR}/mysite-access.log combined

问题是我真的不知道应该把它作为服务器名称或别名以及如何访问它。 谢谢你的帮助!!!

3 个答案:

答案 0 :(得分:4)

如果您已经在主机文件中添加了要作为虚拟网站运行的所有网站(所有网站都使用相同的IP),那么您需要做的就是在您的apache conf文件中添加多个“VirtualHost”配置并使用相同的您定义的“site.dev”名称。 Apache将读取并指向正确的“DocumentRoot”。

这是一个定义了两个网站的代码段。只需为更多网站添加更多定义:

<VirtualHost *:80>
  ServerAdmin webmaster@localhost
  DocumentRoot /var/www/html/site1/
  ErrorLog logs/site1_error_log
  CustomLog logs/site1_access_log combined
  ServerName site1.dev
</VirtualHost>

<VirtualHost *:80>
  ServerAdmin webmaster@localhost
  DocumentRoot /var/www/html/site2/
  ErrorLog logs/site2_error_log
  CustomLog logs/site2_access_log combined
  ServerName site2.dev
</VirtualHost>

答案 1 :(得分:0)

只要您为每台计算机只提供一个网站,您就不需要虚拟主机 - 在这种情况下local.dev。您可以保留默认的apache2配置。

您需要了解虚拟主机的实际内容才能看到这一点:

虚拟主机的主要目的是可以在一台只分配了一个公共IP地址的计算机上运行具有不同DNS域名的多个网站。虽然有许多网站由于流量低而永远不会耗尽服务器的物理功率,但最明显的优势是可用域的数量现在独立于可用IP(v4)地址的数量,这是非常有限的

这是通过在1.1版中启动的HTTP更改实现的。此更改将Host标头添加到包含服务器域名的HTTP请求。 HTTP服务器通常不会有这些信息:&#34;客户端用来访问我的主机名是什么&#34;,因为DNS解析将在客户端发出HTTP请求之前发生,然后服务器将被访问它的IP地址。

获得来自Host标题的信息,服务器在被其IP地址访问时,可以决定应该服务哪个站点。然后,多个站点将具有不同的文档根文件夹。


但是,您只是从流浪盒中提供一个页面,因此不需要设置虚拟主机。只需使用apache的default一个。

答案 2 :(得分:0)

我认为您的Vagrant Box上的VHost问题有一个更优雅的解决方案。

直接在您的Vagrant文​​件中设置虚拟主机,以便您的配置可以提交到git。

查看Vagrantfile中的设置VHosts的说明:

https://github.com/onema/vagrant-lamp-development#creating-custom-vhosts

关于Chef Solo Here的文档

https://docs.chef.io/chef_solo.html