已解决:您无权访问此服务器

许多 Web 服务器配置面临与文件权限相关的问题。 它通常使访问者无法访问服务器,并以 403 错误的形式出现。 通常,错误消息类似于“禁止访问:您无权访问此服务器上的 /”。 它可以是任何形式的 Forbidden:您无权访问此资源。

类似的问题也可能是由于在 Apache 配置文件甚至因为损坏 .htaccess 文件。 本指南提供所有这些问题的分步解决方案。 从第一个解决方案开始,一次尝试一个。

是什么原因造成的 Apache 403错误?

这是一个相当常见的 403 错误 Apache的结局是由无数问题引起的。 但是,在大多数情况下,由于缺少公开访问站点所需的适当权限而发生此错误。 除此之外,WordPress网站经常因为不好的原因而面临这个问题 .htaccess 文件。

此外,由于 Apache 在 2.4 版中,指令的工作方式发生了一些变化。 这也可能会限制公众访问您的网站并导致 403 禁止错误。

1.修复文件权限以避免错误

由于缺乏适当的权限,大多数人都会遇到这种常见的 403 错误。 如果网站 admin 忘记启用对外部世界的读取访问权限,则最终用户将无法访问所请求的资源。 这通常是此错误的根本原因。

例如,假设您尝试访问 WordPress 站点上名为 textbook.php 的文件,但出现错误提示您无权访问此服务器上的 /textbook.php。 这意味着该文件在那里,但站点所有者已禁用对公共用户的访问。

如果你是一个网站 admin 相反,您需要确保用于公共访问的文件具有适当的读取权限。 否则,如果您在公共站点上遇到此错误,请通知站点管理员解决此问题。

为可公开访问的文件设置正确的权限可能有点棘手。 这就是为什么管理员应该从绝对零权限开始并根据需要添加它们。 拥有权限模式为的文件夹是个好主意 755 和文件 644.

对于一个简单的网站,目录需要有 执行 权限,文件应该有 允许。 确保不对文件授予执行权限。 恶意用户可以通过此类文件获得对公共服务器的不必要访问权限

权限模式为 , 执行 访问权限分别为 4、2 和 1。 因此,目录的权限模式为 755 意味着只有所有者才能完全访问目录内容。 组用户和其他人只能读取和执行。 类似地,文件的 644 权限模式为所有者提供读写访问权限,而对其他所有人提供只读访问权限。

要解决诸如禁止的错误:您无权访问任何服务器上的此资​​源,请修复您的 webroot 目录权限。 以下命令使用 chmod 实用程序将目录权限设置为 755:

sudo find /var/www/html -type d -exec chmod 755 {} ;

此命令假定您使用的是默认文档根目录 Apache 持有您的网站。 如果您使用的是不同的目录,请相应地替换目录名称。 使用以下命令将所有文件权限更改为 644:

sudo find /var/www/html -type f -exec chmod 644 {} ;

上面的命令使用 find 实用程序来定位单个文件并通过 chmod 设置正确的权限。 结局 {} 保存 find 命令返回的文件路径,以及 分号 (;) 标志着迭代的结束。

此外,您还可以单独更改文件权限。 例如,下面的命令将更改textbook.php 对web 根目录的权限并使其可公开访问。 因此,下次有人尝试访问此文件时,他们将不会看到可怕的“您无权访问此资源错误”。

sudo chmod 644 /var/www/html/textbook.php

根据需要更改所有文件权限后,重新启动 Apache 服务器让您的更改生效。

sudo systemctl restart apache2.service

此命令重新启动 Apache Ubuntu 上的服务器。 然而,许多基于 RPM 的发行版,如 RHEL 或 CentOS 安装 Apache 作为 httpd. 对于此类系统,请改用以下命令:

sudo systemctl restart httpd

2. 修复 WordPress 网站的 .htaccess 文件

.htaccess 文件用作分布式配置文件并告诉 Apache 如何处理每个目录的配置更改等事情。 有时此文件可能会损坏,并可能导致“您无权访问此服务器上的 /”错误。

幸运的是,如果这是导致服​​务器上出现 403 错误的原因,您可以通过创建新的 .htaccess 文件轻松解决此问题。 为了为您的网站创建一个新的 .htaccess 文件,首先,登录到您的 WordPress 仪表板。 然后,点击 设置 > 固定链接.

您无需在此处进行任何其他更改。 只需点击 Save 变化 按钮,WordPress 将为您生成一个新的 .htaccess 文件。

因此,每当您看到“您无权访问此资源”时 Apache 服务器,尝试创建一个新的 .htaccess 文件。 这种方法通常适用于 WordPress 网站。

3. 配置指令在 Apache 配置文件

Apache 2.4 使用了一个名为的新配置模块 mod_authz_host. 该模块公开了几个新指令。 简而言之,这实现了以下规则:

  • 要求所有授予: 允许所有请求
  • 要求全部拒绝: 拒绝所有请求
  • 需要主机 safe.com: 只允许来自 safe.com 的请求

如果你正在使用 Apache 2.4、确保你的主配置文件包含以下代码块。 您可以使用 Vim 等简单的文本编辑器查看该文件的内容。 如果缺少此块,请在配置文件中添加此块。 然后,您可以保存并退出 Vim。

vim /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>

此外,如果您正在运行基于 RHEL 的 Web 服务器,则需要轻松访问 /var/www 在你的部分 Apache 配置文件。 所以请确保 /etc/httpd/conf/httpd.conf 文件包含以下代码块。

vim /etc/httpd/conf/httpd.conf

代码:

<Directory "/var/www">
AllowOverride None
Require all granted
</Directory>

最后,重启 Apache 服务器使用以下命令之一:

# for Ubuntu and Debian
sudo systemctl restart apache2.service

# for RHEL and CentOS
sudo systemctl restart httpd

修复 Apache Linux 上的服务器权限错误

很多人在访问公共网站或配置自己的网站时都会遇到上述问题。 本指南涵盖了对此问题的几个修复。 重置文件系统权限 Apache 应该是首选。 如果更改权限后错误仍然存​​在,请尝试创建一个新的 .htaccess 文件并确保在您的文件中正确设置指令 Apache 配置文件。

还有更多问题可能导致与此类似的服务器端错误。 您需要精通解决 Linux 服务器问题,以使您的服务器在这种情况下启动并运行。