由于其稳定性和可靠性,Apache是最流行和广泛使用的开源Web服务器之一。目前网络服务器占据着巨大的市场,尤其是在网络托管平台中。
在服务器当中,尽管已经成功安装运行了Apache,但有时候设置网站后在浏览器上收到““Forbidden – You don’t have permission to access / on this server””的错误消息提示。这是一个很常见的错误,很多用户在测试网站时都经历过。那么这个错误究竟是由什么原因引起的,又该如何解决?
403 Forbidden错误原因分析
“Forbidden – You don’t have permission to access / on this server”也称为403禁止错误,Apache的“禁止错误”是当用户尝试访问受限制或禁止的网站时显示在网页上的错误。如下图所示,它通常会在浏览器上显示。
此外,该错误可能会在浏览器上以其它多种方式表现出来,具体如下:
- HTTP错误403 – Forbidden
- Forbidden: You don’t have permission to access [directory] on this server
- 403 Forbidden
- Access Denied You don’t have permission to access
- 403 forbidden requests forbidden by administrative rules
那么是什么导致了这样的错误?
出现“ 403 Forbidden Error ”的主要原因如下:
1、不正确的文件/目录权限
由于webroot目录上的文件/文件夹权限不正确,可能会触发此错误。如果未调整默认文件权限以授予用户访问网站文件的权限,则在Web浏览器上弹出此错误的可能性很高。
2、Apache配置文件配置错误
此错误也可归因于Apache其中的一个配置文件错误配置而导致,这可能是配置文件中包含的不正确参数或缺少指令。
修复“403 禁止错误”
如果遇到此错误,可以采取以下几个步骤来解决此问题。
1、调整webroot目录的文件权限和所有权
已知不正确的文件权限和目录所有权会限制对网站文件的访问。因此,首先,请确保将文件权限递归地分配给webroot目录,如下所示。
webroot目录应始终具有EXECUTE权限,index.html
文件应具有READ权限。
$ sudo chmod -R 775 /path/to/webroot/directory
此外,还应该调整目录所有权,命令如下:
$ sudo chown -R user:group /path/to/webroot/directory
其中用户是常规登录用户,组是www-data
或者apache
。
最后,重新加载或重新启动Apache服务器以使更改生效。
$ sudo systemctl restart apache2 或者 $ sudo systemctl restart httpd
如果上面的方法这不能解决问题,请继续执行下一步。
2、调整Apache主配置文件中的指令
如果是基于Debian的Linux系统,在Apache的主配置文件/etc/apache2/apache2.conf
中,确保你有这个代码块:
<Directory /> Options FollowSymLinks AllowOverride None Require all denied </Directory> <Directory /usr/share> AllowOverride None Require all granted </Directory> <Directory /var/www/> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory>
保存并退出,然后重新启动Apache。
如果是在基于RHEL的发行版/CentOS系统上运行Apache,请确保对Apache主配置文件中/etc/httpd/conf/httpd.confd
对/var/www
目录的访问权限。
<Directory "/var/www"> AllowOverride None Require all granted </Directory>
然后保存所有更改并重新加载Apache服务器。
总结
如果在尝试以上所有这些步骤后仍然出现403 Forbidden错误,请检查Apache虚拟主机文件配置是否正确,以便解决该类问题。
其实,在使用Apache服务器建站时,可能经常会遇到“Forbidden – You don’t have permission to access / on this server”的错误,其主要原因可能是不正确的目录权限和配置文件而引起的。如果出现该错误,可以参考上述内容加以解决,如果仍然无法解决,可以查看虚拟主机的配置文件是否正确,或者联系你的主机商协助解决。