我目前遇到了一些奇怪的事情,apache 必须具有执行权限才能显示页面。这是当前在目录中设置的权限,其中管理员拥有所有权限,而 apache 仅具有读取权限。然而,当我尝试访问索引时,我遇到了 403。
我是不是漏掉了什么?我以为 apache 只需要读取权限就可以显示页面?
drwxr----- 3 admin www-data 4096 Apr 4 12:27 assets
drwxr----- 3 admin www-data 4096 Apr 4 12:27 css
drwxr----- 3 admin www-data 4096 Apr 4 12:27 images
-rwxr----- 1 admin www-data 469 Apr 4 12:27 index.php
drwxr----- 15 admin www-data 4096 Apr 4 12:27 protected
drwxr----- 4 admin www-data 4096 Apr 4 12:27 themes
虚拟主机如下:
NameVirtualHost *:443
<VirtualHost *:443>
ServerName ****
ServerAlias ****
SSLEngine On
SSLCertificateFile ****
SSLCertificateKeyFile ****
DocumentRoot /home/sites/share
</VirtualHost>
感谢您的帮助。
根据请求编辑:
/home/sites/share 的权限
drwxr----- 8 admin www-data 4096 Apr 4 14:52 share
/home/sites 的权限
drwxr-xr-x 6 admin admin 4096 Apr 4 12:27 sites
/home 上的权限
drwxr-xr-x 4 root root 4096 Apr 2 18:01 home
答案1
共享目录需要 www-data 组的执行权限。如果没有执行权限,www-data 组(即 Apache)的成员将无法访问该目录的内容。
chmod 750 /home/sites/share
编辑:显然,Apache 需要访问的任何其他目录,例如上面的 assets/images/etc,以及这些目录的任何子文件夹也需要该组的执行权限。