我是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)时,它再次起作用。也许这就是问题所在?为什么它无法访问目录?
是否有人遇到此问题或知道如何解决?非常感谢你
答案 0 :(得分:0)
我们通常不会在现代配置管理布局中烦扰sites-available
文件夹。整个系统是为人类手工编辑艺术系统上的文件而构建的。这些天如果你想“禁用”vhost,你只需要删除配置文件,因为它无论如何都存储在你的配置管理系统和版本控制中。因此,请更改您的template
资源,将文件直接呈现到conf.d
或sites-enabled
文件夹中。