Vagrant Chef配置并激活apache2 virtualhost

时间:2018-01-27 15:08:08

标签: apache vagrant chef virtualhost chef-recipe

我是Vagrant和Chef技术的新手,我有一些问题。

我设法在我新创建的Vagrant机器中插入这个虚拟主机模板:

文件:chef repo / cookbooks / apache2 / templates / default / default.conf.erb

<VirtualHost *:<%= node['apache']['listen_ports'] %> >
        DocumentRoot <%= node['apache']['docroot_dir'] %>
        <Directory <%= node['apache']['docroot_dir'] %> >
                Options FollowSymLinks
                        AllowOverride All
                        Order allow,deny
                        Allow from all
        </Directory>
</VirtualHost>

端口为80,docroot_dir为/ vagrant / web1_docroot。这个/ vagrant目录是我的主机和我的流浪机之间的共享文件夹。

Vagrant机器中的实际虚拟主机最终如下:

<VirtualHost *:80 >
        DocumentRoot /vagrant/web1_docroot/
        <Directory /vagrant/web1_docroot/ >
                Options FollowSymLinks
                        AllowOverride All
                        Order allow,deny
                        Allow from all
        </Directory>
</VirtualHost>

我遇到了两个问题:

1)即使default.conf文件正确包含在我的Vagrant机器中,它也没有被apache激活,所以我必须手动使用“a2ensite default.conf”才能激活它。

2)第二个是激活后,当我去我的localhost时遇到错误,它说“你没有权限访问/在这个服务器上.solucion apache”

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>403 Forbidden</title>
</head><body>
<h1>Forbidden</h1>
<p>You don't have permission to access /
on this server.<br />
</p>
<hr>
<address>Apache/2.4.10 (Debian) Server at localhost Port 80</address>
</body></html>

问题在于DocumentRoot行,当我将路径更改为常规路径(var / www / html)时,它再次起作用。也许这就是问题所在?为什么它无法访问目录?

是否有人遇到此问题或知道如何解决?非常感谢你

1 个答案:

答案 0 :(得分:0)

我们通常不会在现代配置管理布局中烦扰sites-available文件夹。整个系统是为人类手工编辑艺术系统上的文件而构建的。这些天如果你想“禁用”vhost,你只需要删除配置文件,因为它无论如何都存储在你的配置管理系统和版本控制中。因此,请更改您的template资源,将文件直接呈现到conf.dsites-enabled文件夹中。