不断出现 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
帮助您弄清楚您拥有哪些虚拟主机以及它们的应用顺序。