Apache 提供一些文件,其他文件得到 403

djl*_*ley 5 http-status-code-403 apache-2.2

我刚刚使用 Apache 和 Mapserver 安装了 CentOS 5.5。

在尝试为 mapserver 编写教程时,我发现 Apache 在访问任何教程文件时返回 403 forbidden,但对于我创建和上传的任何文件,它都能正常提供服务。

当检查ls -l权限完全相同时,用户和组完全相同,并且文件在同一个文件夹中 - 但我无法.txt从教程中访问 a ,而如果我将内容复制到另一个文件中,我可以访问它。

Apache 的错误日志只是说我没有访问该文件的权限,所以并没有告诉我任何更有用的信息,而且我的搜索都告诉我要确保权限设置正确(它们看起来相同)。

这是一个全新安装,我的网络文档位于 /var/www 并且find /var/www/ -name .htaccess不返回任何内容,因此我相信没有任何.htaccess文件阻止我访问任何内容。

nginx 可以正确提供文件,Apache 不能,所以我认为这将其缩小为 Apache 中的权限问题,但对 Apache 没有很多经验,无法想到从哪里开始。

知道我接下来应该看哪里吗?

qua*_*nta 6

我怀疑您将 SELinux 设置为enforcing默认设置。这是导致此问题的原因,请检查:

# getsebool
Run Code Online (Sandbox Code Playgroud)

或者:

# cat /etc/sysconfig/selinux
Run Code Online (Sandbox Code Playgroud)

尝试这个:

# chcon -R -t httpd_sys_content_t /var/www/webdocs
Run Code Online (Sandbox Code Playgroud)

让我知道它是否有效。

  • 这奏效了。您是否有任何资源可以解释 SELinux 的工作原理,以及为什么它可能允许访问一个文件而不允许访问另一个文件? (2认同)