Apache 目录列表:权限被拒绝

Apache 目录列表:权限被拒绝

所以,我想实现一件很容易的事情:我希望我的 Apache 网络服务器提供其自动生成的目录列表,因为它涉及静态 HTML 和 PDF 文件。

但是,我总是收到 HTTP 403 响应。

错误日志显示:

AH01276: Cannot serve directory /var/www/html/my-website/: No matching DirectoryIndex (index.php,index.html,index.htm) found, and server-generated directory index forbidden by Options directive

这是输出ls -l /var/www/html/my-website

drwxr-xr-x. 18 root root 4096 Jul  5 10:06 /var/www/html/my-website

来自getfacl /var/www/html/my-website

getfacl: Removing leading '/' from absolute path names
# file: var/www/html/my-website
# owner: root
# group: root
user::rwx
group::r-x
other::r-x

这是虚拟主机配置部分的相关内容:

<VirtualHost 192.168.1.2:80>
    ServerName my-website.local
    AddDefaultCharset iso-8859-1
    DirectoryIndex index.php index.html index.htm
    Alias / /var/www/html/my-website/
    DocumentRoot /var/www/html/my-website/
    <Directory /var/www/html/my-website/>
        AllowOverride none
        Options +Indexes
    </Directory>
</VirtualHost>

因此,既然o+rx已设置,我希望它是可读的。我还遗漏了什么?

答案1

所以,我现在可以自己回答这个问题了。我把这个答案贴在这里,以防别人在花 4 个小时解决之前遇到同样的问题。

如果虚拟配置正确,那么全局配置可能不正确。

在这种情况下,有另一个配置文件被welcome.conf命名,显然是 CentOS 的默认文件,它阻止了目录索引的传递。此配置文件的目的是加载欢迎页面,而不是列出目录。此配置文件的上下文是全局的。

答案2

你可能已经

Options -Indexes

与我的网站定义相关的某处。

将其更改为

Options +Indexes

并重新加载/重启/刷新。

否则,使用以下命令检查 Selinux 上下文:

# ls -la --context /var/www/html/my-website
# chcon -R system_u:object_r:httpd_sys_content_t /var/www/html/my-website/

相关内容