我有一个文件夹名称public
,我将 Apache 设置为从中提供文件,由于某种原因,我收到了 403 错误消息:
您没有权限访问此服务器上的 /。
我的解决方案是在它旁边创建另一个文件夹 ( test
) 并使用它来提供文件。
我不明白的是,据我所知,为什么两个文件夹之间的权限是相同的,但使用第一个文件夹却会给我带来权限错误。
我该如何进一步诊断?
ls -l
给出:
drwxrwxr-x 2 daniel daniel 4096 Apr 26 19:10 public
drwxrwxr-x 2 daniel daniel 4096 Apr 26 19:10 test
编辑
内容/etc/apache2/sites-available/000-default.conf
<VirtualHost *:80>
DocumentRoot /home/daniel/public/default/public/
DirectoryIndex index.html index.php
LogLevel warn
ErrorLog /home/daniel/public/default/log/error.log
CustomLog /home/daniel/public/default/log/access.log combined
</VirtualHost>
我有以下指令设置/etc/apache2/apache2.conf
<Directory /home/daniel/public/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
从下面/home/daniel/public/default
运行ls -Zd public test
给出
drwxrwxr-x 2 daniel daniel ? 4096 Apr 28 13:44 public
drwxrwxr-x 2 daniel daniel ? 4096 Apr 28 13:44 test
答案1
我建议检查 Apache 错误日志(在/var/日志/阿帕奇/在 Debian/Ubuntu 或/var/log/httpd/在 RedHat 及其衍生产品上)。错误日志将为您提供更详细的错误指示;哪里有权限错误或者其他问题。
另一件要尝试的事情是尝试使用 Apache 的用户来统计您尝试使用 sudo 访问的文件。大致如下:
sudo -u apache2 stat /var/www/public/index.html
假设您的 Web 根目录位于 /var/www 中,并且您的 Apache 服务器以 apache2 用户身份运行。上述命令将确认 Apache 进程是否能够读取有问题的文件(具有足够的文件系统权限)。如果它是可读的(您得到统计输出而不是权限被拒绝),那么问题很可能出在 Apache 服务器配置本身,就像@mdpc 建议的那样。
答案2
查看您的 apache 配置文件,看看某些目录中是否有任何允许/拒绝指令。