首页 > 解决方案 > 尝试在 Ubuntu 18.04 LTS 上部署 Symfony - setfacl 不起作用?

问题描述

我正在按照此处的指南(诚然它有点过时)将我的第一个 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 不起作用?我在这里做错了什么?是否有更好的权限指南?

标签: phpdeploymentpermissionssymfony4

解决方案


鉴于www-data用户不是该myuser组的成员,它需要访问目录+x的权限/var/www/html。问题中的现有权限是“750”。要改变这一点:

chmod o+x /var/www/html

推荐阅读