许多 Web 服务器配置都面临与文件权限相关的问题。 它通常会导致访问者无法访问服务器,并以“403 Forbidden”错误的形式出现。 通常,错误消息类似于“403 Forbidden:您无权访问此服务器上的/”。 它可以是“禁止:您无权访问此资源”形式的任何内容。
由于 Apache 和 NGINX 配置文件中的问题,甚至由于 .htAccess 文件损坏,也可能会出现类似的问题。 以下是关于所有网站出现 403 问题的三个逐步解决方案。
是什么原因导致 Apache 和 NGINX 403 Forbidden 错误?
这是 Apache 和 NGINX 端相当常见的 403 错误,由无数问题引起。 但是,在大多数情况下,错误的发生是由于缺乏公开访问站点所需的适当权限。 除此之外,wordpress 网站经常因 .htaccess 文件错误而面临此问题。
此外,自 Apache 2.4 版以来,指令的工作方式发生了一些变化。 这还会限制公众访问您的网站并导致“403 禁止”错误。
如何以用户身份修复“403 Forbidden”错误
如果您在使用网站时遇到“403 Forbidden”NGINX 或 Apache 错误,请首先尝试清除浏览器的缓存数据和 cookie。 如果您使用 VPN,请确保禁用它,以防不正确的 VPN 配置导致 403 错误。
另一方面,如果您是网站管理员,则需要知道大多数 Apache 和 NGINX 403 Forbidden 错误是由文件权限设置不当和配置文件错误引起的。
请一一遵循以下给出的解决方案,让您的网站重新正常运行:
1. 修复文件权限以避免 403 错误
大多数人由于缺乏适当的权限而面临这种常见的 403 错误。 如果站点管理员忘记启用对外界的读取访问权限,那么最终用户将无法访问所请求的资源。 这通常是此错误的根本原因。
例如,假设您尝试访问 WordPress 网站上名为 Textbook.PHP 的文件,但出现错误,指出您无权访问此服务器上的 /textbook.php。 这意味着该文件在那里,但网站所有者已禁止公共用户访问。
如果您是网站管理员,则需要确保供公共访问的文件具有适当的读取权限。 否则,如果您在公共网站上遇到此错误,请通知网站管理员解决此问题。
为可公开访问的文件设置正确的权限可能有点棘手。 这就是为什么管理员应该从绝对零权限开始并根据需要添加它们。 最好将文件夹的权限模式设置为 755,将文件设置为 644。
对于一个简单的网站,目录需要有执行权限,文件应该有读取权限。 确保不要授予文件执行权限。 恶意用户可以通过此类文件获得对公共服务器的不需要的访问权限。
读取、写入和执行访问的权限模式分别为 4、2 和 1。 因此,目录的权限模式为 755 意味着只有所有者才能完全访问目录内容。 组用户和其他人只能读取和执行。 同样,文件的 644 权限模式向所有者提供读写访问权限,而向其他人提供只读访问权限。
要解决诸如“禁止:您无权访问任何服务器上的此资源”之类的错误,请修复您的 webroot 目录权限。 以下命令使用 chmod 实用程序将目录权限设置为 755:
1 sudo find /var/www/html -type d -exec chmod 755 {} \;
此命令假设您使用 Apache 的默认文档根目录来保存您的网站。 如果您使用不同的目录,请相应地替换目录名称。 使用以下命令将所有文件权限更改为 644:
1 sudo find /var/www/html -type f -exec chmod 644 {} \;
上面的命令使用 find 实用程序来定位单个文件并通过 chmod 设置正确的权限。 结尾的 {} \ 保存 find 命令返回的文件路径,分号 (;) 标记迭代的结束。
另外,您还可以单独更改文件权限。 例如,以下命令将更改 Web 根目录上的 Textbook.php 的权限并使其可公开访问。 因此,下次有人尝试访问此文件时,他们将不会看到可怕的“您无权访问此资源错误”。
1 sudo chmod 644 /var/www/html/textbook.php
根据需要更改所有文件权限后,重新启动 Apache 或 NGINX 服务器以使更改生效。
1
2 sudo systemctl restart apache2.service
sudo systemctl restart nginx
这些命令分别重新启动 Ubuntu 上的 Apache 和 NGINX 服务器。 然而,许多基于 RPM 的发行版(例如 RHEL 或 CentOS)将 Apache 安装为 httpd。 对于此类系统,请改用以下命令:
1 sudo systemctl restart httpd
2. 修复 Wordpress 网站的 .htaccess 文件
.htaccess 文件充当分布式配置文件,并告诉 Web 服务器如何处理每个目录的配置更改之类的事情。 有时,此文件可能会损坏,并可能导致“您无权访问此服务器上的/”错误。
幸运的是,如果这就是导致服务器上出现 403 错误的原因,您可以通过创建新的 .htaccess 文件轻松修复此问题。 要为您的网站创建新的 .htaccess 文件,请首先登录您的 WordPress 仪表板。 然后,单击“设置”>“固定链接”。
您无需在此处进行任何其他更改。 只需单击“保存更改”按钮,WordPress 就会为您生成一个新的 .htaccess 文件。
因此,每当您在 Apache 服务器上看到“您无权访问此资源”或“无法读取 htaccess 文件,拒绝访问以保证安全”时,请尝试创建一个新的 .htaccess 文件。 此方法通常适用于 WordPress 网站。
3. 在 Apache 配置文件中配置指令
Apache 2.4 使用名为 mod_authz_host 的新配置模块。 该模块公开了几个新指令。 简而言之,这实现了以下规则:
要求全部授予:允许所有请求
要求全部拒绝:拒绝所有请求
需要主机 test.com:仅允许来自 test.com 的请求
如果您使用的是 Apache 2.4,请确保您的主配置文件包含以下代码块。 您可以使用 Vim 等简单的文本编辑器查看该文件的内容。 如果配置文件中缺少此块,请添加此块。 然后,您可以保存并退出 Vim。
1 vim /etc/apache2/apache2.conf
代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14 <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>
此外,如果您正在运行基于 RHEL 的 Web 服务器,则需要轻松访问 Apache 配置文件中的 /var/www 部分。 因此,请确保 /etc/httpd/conf/httpd.conf 文件包含以下代码块:
1 vim /etc/httpd/conf/httpd.conf
代码:
1
2
3
4 <Directory "/var/www">
AllowOverride None
Require all granted
</Directory>
最后,使用以下命令之一重新启动 Apache 服务器:
1
2
3
4
5
6
7 # for Ubuntu and Debian
sudo systemctl restart apache2.service
# for RHEL and CentOS
sudo systemctl restart httpd
修复 Linux 上的 403 Forbidden Server 权限错误
很多人在访问公共网站或配置自己的网站时都会遇到上述问题。 重置 Apache 或 NGINX 服务器的文件系统权限应该是第一个方法。 如果更改权限后错误仍然存在,请尝试创建新的 .htaccess 文件并确保在服务器配置文件中正确设置指令。
还有许多其他问题可能会导致与此类似的服务器端错误。 您需要熟练地解决 Linux 服务器问题,才能在此类情况下启动并运行您的服务器。
还没有评论,来说两句吧...