我已经成功运行了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主机欢迎页面也停止渲染以及禁止的错误。
答案 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
所有非常基本的东西在一周的大部分时间里都没有找到我。我希望这可以帮助别人。
答案 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;
因为之前有效,我不会在文件
上浪费时间修复文件