由于其稳定性和可靠性,Apache是最流行和广泛使用的开源Web服务器之一。目前网络服务器占据着巨大的市场,尤其是在网络托管平台中。
在服务器当中,尽管已经成功安装运行了Apache,但有时候设置网站后在浏览器上收到““Forbidden – You don’t have permission to access / on this server””的错误消息提示。这是一个很常见的错误,很多用户在测试网站时都经历过。那么这个错误究竟是由什么原因引起的,又该如何解决?
什么是403Forbidden错误?
也被称为403禁止错误,Apache的“Forbidden Error”是你试图访问受限制或禁止的网站时显示在网页上的错误。
这是一个标准化的HTTP状态代码,表示Web服务器理解请求,但由于权限问题而无法授权访问。
它通常会显示在浏览器上。
此外,错误可以在浏览器上以多种方式显示,如下所示:
- HTTP Error 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错误原因分析
“Forbidden – You don’t have permission to access / on this server”也称为403禁止错误,Apache的“禁止错误”是当用户尝试访问受限制或禁止的网站时显示在网页上的错误。如下图所示,它通常会在浏览器上显示。
那么是什么导致了这样的错误?
出现“ 403 Forbidden Error ”的主要原因如下:
1、不正确的文件/目录权限
由于webroot目录上的文件/文件夹权限不正确,可能会触发此错误。如果未调整默认文件权限以授予用户访问网站文件的权限,则在Web浏览器上弹出此错误的可能性很高。
2、Apache配置文件配置错误
此错误也可归因于Apache其中的一个配置文件错误配置而导致,这可能是配置文件中包含的不正确参数或缺少指令。
3、.htaccess文件配置错误
遇到此HTTP响应代码的另一个常见原因是.htaccess
文件损坏或配置不正确。发生这种情况时,通常会在修改 .htaccess 文件后出现403 Forbidden错误。
通常,用户可以通过生成新的.htaccess 文件或纠正其配置来解决此问题。
修复“403 禁止错误”
如果遇到此错误,可以采取以下几个步骤来解决此问题。
1、调整webroot目录的文件权限和所有权
已知不正确的文件权限和目录所有权会限制对网站文件的访问。因此,首先,请确保将文件权限递归地分配给webroot目录,如下所示。
webroot目录应始终具有EXECUTE权限,index.html
文件应具有READ权限。
$ cd /path/to/webroot/directory $ sudo find . -type d -exec chmod 755 {} \; $ sudo find . -type f -exec chmod 644 {} \;
上面的find命令用于查找当前目录下的所有(.)
目录(文件夹)和文件,并将其权限设置为755(目录)和644(文件)。
此外,将文件和目录的所有权调整为特定用户 ( tecmint ) 和组www-data
或apache
使用chown 命令,如图所示:
$ sudo chown -R tecmint: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服务器。
3、修复.htaccess文件配置
如果你的Web目录中有 .htaccess
文件,请检查其配置。配置错误或任何语法错误都可能阻止用户访问特定的网页内容。
注释掉行或暂时删除该文件,看看是否可以解决问题。
如果尝试所有这些步骤后你仍然收到错误,请检查虚拟主机文件的配置。
总结
如果在尝试以上所有这些步骤后仍然出现403 Forbidden错误,请检查Apache虚拟主机文件配置是否正确,以便解决该类问题。
其实,在使用Apache服务器建站时,可能经常会遇到“Forbidden – You don’t have permission to access / on this server”的错误,其主要原因可能是不正确的目录权限和配置文件而引起的。如果出现该错误,可以参考上述内容加以解决,如果仍然无法解决,可以查看虚拟主机的配置文件是否正确,或者联系你的主机商协助解决。