尝试访问webroot时发生403错误

我正在搞虚拟主机,现在当试图访问webroot上的文件时,我得到了一个403错误。

这是我的httpd-vhosts.conf:

NameVirtualHost *:80 <VirtualHost *:80> ServerName localhost DocumentRoot /var/www </VirtualHost> <VirtualHost *:80> ServerName test.ts DocumentRoot /var/www/htdocs/vhost_test <Directory /var/www/htdocs/vhost_test> Options Indexes FollowSymLinks Includes AllowOverride All Order allow,deny Allow from all </Directory> </VirtualHost> 

我很确定它是一个虚拟主机的问题,因为我在httpd.conf中包含了httpd-vhosts.conf,并且问题没有了。 它出什么问题了?

编辑:Phil Hollenback帮我解决这个问题的一天后,服务器又开始动作了。 和以前一样的问题,做我之前做的事情,这次没有解决。 所以我试着用这个改变httpd-vhosts.conf:

 <VirtualHost *:80> ServerName localhost DocumentRoot /var/www <Directory /> #added this tag Allow from all <Directory> </VirtualHost> 

现在它正在工作。

Grep for DocumentRoot在你的其他conf文件中,比如httpd.conf,是否在你的虚拟主机之外的任何地方定义? 从你的问题和后续的情况来看,你的默认DocumentRoot实际上是在/ var / www中。 你可以有一个不同的DocumentRoot指向一个完全不同的目录树,而不是/ var / www – 在这种情况下更改/ var / www的权限不会影响任何东西。

另外,当你说“访问webroot上的文件”,你的意思是什么? 你如何访问这些文件?

你做了吗?

 Chown -R www-data:www-data /var/www 

确保Apache正在运行的用户有权访问/ var / www

希望RayQuang帮助

你有没有在任何地方定义的默认文件? 如果缺less或者不包含你用作默认的文件名,那么经常会返回403。