Vagrant 403 Forbidden

时间:2013-08-06 10:38:07

标签: apache2 vagrant

我已经成功运行了Vagrant大约一个星期。昨晚我运行了流浪汉重装,现在我再也无法访问我的网站了。

我的文件位于/ vagrant / Sites。起初我的“欢迎页面”住在/ vagrant /在

呈现的网站
http://localhost:4567/ 

我的所有项目都是网站下的文件夹。例如,/ vagrant / Sites / test不会呈现index.html。我得到以下

禁止

您无权访问此服务器上的/。 位于localhost端口4567的Apache / 2.4.6(Ubuntu)服务器

vhost看起来像:

<VirtualHost *:80>
  DocumentRoot "/vagrant/Sites/test"
  ServerName test
  <Directory "/vagrant/Sites/test">
    AllowOverride All
  </Directory>
</VirtualHost>

vhost由root拥有。我的项目文件归vagrant和chmod'ed 0777所有。

在没有成功之后,我做了一个完全的流浪汉破坏,随后流浪,然后localhost主机欢迎页面也停止渲染以及禁止的错误。

4 个答案:

答案 0 :(得分:7)

我的预感是,这根本不是流浪汉问题,而只是Apache配置故障。我可以考虑一些事情来检查。

首先,显然是确认运行apache的用户具有DocumentRoot文件夹的读取和执行权限。

由于您提到了Apache 2.4,there have been changes in the configs from 2.2。确保您的Allow from all语句现在为Require all granted。 (如果您仍然使用2.2,则需要确保他们说Allow from all而不是Deny from all。)在任何一种情况下,您都可以在每个<VirtualHost>中单独设置,或者在主<Directory />文件的httpd.conf块中设置默认值。

更加模糊,你可以查看selinux,虽然我很确定默认情况下它不会出现在Ubuntu中。 (例如,它在CentOS中。)

答案 1 :(得分:3)

这已经解决了,最后归结为一些非常简单的事情。

  • 使用“全部授权”代替“全部允许”
  • 将每个网站的内容放在同一级别/vagrant/Sites/default/vagrant/Sites/test/vagrant/Sites/real-site
  • 将.conf扩展名添加到vhost名称,例如test.conf和real-site.conf
  • 将AllowOverride All添加到vhosts以尊重网站的.htaccess文件(我意识到这是我原来的帖子,因为我试图解决这个问题而丢失了)

所有非常基本的东西在一周的大部分时间里都没有找到我。我希望这可以帮助别人。

答案 2 :(得分:2)

更改DocumentRoot时遇到了同样的问题。

由于您已将 DocumentRoot 更改为&#34; / any / path / foo / bar&#34; ,因此请确保您已设置权限on&#34; apache2.conf&#34;为这条道路。

搜索:

<Directory /any/path/foo/bar>

在apache2.conf中

添加一个像这样的新块:

<Directory /any/path/foo/bar>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
</Directory>

而我的猜测是一切都会好起来的!

答案 3 :(得分:0)

cd /etc/apache2/sites-available
for file in `ls *`; do sed 's/\(.*<\/Directory.*>\)/Require\ all\ granted\n\1/' $file > $file.new;mv $file.new $file ; done;

因为之前有效,我不会在文件

上浪费时间修复文件