收到 403 错误

收到 403 错误

不断出现 403 错误。

You don't have permission to access /index.html on this server.

日志档案 :

(13)Permission denied: access to /index.html denied
(13)Permission denied: access to /favicon.ico denied

目录权限(/home/www/eric/cascade)

-rwxr-xr-x 1 eric www  193 Jan 28 17:38 .htaccess
drwxr-xr-x 2 eric www 4096 Jan 28 18:27 images
-rwxr-xr-x 1 eric www 3715 Jan 28 18:27 index.html
-rwxr-xr-x 1 eric www  753 Jan 28 17:38 index.php
drwxr-xr-x 2 eric www 4096 Jan 28 18:25 js
-rwxr-xr-x 1 eric www 2258 Jan 28 18:27 oops.html

配置文件:

<VirtualHost 50.57.104.245:80>
    ServerName dev.cascaderisermanagement.com
    DocumentRoot /home/eric/cascade/public

    <Directory "/home/eric/cascade/public">
        DirectoryIndex index.php
        AllowOverride All
        Order allow,deny
        Allow from ALL
    </Directory>
</VirtualHost>

Apache 是否可能无法访问 www 组?我该如何检查/验证?

答案1

一些线索可以尝试如下:

关于文件权限,每个父目录的权限也很重要。它们都必须具有执行权限(即“搜索”目录)。

ls -l / /home /home/eric /home/eric/cascade

为了方便检查,你可以使用 su 命令以 apache 正在运行的用户身份运行,然后尝试 cat 文件,例如,

sudo -u nobody cat /home/eric/cascade/public/index.html

并且,如果世界权限更具包容性,那么该群组就无关紧要了。

另外,该.htaccess文件中有什么?我注意到您已启用它们,AllowOverride并且该目录中有一个。

答案2

错误 13 表示文件系统级别“没有权限”。

如果Deny您的配置中有指令,则错误日志中会出现不同的行。以下是一些示例。

用一个Deny

Feb  4 10:44:08 host apache2[7907]: [error] [client 192.168.1.1] client denied by server configuration: /var/www/site/index.php

chmod 000在目录中使用(AllowOverride已打开):

Feb  4 10:44:23 host apache2[7902]: [crit] [client 192.168.1.1] (13)Permission denied: /var/www/site/.htaccess pcfg_openfile: unable to check htaccess file, ensure it is readable

chmod 000在静态文件上使用:

Feb  4 10:51:15 host apache2[7905]: [error] [client 192.168.1.1] (13)Permission denied: file permissions deny server access: /var/www/site/favicon.ico

chmod 000在 PHP 文件中使用:

Feb  4 10:43:54 host apache2[7900]: PHP Warning:  Unknown: failed to open stream: Permission denied in Unknown on line 0
Feb  4 10:43:54 host apache2[7900]: PHP Fatal error:  Unknown: Failed opening required '/var/www/site/index.php' (include_path='.:/usr/share/php:/usr/share/pear') in Unknown on line 0

您可能会注意到,在所有错误 (13) 情况下,错误消息中给出的是完整文件路径,而不是相对 URI。这意味着,在您的例子中,Apache 正在尝试index.html从文件系统的根目录读取,而不是/home/eric/cascade/public/

我怀疑您在某个地方有另一个带有DocumentRoot/ 的虚拟主机。为了确认这一点,您可以向指向其他位置的虚拟主机添加AccessLog和指令。您也可以使用此命令:ErrorLog

apache2ctl -S

帮助您弄清楚您拥有哪些虚拟主机以及它们的应用顺序。

相关内容