免责声明:我已经在 StackOverflow 上询问但事情有点紧急,我还没有收到任何回复,我想 ServerFault 可能是发布此帖的更好地方。如果我在这里得到答复,我会删除另一个。
我正在遵循指南这里(诚然,这有点过时了)将我的第一个 Symfony 4 项目部署到生产环境中。一切都很顺利,直到我获得文件权限。我具体执行了链接中步骤 4 中的步骤:
sudo chown -R myuser:myuser /var/www/html
sudo chmod -R 750 /var/www/html
sudo setfacl -R -m u:www-data:rX /var/www/html/project
sudo setfacl -R -m u:www-data:rwX /var/www/html/project/var/cache /var/www/html/project/var/log
sudo setfacl -dR -m u:www-data:rwX /var/www/html/project/var/cache /var/www/html/project/var/log
这让我
getfacl /var/www/html/project
# file: var/www/html/project/
# owner: myuser
# group: myuser
user::rwx
user:www-data:r-x
group::r-x
mask::r-x
other::---
和
getfacl /var/www/html/project/var/cache
# file: var/www/html/project/var/cache
# owner: myuser
# group: myuser
user::rwx
user:www-data:rwx
group::r-x
mask::rwx
other::---
default:user::rwx
default:user:www-data:rwx
default:group::r-x
default:mask::rwx
default:other::---
但是,当我运行 Web 应用程序时,出现空白页,并且显示错误日志
[crit] 3116#3116:*12 stat()“/var/www/html/project/public/”失败(13:权限被拒绝)
看来 setfacl 不起作用了?我做错了什么?有没有更好的权限指南?
编辑:我刚刚读这里那:
要使用 ACL,必须使用可以使用 ACL 功能的文件系统,如 ext2/ext3/ext4 或 xfs,并且还需要在这些文件系统上启用 ACL 选项。
我的驱动器已加密(安装期间已加密)。这可能是它无法正常工作的原因吗?如果是这种情况,我有什么替代方案?
答案1
鉴于www-data
用户不是该myuser
组的成员,它需要+x
权限才能进入/var/www/html
目录。问题中的现有权限是“750”。要更改此权限:
chmod o+x /var/www/html